eeprom_in_flash
1.0.0
이 코드는 간단한 플래시 시뮬레이션 eeprom 함수를 구현합니다. 기본 플래시 작동 인터페이스를 간단히 구현하여 최상위로 EEPROM 인터페이스를 호출 할 수 있습니다. EEPROM 데이터 저장소가 적은 프로젝트에 적합합니다
EEPROM에 제공된 플래시 공간은 두 개의 파티션으로 나뉘어져 있으며, 각 파티션에는 여러 개의 지우기 페이지가 포함될 수 있으며, 이는 지우기 동안 균일하게 지우칩니다. 현재 사용되는 파티션은 초기 중고 _mark에 의해 결정됩니다. 실제 데이터와 EEPROM 가상 주소는 프로그래밍 장치를 형성합니다. 쓰면 새 데이터는 순서대로 작성되며 읽을 때 마지막 값은 유효한 값입니다. 한 파티션이 가득 차면 데이터가 다른 파티션에 복사됩니다.
//参数:eeprom初始化值,NULL则无初始值
int EEPROM_Init ( void * default_data );
int EEPROM_Format ( void * default_data );
//参数Address:eeprom的地址,一个地址保存16bit数据,范围0 - (EEPROM_NUM_MAX-1)
//参数length:读写buf的长度,为16bit数据的个数
uint16_t EEPROM_Read ( uint16_t Address );
int EEPROM_Write ( uint16_t Address , uint16_t Data );
int EEPROM_Read_Buf ( uint16_t Address , uint16_t * buf , uint16_t length );
int EEPROM_Write_Buf ( uint16_t Address , uint16_t * buf , uint16_t length );
//参数addr:eeprom存储空间的地址,单位byte,与上面eeprom的参数呈2倍关系,地址空间不可重复,必须2字节对齐,范围0 - (EEPROM_NUM_MAX-1)*2
//参数length:读写buf的长度,单位字节长度,必须2字节对齐
int Config_Read_Buf ( uint16_t addr , void * buf , uint16_t length );
int Config_Write_Buf ( uint16_t addr , void * buf , uint16_t length );