在线时间0 小时
UID390128
注册时间2012-9-19
NXP金币0
该用户从未签到
新手上路

- 积分
- 16
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2014-5-14 13:02:19
|
显示全部楼层
回复:如何在IAR 上实现Printf 打印调试信息
回复第 3 楼 于2014-05-14 10:02:30发表:
这可能是因为程序中printf函数定向的输出为串口函数的输出,而不是默认的stdio的输出,如下面代码,你需要关注out_char函数的实现是stdio的函数还是串口的函数,例程代码中outchar都是输出到串口的!你所要做的是注释掉printf的实现函数,然后再使用到printf的函数前加入#include ,那么程序就会自动使用stdio标准输入输出的printf函数来完成打印工作!
int
printf (const char *fmt, ...)
{
va_list ap;
int rvalue;
PRINTK_INFO info;
info.dest = DEST_CONSOLE;
info.func = &out_char;
/*
* Initialize the pointer to the variable length argument list.
*/
va_start(ap, fmt);
rvalue = printk(&info, fmt, ap);
/*
* Cleanup the variable length argument list.
*/
va_end(ap);
return rvalue;
}
谢谢楼上两位大神的帮助,目前问题已解决。查了一下程序发现Printf在原工程中是被重定向到串口,导致Terminal I/O始终无数据输出。按照上面的方法,Termianl I/O 已能正常输出。再次对两位热心的帮助表示感谢!
|
|