参考了 "基于系统bootloader的串口IAP方式固件升级" ,平常使用flymcu下载程序,下载时会一直发送0x7F命令,以下代码可以实现一键升级。测试时候用的挺好,不过产品最终增加了读保护的功能,设置了读保护之后,跳转到内置bootloader就会死机。
请问有没有什么好的解决方案?
[C] 纯文本查看 复制代码 /**判断是否自动进入ISP模式,更新程序**/
void CheckISPMode(uint8_t _byte)
{
//FLYMCU 下载时会发送0x7F命令,可以实现一键下载功能
if(_byte == 0x7F)
{
gIspCnt++;
if(gIspCnt >= 9)
{
JumpToApplication(0x1FFFF000); /* STM32F1的系统BootLoader地址 */
//JumpToApplication(0x1FFFB000); /* GD32F1的系统BootLoader地址 */
//g_JumpInit = 0xAA550520;
//NVIC_SystemReset();
}
}
else
{
gIspCnt = 0;
}
}
|