分享

将printf重定向到ITM[图解]

 rookie 2012-01-03

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

    发表

    请遵守用户 评论公约

    类似文章 更多