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

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值