金牌会员
 
- 积分
- 1383
- 金钱
- 1383
- 注册时间
- 2015-2-3
- 在线时间
- 197 小时
|
发表于 2016-6-24 12:23:06
|
显示全部楼层
通常是判断一些掉电不丢失存储器里面的标志位比如EEPROM,如果有电池供电可以判断STM32的后备寄存器。还不行就判断STM32自带FLASH、按键等等。比如:
[mw_shl_code=c,true]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");
}[/mw_shl_code] |
|