CH573 CH582 用户程序跳转进BOOT
使用CH573 CH58x完成的APP代码很有可能需要进行升级,借助BOOT进行升级的话,可以通过APP跳转进入BOOT,借助芯片自带的BOOT和ISP工具,进行升级(支持串口1和USB下载)
跳转实现的代码,BOOT中有一段功能,如果APP起始的至少4字节是默认(无main跳转地址),则认为此芯片无app代码,停在BOOT中等下载,BOOT超时时间10s
具体代码实现
while(1) { PRINT("go \n"); mDelaymS(30); if((GPIOB_ReadPortPin(GPIO_Pin_22)) == 0){ //自定义跳转条件,PB22低电平调用跳转函数 PRINT("Jump BOOT \n"); APPJumpBoot(); } }
__HIGH_CODE void APPJumpBoot(void) //此段代码必须运行在RAM中 { while(FLASH_ROM_ERASE(0,EEPROM_BLOCK_SIZE)) { ;//ROM 擦4K1个单位,擦0地址起始 } FLASH_ROM_SW_RESET(); R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1; R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG2; SAFEOPERATE; R16_INT32K_TUNE = 0xFFFF; R8_RST_WDOG_CTRL |= RB_SOFTWARE_RESET; R8_SAFE_ACCESS_SIG = 0;//进入后执行复位,复位类型为上电复位 while(1);//营造空片的现象,启动时就会停在BOOT,等烧写,超时时间10s }
运行结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?