STM32三方库 - 调试交互/SeggerrRTT

SeggerRTT可使用JLink代替串口调试输出功能使用,如果因为电路设计,及资源运用问题,导致不能提供串口接口的话,使用SeggerRTT作为实际的调试输出接口是非常适合使用的。

注:建议尽量预留串口,此方案提示不稳定,容易崩溃。

J-Link RTT – Real Time Transfer

一、添加软件包

新建标准RT-Thread项目,控制台串口先默认UART1,调试器选择Jlink

搜索RTT软件包并添加 (若想打印浮点型数据,即输出f%,需再添加rt_vsnprintf软件包,添加该软件包大概增加8Kb字节的存储空间):

二、打开SEGGER RTT功能

打开rt_kprintf控制台,修改控制台名称为jlinkRtt:

配置修改完成之后,点击保存或者按快捷键Ctrl+S,系统会自动保存并配置好;

手动修改代码:

修改board.c文件,一是初始化jlink_rtt,二是设置console设备,初始化jlink_rtt先extern引用外部函数,然后直接调用,设置console设备需要在component组件初始化之后:

extern void rt_hw_jlink_rtt_init(void);

RT_WEAK void rt_hw_board_init()

{

    extern void hw_board_init(char *clock_src, int32_t clock_src_freq, int32_t clock_target_freq);

    /* Heap initialization */

#if defined(RT_USING_HEAP)

    rt_system_heap_init((void *) HEAP_BEGIN, (void *) HEAP_END);

#endif

    hw_board_init(BSP_CLOCK_SOURCE, BSP_CLOCK_SOURCE_FREQ_MHZ, BSP_CLOCK_SYSTEM_FREQ_MHZ);

    rt_hw_jlink_rtt_init();

    /* Board underlying hardware initialization */

#ifdef RT_USING_COMPONENTS_INIT

    rt_components_board_init();

#endif

    /* Set the shell console output device */

#if defined(RT_USING_DEVICE) && defined(RT_USING_CONSOLE)

    rt_console_set_device(RT_CONSOLE_DEVICE_NAME);

#endif

}

三、控制台功能

安装JLink_Windows_V644e.exe后,开始菜单->SEGGER - J-Link V6.44e->J-Link RTT Viewer V6.44e

(先设置Input->Sending->Send on Enter,输入命令后按enter键发送)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值