- 宏定义
#define BOARD_RAM_SIZE 0x5000
#define BOARD_RAM_BASEADDR 0x20000000
#define BOARD_Flash_BASEADDR 0x08000000
#define BOARD_Flash_SIZE 0x00010000
#define FLASH_PAGE_SIZE 256
- 写入
先看要写入的长度,够几页(取整),看看Sart和End会不会超。
解除Flash锁,
- 先把数据复制到页缓冲区
- 开始擦除、写入缓冲区
按页循环上述操作,并查看数据完整性、Flag。
锁Flash
退出
int Flash_Write(int addr,const void *DATA,int Length)
- 读取
先看要读取的长度,够几页(取整),看看Sart和End会不会超。
- 按页先读出来存到缓冲区
- 缓冲区copy到目标地址内
按页循环上述操作,并查看Flag。
退出
void Flash_Read(int addr,const void *Back_DATA,int Length)