完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我第一次在一台设备上遇到问题,同时在同一型号 (STM32H755IIT6) 上做一些在几台(几十台)上运行良好的事情。
我正在使用自定义更新工具更新设备的固件,该工具与使用 stm32CubeProgrammer 闪烁的协议非常相似,即在写入请求“0x31”时。 问题是,在这个设备上,部分数据没有被写入,尽管我从请求中得到了肯定的响应,当我闪烁 m4 时,落在地址 0x08010040 之后并且有几个(不总是恒定的)块. 使用 saleae,我可以看到,无论是使用更新工具还是 stm32CubeProgrammer,它们的执行方式都非常完全相同(只有 ms 的时间差异),对于相同的文件甚至相同的信息。例如: 请求:0x31 0xCE 响应:0x79 请求(地址和校验和)例如:0x08 0x00 0x00 0x00 0x08 响应:0x79 请求:数据长度、数据、校验和 响应:0x79 这是由这两种工具以相同的内容执行的,而且,这是第一次,在这个设备上,我目前只能使用 STM32CubeProgrammer,如果我读取内存,我会注意到在 m4 有一些地址什么都没有是在我使用其他工具时写的。 因此,我非常激动,首先,一个工具如何工作而另一个工具不工作,其次,也是最重要的是,如果在写入过程中出现问题,引导加载程序如何做出积极响应? 关于可能是什么问题的任何提示? PS:我还尝试检查内存中写入后无法立即写入的部分,以误导以后可能发生的任何错误覆盖。 |
|
相关推荐
1个回答
|
|
已解决:协议上的唯一区别是 stm32CubeProgrammer 在收到擦除的肯定响应后等待 4 秒,而该工具将再次开始请求写入权限。添加这个 4s,问题就消失了。由于 m4 是最后一个被擦除但第一个被写入,我怀疑由于某种原因这个设备在擦除时速度较慢并且在我写入时仍在擦除。我发现这出乎意料,因为我知道引导加载程序只会在擦除完成后给出正数。
TLDR:在请求写入 (0x31 0xCE) 之前,在擦除请求 (0xFF 0xFF 0x00) 的肯定响应 (0x79) 之后添加 4s 等待) |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2642 浏览 1 评论
3208 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1783 浏览 1 评论
3611 浏览 6 评论
5988 浏览 21 评论
939浏览 4评论
1316浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
584浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1303浏览 3评论
1359浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 02:16 , Processed in 1.013732 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号