爱咋咋地了 发表于 2021-12-4 22:04:56

用flash当eeprom用,实现掉电保存的疑问

编好的程序也放在flash中对吧,我在flash中划出一个区域当eeprom.我怎么知道这个区域是空闲可用的,万一已存放的是主程序代码,不会把主程序删掉么。

bis 发表于 2021-12-14 15:34:08

iffi123 发表于 2021-12-4 22:06:02

看编译信息, 占用的空间

爱咋咋地了 发表于 2021-12-4 22:16:20

iffi123 发表于 2021-12-4 22:06
看编译信息, 占用的空间

看来是有潜在冲突可能了,那我简单的从flash的最高处地址写,应该就能暂时不担心这个问题了,是这样的吗?

iffi123 发表于 2021-12-4 22:19:25

本帖最后由 iffi123 于 2021-12-4 22:24 编辑

爱咋咋地了 发表于 2021-12-4 22:16
看来是有潜在冲突可能了,那我简单的从flash的最高处地址写,应该就能暂时不担心这个问题了,是这样的吗 ...

那可能是堆栈的空间

其实还有个办法, 程序先定义你需要的空间大小的数组, 然后通过指针获得空间起始地址, 这样就很安全

爱咋咋地了 发表于 2021-12-4 22:28:11

哦哦哦,好的

Fireflying 发表于 2021-12-7 19:23:27

你不看芯片Datasheet的吗?

ka2209 发表于 2021-12-7 23:46:42

是STC的吗?

liu1248 发表于 2021-12-13 19:26:51

堆栈空间应该在RAM吧。

bis 发表于 2021-12-14 15:32:51

iffi123 发表于 2021-12-14 15:40:08

本帖最后由 iffi123 于 2021-12-14 15:41 编辑

bis 发表于 2021-12-14 15:34
那种单片机会让堆栈使用flash区域?讲给我听听让我也乐一乐。

头昏搞错了,   堆栈在RAM

JuncoJet 发表于 2021-12-14 15:41:28

堆栈使用的SRAM,固件才是FLASH,一般来说有烧写地址信息
不要重复使用地址就没事了,但FLASH寿命有限,频繁写入的话建议外置24、25芯片

bis 发表于 2021-12-14 15:56:31

liu1248 发表于 2021-12-20 16:50:26

用休眠方式来保存数据(到RAM)也可,许多芯片的休眠电流已经做到1uA以下,与电池自然损耗差不多了。

杨白劳 发表于 2022-2-8 09:43:52

看stc的pdf,stc单片机模拟eeprom掉电存储我也做过,放心写好了,厂方是不会让你改掉程序的,有寄存器设定的,比24c方便多,毕竟可以少用一个芯片。但注意的是这东东擦写是整个扇区,我是把改写的字节全先放在单片机ram,然后一下子写入flsh
页: [1] 2
查看完整版本: 用flash当eeprom用,实现掉电保存的疑问