IAP升级问题

本文详细记录了在STM32和GD32平台上实现IAP(In Application Programming)升级过程中遇到的问题及解决方案,包括传输问题、Flash读写和程序跳转。在传输问题中,强调了GD32 108M倍频的配置注意事项;在Flash操作中,建议使用官方库并考虑写入速度;在程序跳转环节,讨论了中断管理、HardFault问题及其处理方式。
摘要由CSDN通过智能技术生成

IAP

IAP(in application programming)在应用编程,一些概念什么的不在详细叙述了,百度,Google都有。这里主要记录一些曾经遇到的一些问题和解决方案。IAP升级方案曾在stm32平台和GD32(国产的,108M,兼容st)平台上实现过,不过速度并不快,方法也很简单,看了不少网上的例子,自己也做了个上位机实现传输。

IAP升级的要点
一、解决传输问题。
用蓝牙之类的自然方便许多,不过这里要备注一下:gd32的108M倍频需要修改HSE_SATUP_TIMEOUT 为0xffff,保证HSE_VALUE 值为对应的晶振值,PLL倍频超过16的需要修改stm32f10x_rcc.c 库文件,具体的可参考GD32F103XX 108M时钟配置,否则串口可能乱码。

二、flash读写。
建议使用官方的库读写。写入flash是只能写入内容为0xffffffff的地址单元,擦除要擦除一页。当然可以单字写入,也可以128字写入,前者方便省事,后者速度明显提高不少但相应的程序也要做修改。

FLASH_Unlock();             
FLASH_ProgramWord(FLASH_APP1_ADDR+APP_CurAddress,((c1<<0)|(c2<<8)|(c3<<16)|(c4<<24)));
APP_Cu
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值