ST官方模拟EEPROM模块的使用
原项目使用了一颗AT24C02来存储系统配置参数,为了降低成本,需要把这颗料砍掉,将配置参数保存到MCU内部的Flash上。这个改动其实简单,也就是读写内部flash而已,但是如果需要考虑擦写平衡这些特性,自己写就比较麻烦。而ST官方提供了一个使用内部Flash模拟EEPROM的模块,叫 X-CUBE-EEPROM ,包括了这些特性,实用性更强。
下面是从 ‘EEPROM emulation in STM32L4 series microcontrollers' (AN4894) 中摘抄的特性介绍,更详细的说明还是看文档吧:
轻量级其实是相对的,对于最简单擦写,1个page就可以了,比这个还轻量。使用这个模块看重无非是最后两点,毕竟Flash和EEPROM的特性是不一样的。
EEPROM_Emul还是挺轻量的,没几个文件,就两部分核心实现和flash接口。使用前还需要做些额外的工作:
在AN4894文档的4.1.3节详细介绍了 eeprom_emul_conf.h 中各个宏。
表示共使用了多少个PAGE来模拟EEPROM,它的值取决于配置和移植的多个宏。所以在配置好除START_PAGE_ADDRESS外的宏后,根据配置去计算PAGES_NUMBER的值。 START_PAGE_ADDRESS到flash结尾的空间必须 ≥ (PAGES_NUMBER PAGE_SIZE),否则在初始化时会出现Hardfault。 *
2023-08-23 广告