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