原创 将printf重定向到ITM[图解]

2011-1-8 22:56 3305 11 11 分类: MCU/ 嵌入式
将printf重定向到ITM[图解]

 <梅川酷子原创>




在调试过程中,有时需要将一些变量的值打印出来,分析程序的执行情况,往往会用uart把信息打印到电脑.Cortext M3内核提供一种更加方便的方式,速度快,而且不占串口资源.它可以把调试信息经过JLINK传送到IAR,MDK等软件上显示出来.下面几张图片简单描述了将printf重定向到ITM的过程,在需要打印信息的地方调用DebugPrint("xxx");就可以了.


1.代码


//H文件


#ifdef NDEBUG
 #define DebugPrint(...)  
#else
 //调试模式下使用ITM功能
 #define DebugPrint(...) printf(__VA_ARGS__)
#endif



//C文件


/*******************************************************************************
 * 函数名称:                                                                    
 * 描    述:串口重定向到ITM接口                                                                    
 *                                                                              
 * 输    入:无                                                                    
 * 输    出:无                                                                    
 * 返    回:无                                                                    
 * 作    者:梅川酷子                                                                    
 * 修改日期:2010年4月14日                                                                   
 *******************************************************************************/
#ifndef NDEBUG//调试模式
int PUTCHAR_PROTOTYPE(int ch, FILE *f)
{       
 ITM_SendChar(ch);
 return(ch);
}
#endif


2.调试接口



3.IAR设置



 


4.运行结果


文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条