移植步骤按照原子哥的教程,很清晰。
1、原子哥的使用战舰版本 芯片 flash是512kb,flash是每页 2kb
2、c8t6 芯片 flash是64kb,flash是每页 1kb
所有要稍微修改一下函数, 对应函数中1024或2048数字需要除以2 void iap_write_appbin() 如下:
void iap_write_appbin(u32 appxaddr,u8 *appbuf,u32 appsize)
{
u16 t;
u16 i=0;
u16 temp;
u32 fwaddr=appxaddr;//当前写入的地址
u8 *dfu=appbuf;
for(t=0;t<appsize;t+=2)
{
temp=(u16)dfu[1]<<8;
temp+=(u16)dfu[0];
dfu+=2;//偏移2个字节
iapbuf[i++]=temp;
// if(i==1024)
if(i==512) //修改地方1 1024->512
{
i=0;
// STMFLASH_Write(fwaddr,iapbuf,1024);
// fwaddr+=2048;//偏移2048 16=2*8.所以要乘以2.
STMFLASH_Write(fwaddr,iapbuf,512); //修改地方2 1024->512
fwaddr+=1024;//偏移1024 16=2*8.所以要乘以2.//修改地方3 2048->1024
}
}
if(i)STMFLASH_Write(fwaddr,iapbuf,i);//将最后的一些内容字节写进去.
}
修改后的keil_5工程,下载地址。已验证通过