关于iap flash读写

2019-08-13 20:27发布

现在flash是128k的,准备0x0800 0000-0x0800 1FFF存bootloader,0x0800 2000-0x0800 3FFF存flag,0x0800 4000作为第一个app起始地址,0x0801 2000作为第二个app的地址,但是发现写flag写不进去,st对flash前面一段地址有保护吗?还是操作问题?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
1547674987
1楼-- · 2019-08-14 09:59
 精彩回答 2  元偷偷看……
Alionlu
2楼-- · 2019-08-14 15:04
1547674987 发表于 2017-10-11 10:09
楼主,你写FLASH之前,该区域必须是已擦除或则没写过。要不然你写不成功的,因为FLASH的特性是只能由1往0写 ...

每次写操作都有擦除的
1547674987
3楼-- · 2019-08-14 17:30
那你现在写成功没有
Alionlu
4楼-- · 2019-08-14 22:22
1547674987 发表于 2017-10-11 10:15
那你现在写成功没有

我之前都是试着写一个字,或者多个字,发现写一个字有问题,多个没问题
1547674987
5楼-- · 2019-08-15 04:16
ST官方库的函数就是写半字或则一个字,至于你说的写多个字是封装好的函数把,你如果用的是别人的,那它会在写之前对该地址判断是否为全‘1’,再提醒下 官方的库函数FLASH_ProgramWord(uint32_t Address, uint32_t Data);你写之前要确定那地址是全1的
Alionlu
6楼-- · 2019-08-15 04:54
 精彩回答 2  元偷偷看……

一周热门 更多>