久石让spring简谱:将printf重定向到ITM[图解]

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 02:00:12

在调试过程中,有时需要将一些变量的值打印出来,分析程序的执行情况,往往会用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.运行结果