STM32
直播中

杨静

7年用户 1466经验值
私信 关注
[问答]

STVP烧录stm8的hex文件不运行,但在IAR for stm8下调试正常,为什么?

请教各位高手一个问题,我用IAR for stm8在调试模式下一切正常的程序,但是变成release模式下生成hex文件以后,用STVP烧录却不能运行,应该说是大部分时候不能运行,偶尔极少数情况下可以运行,但再一次烧录同一hex文件后又不能运行,不明白这是什么原因。以前用stm8的时候从未遇到这样奇怪的问题,我感觉是软件设置的问题,但实在找不到原因,请各位高手不吝赐教,先谢过了。我用的编程器是ST-link/V2

回帖(2)

刘先睿

2024-4-10 11:01:42
要看你用的是IO口的哪个功能,如果有用到引脚的第二功能,就需要在STVP烧写软件中修改选项字,默认的选项字都是普通IO功能,如果没有修改选项字烧写进去的程序就不能正常使用引脚的第二功能。IAR软件在调试的时候默认会自动开启选项字,但是STVP烧写时要手动设置。
举报

听风说梦

2024-4-10 17:41:35
这种情况很可能是由于编译器的优化设置导致的。在调试模式下,编译器通常会关闭一些优化选项以方便调试,而在发布模式下,编译器会打开这些优化选项以提高代码执行效率。

这样可能会导致生成的hex文件与调试时的代码逻辑不一致,进而导致在STVP烧录后无法正常运行。

解决方法有两个:

1. 尝试关闭一些编译器的优化选项,以使生成的hex文件与调试时的代码逻辑一致。具体可参考编译器的用户手册或者咨询IAR的技术支持。

2. 使用STVP的调试功能进行烧录,而不是仅仅烧录hex文件。这样可以确保与调试模式下的代码逻辑一致。具体的操作方法可以参考STVP的用户手册或者咨询ST的技术支持。

希望对你有帮助!
举报

更多回帖

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