单片机程序远程升级OTA底层框架BUG,及解决方案
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/单片机知识点总结/directory.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
4,系统定时器BUG
如果BootLoader里面使用了系统定时器中断,在跳转的时候不仅需要
SysTick->CTRL=0;
还需要
SysTick->VAL=0x00;
3,日志打印冲突导致死机BUG; BootLoader关闭中断BUG
屏蔽两句日志打印
在BootLoader里面把串口所有中断关闭
USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);
USART_ITConfig(USART1, USART_IT_TXE, DISABLE);
USART_ITConfig(USART1, USART_IT_TC, DISABLE);
USART_ITConfig(USART1, USART_IT_IDLE, DISABLE);
USART_ITConfig(USART2, USART_IT_RXNE, DISABLE);
USART_ITConfig(USART2, USART_IT_TXE, DISABLE);
USART_ITConfig(USART2, USART_IT_TC, DISABLE);
USART_ITConfig(USART2, USART_IT_IDLE, DISABLE);
USART_Cmd(USART1, DISABLE);
USART_Cmd(USART2, DISABLE);
2,HTTP数据解析BUG
在后面添加上 && IAPStructValue.section_download_flag==0
1,HTTP数据解析BUG
该BUG存在于最新底层的OTA升级框架
修改BUG(总共2处); 在下面的位置添加上 IAPStructValue.HttpHeadOK=0;