[STM32F2] keil5编译超过60k运行异常

[复制链接]
 楼主| qq5782098 发表于 2021-1-29 16:50 | 显示全部楼层 |阅读模式
本帖最后由 qq5782098 于 2021-1-29 17:15 编辑

有人遇到这种情况吗?代码超过60k导致W5500的spi工作不正常。屏蔽部分调试信息让代码处于60k以下,逻辑完全不变,工作就正常了。神奇得很
编译环境keil5 V517
单片机是STM32F207
xyz549040622 发表于 2021-1-29 19:59 来自手机 | 显示全部楼层
和谐#不完全吗?换最新版本,最新和谐包试试。
 楼主| qq5782098 发表于 2021-1-30 09:26 | 显示全部楼层
xyz549040622 发表于 2021-1-29 19:59
和谐#不完全吗?换最新版本,最新和谐包试试。

已经是2032了,有最新的吗?可以发一下?

评论

2032你已经超前好多了。  发表于 2021-1-30 09:37
 楼主| qq5782098 发表于 2021-1-30 09:33 | 显示全部楼层
xyz549040622 发表于 2021-1-29 19:59
和谐#不完全吗?换最新版本,最新和谐包试试。

试了一下旧版2020的和谐可以正常。

评论

看看新的和谐方包有问题啊。  发表于 2021-1-30 09:37
 楼主| qq5782098 发表于 2021-1-30 12:17 | 显示全部楼层
本帖最后由 qq5782098 于 2021-1-30 12:26 编辑

我再试试,好像又不是那个问题,真是见鬼了。
William1994 发表于 2021-1-30 14:18 | 显示全部楼层
xyz549040622 发表于 2021-1-29 19:59
和谐#不完全吗?换最新版本,最新和谐包试试。

这个问题肯定和和谐无关啊。和谐不管这事的。
应该还是代码的bug,隐藏的比较深。
建议先把出问题时候的SPI的所有寄存器dump出来看看。
m564522634 发表于 2021-1-30 16:54 | 显示全部楼层
应该不是keil 的问题,是你代码分配出问题了。
 楼主| qq5782098 发表于 2021-2-1 10:05 | 显示全部楼层
m564522634 发表于 2021-1-30 16:54
应该不是keil 的问题,是你代码分配出问题了。

代码分配指的是什么?我把代码其他的全部删除了,只剩下这么多。一样还是这样的情况。test_printf()函数实际执行不到,只是用来增加代码量到65K



1612144936(1).jpg
 楼主| qq5782098 发表于 2021-2-1 10:09 | 显示全部楼层
William1994 发表于 2021-1-30 14:18
这个问题肯定和和谐无关啊。和谐不管这事的。
应该还是代码的bug,隐藏的比较深。
建议先把出问题时候的S ...

这是错误时的寄存器,正常情况的寄存器是一致的,只是正常情况下DR寄存器是0x04
]%QD6)Y0N3SNP~}MVHH57RS.png
`R_(J%N9R0H570~V{I9`C)1.png
UAG@OV19]SEHL@E3@OH2JYY.png
m564522634 发表于 2021-2-1 17:45 | 显示全部楼层
qq5782098 发表于 2021-2-1 10:05
代码分配指的是什么?我把代码其他的全部删除了,只剩下这么多。一样还是这样的情况。test_printf()函数实 ...

不是你代码执行的问题,是你代码放置到地方有可能覆盖了其他区导致的。 你看下你代码是从flash的地址什么地址开始放置的,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

179

帖子

3

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