你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

在STM32CubeIDE开发STM32H743,debug烧录时报错

[复制链接]
张明明 提问时间:2024-8-3 17:36 / 未解决

在STM32CubeIDE开发STM32H743时,因为代码量比较大,改了STM32H743VGTX_FLASH.ld文件。

FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K

/ FLASH2 (rx) : ORIGIN = 0x08100000, LENGTH = 512K/

编译过后没有报错了,但是在debug时会报错如下

image.png

Downloading 16320 bytes @ address 0x0807DAF0 - Verify failed (expected 0x5B read 0xFFFFFFFF @ 0x08080000)

收藏 评论6 发布时间:2024-8-3 17:36

举报

6个回答
butterflyspring 回答时间:2024-8-5 14:07:52
可以尝试用 STM32CUBEPROGRAMMER 将芯片擦除一遍,再都回来看看这个地址是否已经擦除。

然后再烧录试试看。



张明明 回答时间:2024-8-6 16:11:01

butterflyspring 发表于 2024-8-5 14:07
可以尝试用 STM32CUBEPROGRAMMER 将芯片擦除一遍,再都回来看看这个地址是否已经擦除。</p>
<p>然后再烧录试试看 ...

不行。好像代码超过512K就会有问题。

image.png

张明明 回答时间:2024-8-6 16:38:10

用STM32CubeProgrammer烧录生成的elf文件就没有问题,可以烧录成功。并且读出来和elf文件对比也一样的。就是用STM32CubeIDE 1.16.0烧录的时候会出现这种问题。

butterflyspring 回答时间:2024-8-6 17:52:38
你是在编译前改了LD 文件,所以编译通过了。


但是DEBUG 下载时对应的型号还是512k的型号,推测会失败。

所以解决方式可以按照新型号产生工程,将代码添加进来就可以正常调试了。
张明明 回答时间:2024-8-6 20:31:41

butterflyspring 发表于 2024-8-6 17:52
你是在编译前改了LD 文件,所以编译通过了。</p>
<p>

我选的型号就是1Mflash的,但是默认生成的ld文件里面FLASH 是512K.

xmshao 回答时间:2024-8-7 17:30:33
一般来讲如果芯片没选错的话,LD文件里的memory分布是不用手动改写的,除非开发者有额外的安排。


右键工程项目,看Properties,在C/C++build下的setting下,查看Mcu settins,那里可以看到MCU型号。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版