stm32f103c8t6移植正点原子bootloader例程遇到iap_write_appbin()需要修改

移植步骤按照原子哥的教程,很清晰。

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;t512
		{
		    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工程,下载地址。已验证通过

你可能感兴趣的:(STM32)