嵌入式技术论坛
直播中

CDCNKA

8年用户 1228经验值
擅长:385288
私信 关注
[问答]

imxrt1052号令者在rtt studio死机是什么原因导致的

请教一个问题:

我在rtt官方的imxrt1052-atk-commander源码包整一个bsp工程,用的也是正点原子的I.MX RT1052 号令者开发板,调试器用jlink-v9。bsp工程在keil编译运行ok,串口led都没问题。但同一份工程代码,导入到rtt studio(公司没有购买MDK/IAR版权,因此必须选studio)编译运行,跑到rt_components_board_init()初始化内部死机。

具体我录了一个整个debug的视频,下大家下载帮忙分析一下,谢谢。

另外,补充两点测试结果:

测试1:

如下图所示,
1)注释rt_hw_interrupt_disable();
2)SysTick_Config() 增加while(1)死循环;

然后单步仿真是可以确认SysTick_Handler()是可以正常跑进去的(说明中断向量没啥大问题):

1.jpg

测试2:

我尝试如下图所示,注释以下几行代码:

// #define RT_USING_HOOK
// #define RT_HOOK_USING_FUNC_PTR
// INIT_BOARD_EXPORT(rt_hw_spi_bus_init);
修改宏:

define RT_DEBUG_CONTEXT_CHECK 0//1
然后main.c添加如下图所示的代码,单步debug是可以确认号令者开发板的DS0红色LED亮灭变化(测试1说明如果程序当成裸机跑没啥大问题):

1.jpg

回帖(6)

王璐

2022-9-29 11:30:17
可以看看芯片时钟那块是否相同
举报

CDCNKA

2022-9-29 11:30:24
你好,时钟配置是没问题的。因为keil和studio编译的都是相同文件夹下的同一份代码,只是链接脚本、部分源文件根据工具链选择不同的文件。现在是keil的ok,studio死机。
举报

马占云

2022-9-29 11:30:33
NXP 在支持imxrt的时候好几款bsp都只支持keil和IAR 没有支持gcc
举报

CDCNKA

2022-9-29 11:30:39
我的项目用rt1176,就是用rtt studio,一直在用,1052反而不行
举报

王越建

2022-9-29 11:30:47
是不是链接脚本那块的一些系统相关的没有加上导致的?
举报

CDCNKA

2022-9-29 11:30:59
       
07lhluo2022-09-09
这家伙很懒,什么也没写!
1.谢谢,一开始也怀疑是链接脚本。链接脚本检查过,也跟RT1176的做类比,没发现大问题,对比过studio和keil分别生成的bin文件,前面引导部分的数据是一样的。上面提到的,程序可以进入中断、led点灯,也进一步佐证链接脚本应该没问题。附件给出了链接脚本的代码。

2.我有两个怀疑:
1)编译器是不是有什么编译选项要改?
2)我是jlink的算法库造成的(深度怀疑,工程本来应该压根就没问题),更换了两个算法库,分别为NXP_iMXRT105x_QSPI.elf(110KB)和RT105x_W25Q.elf(1836KB).两个算法都是需要先擦除后烧录keil生成的rtt工程的bin文件,rtt的程序才能正常跑起来。另外我发现,两个算法都是J-Flash单编程提示成功,如果选择编程+校验,总是报校验失败的提示。如果不先擦除再编程,rtt程序是跑不起来的。
举报

更多回帖

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