硬汉嵌入式论坛

 找回密码
 立即注册
查看: 926|回复: 5
收起左侧

[技术讨论] STM32硬件复位导致Flash内容更改

[复制链接]

7

主题

11

回帖

32

积分

新手上路

积分
32
发表于 2022-2-10 15:19:29 | 显示全部楼层 |阅读模式
本帖最后由 Kg_lz 于 2022-2-10 16:49 编辑

我的板是STM32F4,我在flash中固定的一个地址写了一个变量int t=0。第一次擦除所有flash烧录程序进去的时候观测到该位置的数值为-1。进入程序后将该位置的数值改为0,随后短路BOOT0上的电容进行强制复位,结果这个位置上的数值就变成-1了,想问问看这是为什么?怎么能让这个数值不变呢?  前三次复位的操作比较慢,从boot loader里出来进主程序会再写一次t=0;最后一次操作比较快,这个值就变了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2022-2-10 16:08:26 | 显示全部楼层
Flash的内容不会受到复位的影响,你的那边应该没有正常写入。
回复

使用道具 举报

7

主题

11

回帖

32

积分

新手上路

积分
32
 楼主| 发表于 2022-2-10 16:42:53 | 显示全部楼层
本帖最后由 Kg_lz 于 2022-2-10 17:02 编辑
eric2013 发表于 2022-2-10 16:08
Flash的内容不会受到复位的影响,你的那边应该没有正常写入。

大佬,我那个图片上是,前两次读出来的都是0,第三次是-1。如果没有正常写入的话,那不是应该第一次读的时候就出错了吗?
回复

使用道具 举报

2

主题

269

回帖

275

积分

高级会员

积分
275
发表于 2022-2-10 17:45:31 | 显示全部楼层
Kg_lz 发表于 2022-2-10 16:42
大佬,我那个图片上是,前两次读出来的都是0,第三次是-1。如果没有正常写入的话,那不是应该第一次读的 ...

-1 也就是0xFFFF FFFF 你确认写入了??? 用调试器直接读出flash看
回复

使用道具 举报

7

主题

11

回帖

32

积分

新手上路

积分
32
 楼主| 发表于 2022-2-10 18:28:34 | 显示全部楼层
eric2013 发表于 2022-2-10 16:08
Flash的内容不会受到复位的影响,你的那边应该没有正常写入。

大佬说的对,我找到问题了,是我刚上电就开始写,那时候还不太稳定,我加了个延时,稳定多了
回复

使用道具 举报

210

主题

1045

回帖

1685

积分

至尊会员

More we do, more we can do.

积分
1685
发表于 2022-2-11 09:57:47 | 显示全部楼层
我看完楼主的描述,有个疑问,BOOT0接地怎么会复位?
回复

使用道具 举报

7

主题

11

回帖

32

积分

新手上路

积分
32
 楼主| 发表于 2022-2-11 13:42:48 | 显示全部楼层
emwin 发表于 2022-2-11 09:57
我看完楼主的描述,有个疑问,BOOT0接地怎么会复位?

说错了,是复位引脚NRST
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-17 03:10 , Processed in 0.168751 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表