keil中使用软件debug功能查看printf输出结果

这是一条用处不大,但可能会用到的记录

参考连接:Keil Debug(printf) Viewer的使用

在纯软件仿真中,要想看到打印的debug信息,可以使用printf函数,但是需要用到函数重定向。

类似于串口使用printf也需要重定向一样。

在工程中新建一个C代码文件,内容:

#include <stdio.h>

#define ITM_PORT8(n)         (*(volatile unsigned char *)(0xe0000000 + 4*(n)))
#define ITM_PORT16(n)        (*(volatile unsigned short *)(0xe0000000 + 4*(n)))
#define ITM_PORT32(n)        (*(volatile unsigned long *)(0xe0000000 + 4*(n)))
#define DEMCR                (*(volatile unsigned long *)(0xE000EDFC))
#define TRCENA               0X01000000

int fputc(int ch, FILE *f)
{
    if(DEMCR & TRCENA)
    {
        while(ITM_PORT32(0) == 0);                                                                                                                                                                                                                                                                                      
        ITM_PORT8(0) = ch;
    }
    return ch;
}

然后选中使用微库

 再然后编译代码----选择debug模式-------调出Debug(printf) Viewer窗口-----运行  即可

 

 


版权声明:本文为qq_42212668原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。