在调试过程中,有时需要将一些变量的值打印出来,分析程序的执行情况,往往会用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条评论)
登录后参与讨论