1.CH573和CH582的codeflash为448k,可用来存放程序和掉电保存的数据,dataflash为32k,可用来存放掉电保存的数据。
DataFlash 擦 写 读 接口函数:
EEPROM_ERASE(0, EEPROM_BLOCK_SIZE); //Data-Flash擦地址为相对地址,最小擦除单位256字节,擦除起始地址需按照256字节对齐
EEPROM_WRITE(0, TestBuf, 500); //Data-Flash写地址为相对地址,可单字节写
EEPROM_READ(0, TestBuf, 500); //Data-Flash读地址为相对地址,可单字节读
CodeFlash 擦 写 读 接口函数:
FLASH_ROM_ERASE(20 * 1024, 4096); //Code-Flash擦地址为绝对地址,最小擦除单位4k字节,擦除起始地址需按照4k字节对齐
FLASH_ROM_WRITE(20 * 1024, TestBuf, 128); //Code-Flash写地址为绝对地址,可单字节写
FLASH_ROM_READ(20 * 1024, TestBuf, 128); //Code-Flash读地址为绝对地址,可单字节读
使用时注意点:
1.无论的CodeFlash写操作,还是DataFlash的写操作,其传入的源数据指针只支持在RAM中,而不支持在flash中,否则即使,写操作返回成功,仍然会写失败。
2.CodeFlash读操作是有硬件加扰的,也就是擦除后读不是全FF,而是四个固定字节的循环,DataFlash读操作没有硬件加扰。
3.CodeFlash和DataFlash都可以直接指针读数据(指针读经过硬件加扰)。
4.DataFlash写之前也是需要先擦再写的。