为了方便玩f1c100s/f1c200s的小伙伴能实现串口下载程序,我自己实现了write—spiflash功能
代码使用如下:
p = (kernel_header_t *)0xc0000000;//起始位置放的是程序头
if(p->rsv1 & 0x1)//判断是否需要将程序存入spiflash
{
//从0xc0000000搬到spiflash的0x8000处,然后重新上电运行(方案1)
sys_spi_flash_init();
n = size / 4096;//1扇区4k(4096)
if(size % 4096) n ++;
cnt = 0;
while(n --)
{
sys_spi_EraseSector(0x8000 + cnt*4096);//根据size计算擦除扇区数
cnt ++;
}
n = size / 256;//1页256字节
if(size % 256) n ++;
cnt = 0;
while(n --)
{
sys_spi_WritePage(0x8000 + cnt*256, (void*)0xc0000000 + cnt*256);//根据size计算写入页数
cnt ++;
}
sys_spi_flash_exit();
}
相关底层代码主要是擦除和写flash,可点击下面链接下载:
IAP很方便,不需要每次使用工具从usb口烧写。
祝你使用我的代码很愉快!
离线