在测试 《实验50 串口IAP实验》 示例的时候,在通过串口发送完bin文件之后,按up键发现一直无法进入到 固件更新完成,然后通过断点看内存,发现并没有在 0X20001000+4地址上 显示 中断地址 0x08000000。
printf("开始更新固件...\r\n"); LCD_ShowString(30,210,200,16,16,"Copying APP2FLASH...");
if(((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX.
{
iap_write_appbin(FLASH_APP1_ADDR,USART_RX_BUF,applenth);//更新FLASH代码
LCD_ShowString(30,210,200,16,16,"Copy APP Successed!!");
printf("固件更新完成!\r\n");
}else
{
LCD_ShowString(30,210,200,16,16,"Illegal FLASH APP! ");
printf("非FLASH应用程序!\r\n");
}
观察bin文件,发现文件的前几个字节显示的也不是 文件中断地址(0x08000000),
想了解一下:1、 打包生成的bin文件,是否就是串口升级使用的文件,
2、串口升级的 是否需要其他指令
|