[N32G45x] Keil5编译RT-thread工程莫名报错

[复制链接]
349|19
chen8bo5 发表于 2026-7-30 09:09 | 显示全部楼层 |阅读模式
N32G457xx_V3.0.0 的RT-thread官方例程,用Keil5.2编译,报错与真实情况不符。


Nations.N32G45x_Library.2.6.0 的RT-thread官方例程,用Keil5.2编译,能成功。但添加代码后,调试就闪退。

是不是RT公司的编译器工程师在远程逗玩我啊。

现在调试无法进行下去了,只能开两个进程点灯玩了。


报错与实际情况不符.png
调试闪退.png
莫名奇妙报错.png

评论

你用的是什么调试器?  发表于 2026-7-31 13:55
classroom 发表于 2026-7-30 15:15 | 显示全部楼层
Keil报错位置和实际代码对不上,这是编译器缓存或索引没刷新。
cr315 发表于 2026-7-30 15:55 | 显示全部楼层
例程版本V3.0.0能编译过但报假错,大概率是pack包和Keil版本不匹配。
duo点 发表于 2026-7-30 15:16 | 显示全部楼层
添加代码后调试闪退,先查堆栈大小,大概率是线程栈溢出导致的。
flycamelaaa 发表于 2026-7-30 17:17 | 显示全部楼层
两个官方例程用的库版本不同,中间有API改动,直接混用会出隐形问题。
jcky001 发表于 2026-7-30 18:20 | 显示全部楼层
调试闪退时试试把优化等级调到O0,高优化经常让调试器断点乱跳。
powerantone 发表于 2026-7-30 20:18 | 显示全部楼层
开两个进程点灯能跑,说明硬件基础没问题,问题在软件配置或中断优先级。
probedog 发表于 2026-7-30 15:19 | 显示全部楼层
检查是不是用了未初始化的外设时钟,调试器在访问寄存器时卡死就会闪退。
solty 发表于 2026-7-30 21:25 | 显示全部楼层
Keil5.2对ARMCC V6兼容性一般,换V5编译器可能就解决假报错。
stormwind123 发表于 2026-7-30 22:20 | 显示全部楼层
RT-thread的启动文件里栈大小默认值偏小,添加功能后必须手动改大。
七毛钱 发表于 2026-7-30 19:58 | 显示全部楼层
把添加的代码逐块注释掉,二分法定位到具体哪一行触发调试崩溃。
今天会画卧蚕吗 发表于 2026-7-30 20:57 | 显示全部楼层
检查中断向量表是否被RT-thread重映射过,与调试器的复位向量冲突会闪退。
又见江南雨 发表于 2026-7-31 15:22 | 显示全部楼层
如果怀疑远程编译问题,就删掉.uvoptx和.dep文件,完全重新生成工程。
 楼主| chen8bo5 发表于 2026-7-31 09:25 | 显示全部楼层
本帖最后由 chen8bo5 于 2026-7-31 09:30 编辑
cr315 发表于 2026-7-30 15:55
例程版本V3.0.0能编译过但报假错,大概率是pack包和Keil版本不匹配。

有可能,删除掉RT-thread的SPI相关驱动,两个线程点灯能运行。
 楼主| chen8bo5 发表于 2026-7-31 09:34 | 显示全部楼层
powerantone 发表于 2026-7-30 20:18
开两个进程点灯能跑,说明硬件基础没问题,问题在软件配置或中断优先级。 ...

听完你们说的这些话后,我脑子云里雾里,完全处于懵逼状态了。开始怀疑各个环节。
dffzh 发表于 2026-7-31 16:08 | 显示全部楼层
不是有报错吗?你怎么debug?
 楼主| chen8bo5 发表于 2026-8-1 09:33 | 显示全部楼层
dffzh 发表于 2026-7-31 16:08
不是有报错吗?你怎么debug?

不同的工程,RT-thread在2.6.0中编译没报错,但是添加代码后调试闪退。

评论

那就细查一下添加的代码是不是有什么内存操作异常?  发表于 2026-8-3 08:50
小明的同学 发表于 2026-8-4 12:15 | 显示全部楼层
RT-Thread 不要手动新建 Keil 工程,推荐用 scons --target=mdk5 / RT-Thread Studio 导出工程;手动添加文件极易出现 “莫名连锁报错”。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

64

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0