STM32
直播中

刘刚

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

用STM8S103K3来做IAP自升级功能,烧写Flash的程序运行在RAM里,到了某一个固定的位置就会写错为什么?

大家好,我目前用STM8S103K3来做IAP自升级功能。
目前,我是用ARM来转128个字节过来给STM8,然后,让烧写Flash的程序运行在RAM里,以此来写Flash。
目前,用STVP读出来发现,可以写进去一部分。但是,到了某一个固定的位置就会写错。不知道怎么回事

回帖(1)

刘敏

2024-5-16 17:50:57

1. 确保您的代码在RAM中正确运行:请检查您的代码是否正确地从ARM传输到STM8的RAM中,并且确保在RAM中运行的烧写程序没有被意外修改或覆盖。

2. 检查Flash写入保护:STM8S103K3的Flash具有写入保护功能,如果启用了写入保护,可能导致无法写入。请检查您的代码中是否正确地禁用了写入保护。

3. 检查Flash擦除操作:在写入新数据之前,确保已经正确地擦除了目标Flash区域。如果没有正确擦除,可能导致写入错误。

4. 检查写入时钟和电压:确保在写入Flash时,系统的时钟和电压在规定的范围内。不稳定的时钟或电压可能导致写入错误。

5. 检查Flash写入次数:STM8S103K3的Flash具有一定的写入次数限制。如果超过了写入次数限制,可能导致写入错误。请检查您的Flash区域是否已经接近写入次数限制。

6. 检查代码中的写入循环:请检查您的代码中是否有可能导致写入错误的无限循环或错误逻辑。

7. 使用STM8的调试工具:使用STM8的调试工具(如STVP)来检查Flash中的数据,以确定错误发生的具体位置和原因。

8. 检查硬件连接:确保您的硬件连接正确,没有短路或断路现象。

9. 更新固件库:确保您使用的STM8固件库是最新版本,以避免可能的已知问题。


举报

更多回帖

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