打印
[应用相关]

STM32L476先用仿真器擦除FLASH后在程序中写不成功

[复制链接]
759|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2022-3-8 09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32L476写FLASH必须是64位(8字节)写,也就是double WORD,而且要先把要写的字节部分擦除掉。

问题来了,先把整片用仿真器擦除掉,程序中先定义一个64位的静态变量常数0xFFFFFFFFFFFFFFFF,保证在FLASH中的位置是8字节对齐的位置,下载程序,然后在这个位置FLASH_TYPEPROGRAM_DOUBLEWORD,结果报编程错误,然后是字节对齐错误,编程步骤顺序错误。

芯片最后几K的空间用来做参数存储的,是完全能正常读写的,先擦除,再写入完全没问题。现在也做一个测试,先用仿真器把整片擦除,然后将写参数部分的擦除代码屏蔽,编译,下载进去,直接写参数,也报编程错误,然后是字节对齐错误,编程步骤顺序错误。

L476用库函数擦除后是0xFF,用仿真器擦除后也是0xFF,没区别啊,难道芯片内部能检测写之前有无擦除动作?仔细检查了的,写之前各种错误标志也清空了的。

有什么窍门或没注意到的地方?

可能有的网友没看明白我要做什么,简言之就是程序代码区域有一片连续的8字节,共64比特,全是0xFF的区域进行修改,存储想要的数据。

使用特权

评论回复
沙发
liu96jp| | 2022-4-13 12:08 | 只看该作者
就是你想用单片机的多余的flash当存储是么?

使用特权

评论回复
板凳
p0gon9y| | 2022-4-13 12:24 | 只看该作者
你看看数据手册吧,看看咋操作比较好,感觉按要求来就行了,你这写了这么多,我懵了

使用特权

评论回复
地板
cen9ce| | 2022-4-13 12:36 | 只看该作者
我记得MCU的FLASH是不是一页一页的写啊?

使用特权

评论回复
5
呐咯密密| | 2022-4-13 12:56 | 只看该作者
FLASH必须是整页写,楼主这种在代码区写是不被允许的,在代码区写会将代码存放区的整页数据更改,导致程序奔溃。必须在代码区以外的空闲页写数据。

使用特权

评论回复
6
q1d0mnx| | 2022-4-13 12:58 | 只看该作者
这个写flash比较费劲,我一般都不用MCU的,都是外置一个flash芯片

使用特权

评论回复
7
lamanius| | 2022-4-13 13:23 | 只看该作者
你可以这样,计算代码编程出来的有多大,然后推算出后面有多少的存储给你用,你直接一页一页的擦除呗

使用特权

评论回复
8
SantaBunny| | 2023-3-3 13:39 | 只看该作者
先不加密,对比一下仿真器烧录和BOOT 烧录后是否所有的区域都一样,看看有没有发现

使用特权

评论回复
9
帛灿灿| | 2024-4-5 08:11 | 只看该作者

MinUnit 是一个 用 C 语言编写的极其简单的单元测试框架

使用特权

评论回复
10
Bblythe| | 2024-4-5 09:14 | 只看该作者

功率开关和整流器的交流电流环路包含非常高的PWM开关电源典型的梯形电流波形

使用特权

评论回复
11
周半梅| | 2024-4-5 11:10 | 只看该作者

电源电压处于1.6V到5.5V之间

使用特权

评论回复
12
Pulitzer| | 2024-4-5 12:13 | 只看该作者

无法提供开关电源所需的脉冲电流

使用特权

评论回复
13
Wordsworth| | 2024-4-5 15:12 | 只看该作者

电源内部都有四个电流环路

使用特权

评论回复
14
Uriah| | 2024-4-5 16:15 | 只看该作者

作为电路的共同电位参考点

使用特权

评论回复
15
公羊子丹| | 2024-4-5 17:08 | 只看该作者

主时钟振荡器主要用作CPU的工作时钟

使用特权

评论回复
16
万图| | 2024-4-5 18:11 | 只看该作者

传送直流信号的引线

使用特权

评论回复
17
Uriah| | 2024-4-5 19:14 | 只看该作者

Buck(或降压)变换器功率部分布局

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1320

主题

3783

帖子

0

粉丝