嵌入式技术论坛
直播中

王鑫

7年用户 1145经验值
私信 关注
[经验]

记录在N32G457上使用软件包SEGGER_RTT的一个bug

n32G45x上面使用软件包SEGGER_RTT SEGGER_RTT这个软件包可以替代串口进行输出,特别是在引脚有限的单片机上,是一个不错的选择。本人自己画的板子,当时由于没有考虑清楚,并没有引出调试的串口,这下麻烦了,在调试前期间,使用原本用来搞RS485 modbus的串口先用来调试,麻烦! SEGGER_RTT但是在使用中还是出现一点问题,这里就先记录一下。

一、上位机准备工作

使用的上位机软件就是这个了,Jlink RTT viewer.

1.jpg

在使用之前,先要对jlink的安装目录进行操作,如果有参加过比赛的小伙伴,肯是搞过了的。

1、将Nationstech的下载算法,解压复制Device的目录下,不然都不认识的你片子。

1.jpg

2、修改Jlnk目录下的JLinkDevices.xml,添加Nationstech器件型号,加到尾巴就可以了。这个文件已加过了。

3、解压复制文件到jlnk目录,用来清除加密的,还没有用到过。

4、打开RTT Viewer,如果最下面没有auto,那肯定是文件没有复制全,回头搞去。

1.jpg

直接点ok就可以连接上了。

二、单片机

都有软件包,没有啥好说了,直接加上软件包就可以了,然后,修改一下board.c中的启动代码,在rt_console_set_device之前调用rt_hw_jlink_rtt_init,当然,那个RT_CONSOLE_DEVICE_NAME宏是要改成jlinkRtt的,看一下drv_rtt.c就知道啦。

void rt_hw_board_init()
{
/* NVIC Configuration /
#define NVIC_VTOR_MASK 0x3FFFFF80
#ifdef VECT_TAB_RAM
/
Set the Vector Table base location at 0x10000000 /
SCB->VTOR = (0x10000000 & NVIC_VTOR_MASK);
#else /
VECT_TAB_FLASH /
/
Set the Vector Table base location at 0x08000000 */
SCB->VTOR = (0x08000000 & NVIC_VTOR_MASK);
#endif
SystemClock_Config();
#ifdef RT_USING_PIN
int n32_hw_pin_init(void);
n32_hw_pin_init();
n32_msp_jtag_init(RT_NULL);
#endif
#ifdef RT_USING_SERIAL
int rt_hw_usart_init(void);
rt_hw_usart_init();
#endif
#ifdef RT_USING_COMPONENTS_INIT
rt_components_board_init();
#endif
#ifdef SEGGER_RTT_ENABLE
extern int rt_hw_jlink_rtt_init(void);
rt_hw_jlink_rtt_init();
#endif
#if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE)
rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
#endif
#ifdef BSP_USING_SRAM
rt_system_heap_init((void *)EXT_SRAM_BEGIN, (void *)EXT_SRAM_END);
#else
rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
#endif
}

三、打印数据丢失的现像

1、打印的信息没有打全,少了很多,help测试

1.jpg

没有打全哦,不知道问题在哪里。

2、进入调试状态,在help指令里面加入断点,一条条的来,发现是可以全部打印出来的。

3、软件打开时,好像有时钟设置,加大SWD时钟,看看有没有用?

1.jpg

比前面的要接收得多一点,莫非是我们的接收速度不够快吗?
不知道呀,哪位大神帮看看啥子个情况呀?

把打印的信息,复制出来,发现字符个数正好是1023,这不就是默认值吗?

看一下代码,查看SEGGER_RTT_Confg.h发现人家根本就没有用到rtconfig.h里面的设置,所以任你在env里面设置多大也没有用。

解决方法:

手动添加头文件

1.jpg

在help里面加入的时间测试,运行的结果看一下:挺快的嘛。

1.jpg

原作者:wlof

更多回帖

发帖
×
20
完善资料,
赚取积分