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

自己写了一个手机端烧录程序工具(提前把hex转成bin文件),把bin文件数据写从0x8000000开始地址,完成后无法启动问题咨询

[复制链接]
yklkadlfk7898 提问时间:2021-11-1 16:16 / 未解决
我自己写了一个手机端类似的烧录工具代替pc端的工具,负责把bin文件写到stm32f4 flash中。但是写完数据后,重新上电不启动。我通过STM32 ST-LINK Utility工具烧录对应的bin文件,是可以启动的,同时把对应flash数据读出来与不能启动情况下写进去的数据比较发现完全一样。为啥我写bin文件到flash中不能启动,而STM32 ST-LINK Utility工具写的bin 文件可以启动?不知道还有什么特殊操作吗?
收藏 评论7 发布时间:2021-11-1 16:16

举报

7个回答
废鱼 回答时间:2021-11-1 16:35:27
楼主,可以直接生成bin文件的,直接烧写bin文件即可。
yklkadlfk7898 回答时间:2021-11-1 17:04:42
废鱼 发表于 2021-11-1 16:35
楼主,可以直接生成bin文件的,直接烧写bin文件即可。

我现在就是写bin文件到flash中呀,在写的过程中同时边写边读,把读出来的数据与bin文件原始数据比较是一样的。但是就是无法运行。
yklkadlfk7898 回答时间:2021-11-1 20:37:12
废鱼 发表于 2021-11-1 16:35
楼主,可以直接生成bin文件的,直接烧写bin文件即可。

发现一个奇怪的现象,我再写bin文件到flash过程中,我每写完512字节后,再从flash读512字节回来比较都能读到数据,并且数据比较也完全对。为啥我整个写完后,再重新从0x8000000开始回读整个数据,发现开头部分或中间有些部分都是FF,感觉没有写进去似的。这是啥回事呀,写完数据还需要发送什么命令保证数据完整写入吗?
yklkadlfk7898 回答时间:2021-11-1 20:41:34
发现一个奇怪的问题,我erase一些sector后,写flash时,每次写完512字节数据后,回读出来都正常。但是我把整个bin文件写完后,再重新从0x8000000地址读数据时,发现有些地址块数据全是FF,好像没有写进去。为啥边写边回读又正常呢?
yklkadlfk7898 回答时间:2021-11-2 10:46:07

知道原因了,谢谢大家

joshua天宇 回答时间:2021-11-2 16:27:50

yklkadlfk7898 发表于 2021-11-2 10:46
知道原因了,谢谢大家

什么原因

废鱼 回答时间:2021-11-2 16:53:00

joshua天宇 发表于 2021-11-2 16:27
什么原因

我估计是写擦的问题,楼主,建议写之前就都擦除了,后面就直接写,不进行擦除操作了。或者是内部地址增加的时候,发生了地址计算错误或者溢出的情况。

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版