初级会员

- 积分
- 62
- 金钱
- 62
- 注册时间
- 2018-3-21
- 在线时间
- 16 小时
|

楼主 |
发表于 2018-11-6 14:06:28
|
显示全部楼层
本帖最后由 510083812 于 2018-11-6 14:08 编辑
上位机我已经写成按照1K发送了,更新固件程序我改成如下iap_write_appbin(FLASH_APP1_ADDR+count*1024,USART_RX_BUF,applenth);
count++;
iap里面我改成如下
u16 iapbuf[512];
//appxaddr:ó|óÃ3ìDòμÄÆeê¼μØÖ·
//appbuf:ó|óÃ3ìDòCODE.
//appsize:ó|óÃ3ìDò′óD¡(×Ö½ú).
void iap_write_appbin(u32 appxaddr,u8 *appbuf,u32 appsize)
{
u16 t;
u16 i=0;
u16 temp;
u32 fwaddr=appxaddr;//μ±Ç°D′èëμÄμØÖ·
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==512)
{
i=0;
STMFLASH_Write(fwaddr,iapbuf,512);
// fwaddr+=2048;//Æ«òÆ2048 16=2*8.ËùòÔòa3ËòÔ2.
}
}
if(i)STMFLASH_Write(fwaddr,iapbuf,i);//½«×îoóμÄò»D©ÄúèY×Ö½úD′½øè¥.
}
现在的情况之后APP无法正常工作(APP程序本身单独运行是可以的),发送的二进制文件我看了下没错误的,是不是我烧写flash的位置错误了。
|
|