单片机开发中BOOT区和APP区总结

一、说明

BOOT:BootLoader程序

APP:用户程序

BOOT 程序和 APP 程序是两个独立的工程,互不干扰,但是都是依赖于同一硬件平台进行开发的。

目的:实现APP的升级。通过BOOT区对APP区的程序代码进行覆盖。

二、特性

BOOT程序是在MCU上电时执行,APP程序是在BOOT程序跳转后执行。

在 MCU 升级完成或者是在一定时间内未收到升级请求,需要从 BOOT 跳转至 APP,执行用户程序功能,但在执行 APP 程序前,首先需要验证 APP 程序是否有效(比如擦除后烧写失败则APP程序不完整,在 APP 执行中会出错),才能进行跳转。

BOOT程序流程图:                       

                     

                                                       开始

                                                        结束

APP程序流程图:

                                                        开始

                             

                                                         结束

 

三、内存分配

开发 BootLoader 前,首先需要规划 MCU 的 ROM 分区,给 BOOT 和 APP 预留足够 ROM 空间,使两个程序可以互相独立运行,就必须先进行 ROM 内存分配,为BootLoader 预留足够的空间,避免BootLoader程序编译后的固件大小超出所属空间,从而影响用户程序(APP)区。

BOOT区中断向量表
BOOT区可执行程序
APP区重定向中断向量表
APP区可执行文件

APP升级方式:

CAN 通信:CAN 总线多用于工控和汽车领域,可自定义协议也可以使用标准的 UDS 通用协议。

UASRT通信:UASRT 通信机制简单,所以在稳定性和安全性方面稍微较差,但是可以一次发送的数据更多,因此在一定程度上对 MCU 升级的速度更快。

OTA:空中下载技术,通俗理解为远程网络升级,和上面两种相比,OTA 升级不需要在现场通过相关工具连接 MCU 进行升级;可以在任何地方对该 MCU 的程序进行升级,前提是有网络,因此,OTA 升级需要 MCU 产品具备网络功能,实现较为复杂。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值