变参函数的问题

[复制链接]
1865|0
 楼主| sioca 发表于 2012-1-6 11:46 | 显示全部楼层 |阅读模式
本帖最后由 sioca 于 2012-1-6 11:48 编辑

我在CCS\28335平台上移植了一个FATFS文件系统,调试的时候用到的printf函数不正常了,这个printf是在其他单片机(STM32F107)上测试过的。
具体现象是进到XPRINTF后,str参数的地址没有正确传进来,导致xprintf中处理的是其他地址。详情如下:
msg = "xprintf test\n"; --编译后msg地址0x0000DCD2
xprintf(msg); // 打印乱码
xputs(msg); // 串口直接打印正常



void xprintf (const char* str, ...)
{
va_list arp;            -- 程序进到这里以后 str地址变为0xADA8
int d, r, w, s, l;

va_start(arp, str);
while ((d = *str++) != 0) { -- 到这里以后 str地址变为0x84F9

不知道有人遇到过这么问题没?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

122

主题

419

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部