目前比较稍微比较清楚的是J-Link的RTT调试printf输出。(HC32F460开发板),其他方式弄明白再来
之前已在STM32G0上调通,但在大华的开发板上,J-Link RTT Viewer上一直无法显示,找了好多大佬的出坑资料,终于我也出坑了。
以下是HC32F460的RTT调试printf输出的配置过程:
1、在J-link上使用HC32F460时,需要先将HC32F460添加到J-Link中
<!-- -->
<!-- HDSC (HC32) -->
<!-- -->
<Device>
<ChipInfo Vendor="HDSC" Name="HC32F460" WorkRAMAddr="0x20000000" WorkRAMSize="0x10000" Core="JLINK_CORE_CORTEX_M4"/>
<FlashBankInfo Name="Flash_512K" BaseAddr="0x0" MaxSize="0x80000" Loader="Devices/HDSC/HC32F460_512K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
</Device>
2、将HDSC文件夹拷贝到你的jlink安装目录下的Devices文件夹,比如我这里的拷贝目录为C:\Program Files (x86)\SEGGER\JLink\Devices
3、打开jlink安装目录下的JlinkDevices.xml文件,如果jlink安装在系统目录下,可能需要以管理员权限打开。打开JlinkDevices.xml文件后,在文件末尾(</DataBase>之前)添加以下内容,添加内容如图中圈出的所示
加好之后可以在J-Link中选择
4.J-Link配置好之后可以配置Keil这边了。需要注意以下几个地方:a、先将J-link-Samples文件下的RTT文件拷到你的工程中。b、在keil中添加RTT的路径。
Keil的trace功能打开,选择端口0,如图
在程序中添加头文件#include "SEGGER_RTT.h",再调用SEGGER_RTT_printf函数即可
将程序烧录到开发板中,打开J-Link RTT Viewer,发现并没有数
和之前的STM32调试流程一样,但在大华的HC32上并没有显示数,找了大佬的出坑指南,发现,需要输入RTT控制块的地址,双击工程工程,调出.map文件,找到如下行:
地址是0x1fff8218,输入到
即可看到输出。出坑。。。
搞清楚原理,再出详细的说明。有错误请指正哦~