打印
[研电赛技术支持]

基于GD32F4xx+网口的一种IAP方法

[复制链接]
1428|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
因项目需要,基于GD32F4xx的核心板需要支持通过网口的在线升级嵌入软件
1)通过网口将嵌入软件下载到外挂FLASH;
2)然后将外挂FLASH中的软件写入到GD32F4xx的内部FLASH中。

其中1)很常规,不详细描述了;实现2)必将麻烦,因为实现2)的代码已经在MCU的内部FLASH中,
需要在擦除MCU内部FLASH过程中,这部分代码必能被擦除,所以使用了#pragma default_function_attributes = @ "MY_FUNC"
将该部分代码固定到MCU内部FLASH的某个扇区中,例如:
define region FUNC_region  = mem:[from 0x080E0000 to 0x080FFFFF];
place in FUNC_region { readonly section MY_FUNC };


这样在擦除MCU内部FLASH时,避免擦除该扇区,这样就可以顺利实现2)。
考虑到实现2)的代码也可能存在升级的问题,所以在完成其它代码升级后,在检测实现2)的代码是否需要升级,
如果需要再将该扇区擦除,并将外挂FLASH中的相应部分代码写入到该扇区。

使用特权

评论回复
评论
xiayangchun 2021-12-16 13:00 回复TA
不是很懂,是否有更详细的流程说明,感谢楼主 
沙发
Sean_JianLong|  楼主 | 2021-12-17 10:25 | 只看该作者
IAP流程

IAP.png (301.65 KB )

IAP流程

IAP流程

使用特权

评论回复
板凳
tpgf| | 2022-1-6 15:20 | 只看该作者
交互信息多啊

使用特权

评论回复
地板
观海| | 2022-1-6 15:28 | 只看该作者
握手次数比较多

使用特权

评论回复
5
guanjiaer| | 2022-1-6 15:35 | 只看该作者
这个都是硬件底层自动完成的吧

使用特权

评论回复
6
heimaojingzhang| | 2022-1-6 15:40 | 只看该作者
直接寄存器配置不就可以了吗

使用特权

评论回复
7
keaibukelian| | 2022-1-6 15:49 | 只看该作者
如果不是图片就更好了

使用特权

评论回复
8
labasi| | 2022-1-6 15:53 | 只看该作者
那些需要人工介入呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

41

帖子

1

粉丝