1、关于GD32 Flash
GD32 flash官方称为FMC。
2、关于GD32L233CCT6 flash
本次使用的GD32L233CCT6 flash大小为256k;
可以看出,分为64页,从0-63页,每页大小为4kb;
手册上说,支持32位整字和16位半字编程,但是库函数只有整字编程。
3、代码实现
#define FLASH_PAGE_SIZE 0x1000 //4k
void FlashWrite(uint16_t len,uint8_t *data,uint32_t addr_start)
{
uint16_t i=0;
uint32_t temp=0;
uint32_t addr=addr_start;
fmc_state_enum fmc_state=FMC_READY;
fmc_unlock();
for(i=0;i<len/4;i++)
{
temp = (data[0]<<0)+(data[1]<<8)+(data[2]<<16)+(data[3]<<24);
fmc_state=fmc_word_program(addr, temp);
if(fmc_state!=FMC_READY)
{
return;