当前位置:网站首页>GD32F4xx IAP 升级思路
GD32F4xx IAP 升级思路
2022-07-15 19:43:00 【madao1234】
1、IAP
我们生活中使用的手机、智能手表等,更新软件时都是通过在设备上进行软件版本的检测和升级触发就可以升级软件。在目前这个网络时代产品的这项功能是必不可少的。但用单片机开发的产品由于芯片资源等的限制往往缺失这部分功能。其实资源足够的MCU是可以通过IAP的方式实现上述的升级功能。
IAP( In Application Programming) , 指用户应用程序在运行过程中向Flash中烧写程序的功能。主要目的是在产品正式发布之后可以方便的通过预留的通信端口对产品进行固件程序升级。
2、GD32F4xx MCU IAP思路
IAP的实现主要和内核相关,本文中提到的 GD32F4xx系列器件是基于ARM Cortex-M4处理器的32位通用微控制器。 GD32D 内部Flash起始地址为 0x08000000,固件程序一般就此地址开始写入。Cortex-M4内核的MCU,其内部通过一张中断向量表来响应中断,程序启动后,首先从中断向量表中取出复位中断向量,执行复位中断程序完成启动进入Main() 函数运行。这张中断向量表的起始地址为0x08000004。当中断来临时,GD32 MCU的内部硬件机制会自动将PC指针定位到中断向量表位置,再根据中断源取出对应的中断向量执行中断服务程序,完成后再回到Main()函数中。
根据以上描述,要实现IAP的功能需要将GD32的固件程序分为2个部分,一部分用于向Flash中烧写程序(命名为user_boot),另一部分为用户的应用程序。(命名为user_app)。GD32上电后首先执行user_boot, 将新的固件程序烧写到Flash中。烧写完成后从user_boot程序中跳转到烧写的程序(user_app)中执行,这样就实现了IAP功能。
边栏推荐
- 华泰证券开户有陷阱吗?网上开户安全吗?
- Codeforces Global Round 21 A. NIT orz!
- Codeforces Round #804 B Almost Ternary Matrix
- 面试复盘2(面试回答不好的地方做总结)
- 增额终身寿险收益怎么样?可以当养老理财产品吗?
- Seven reasons why Ubuntu 22.04 LTS is the safest version at present
- 小目标检测2_OHEM
- 微服务学习
- Exness: crude oil stopped falling and rebounded. Pay attention to the performance of US terrorist data in the evening
- 华为云服务器云数据库创建只读过程
猜你喜欢

Scenarios that must be considered when designing a stable microservice system

卸载CUDA11.1

【开源可信隐私计算框架 “隐语”】蚂蚁宣布面向全球开发者正式开源

云文档管理软件 DocuWare Cloud 如何解决 5 大 IT 难题

Codeforces Round #802 B. Palindromic Numbers

ACL 2022 | 基于阅读理解的论点对抽取

语言AI原来知道自己的回答是否正确!伯克利等高校新研究火了,网友:危险危险危险

【快速下载VsCode】

Build a data-based system and start a new era of oid track

CSDN博客专家专属荣耀奖励来了
随机推荐
构建数据基础制度,开启OID赛道新纪元
C#将数据库连接方式写到配置文件中
华泰证券开户有陷阱吗?网上开户安全吗?
PolarDB for PostgreSQL的HTAP(Hybrid Transaction and
WTK6900H语音识别单芯片实现智能语音识别蓝牙耳机方案设计
Codeforces Round #806 (Div. 4) A - G
电商爬虫API全面详解
Codeforces Round #802 A. Optimal Path
nacos win10单机启动命令
Codeforces Round #802 D. River Locks
【开源可信隐私计算框架 “隐语”】蚂蚁宣布面向全球开发者正式开源
Codeforces Round #804 B Almost Ternary Matrix
请教下MySQL Source并行度的问题,我的Source下游并行度为1,我发现不开并行的话,和下
USB driver development process
Ubuntu 22.04 LTS 是目前最安全的版本的七大原因
会用redis吗?那还不快来了解下redis protocol
卸载CUDA11.1
CUDA和cuDNN安装教程(超详细).卸载CUDA、安装CUDA的nsight visual studio edition失败的情况、VS2019+CUDA11.1新建项目里没有CUDA选项
SQL也能玩转AI ?没错!MLOps Meetup V3 回顾|OpenMLBD+SQLFlow+Byzer
怎么解决系统高并发问题的思路?看完你就彻底懂了。