9 更进一步的 bootloader 架构设计

目录

1.什么样的产品适合外部下载?

1.从成本考虑:

2.从安全性考虑:

3.从功能扩展性考虑:

2.硬件架构:

模块架构:

架构图:

3.软件架构:

Bootloader:

App:

4.升级流程

Bootloader

App


1.什么样的产品适合外部下载?

1.从成本考虑:

如果产品本身对内部 Flash 内存的使用已经接近饱和,且内部 bootloader 下载会进一步占用大量内存导致需要增加昂贵的大容量 Flash 芯片,那么外部 Flash 下载就比较合适。

2.从安全性考虑:

对于那些处理敏感信息( 如金融数据、个人隐私数据、企业机密数据等)的产品,外部 Flash 下载方式能够提供更好的加密机制和访问控制。

3.从功能扩展性考虑:

如果产品需要频繁更新功能或者软件版本 ,并且外部 Flash 可以提供更灵活的存储空间用于新功能的加载和更新。

当产品的更新过程需要频繁擦除和写入大量数据时,外部 Flash 下载可能更合适。因为外部 Flash 可以在不影响内部系统核心功能的情况下进行独立的更新操作。

2.硬件架构:

模块架构:

Stm32F411CEU6:用于存放 Bootloader 代码和 APP 的主控芯片

Key:用于实现 App 和 Bootloader 切换逻辑模块

Led:用于演示 App 代码运行成功

Ch340:用于实现 MCU 与 PC 之间通信的中间模块

PC:使用相关上位机软件进行控制和下载芯片

Jlink:下载代码和 Trace 调试

W25Q64:存放下载备份 App 的代码

HC05:实现远程升级的必备工具,于 PC 端实现蓝牙通信

架构图:

3.软件架构:

Bootloader:

Key_Detect:用于上电时检测 Bootloader 是否进入下载模式

Download_logic:用于管理整个下载流程

Ymodem:基于上位机与 MCU 之间的通信协议

Gpio:外设寄存器层

Uart:外设寄存器层

Flash:外设寄存器层

W25Q_Driver:存放官方 W25Q 驱动库

W25Q_Handler:基于升级流程于 W25Q 之间的协议

App:

Key_Detect:用于 App 层是否需要跳转 Bootloader 命令

Led_Logic:App 逻辑执行,从现象中区分 APP 与 Bootloader

Gpio:外设寄存器层

4.升级流程

Bootloader

App

相关推荐
森利威尔电子-8 分钟前
森利威尔 SL3037B 替换HT7463A/HT7463B 5.5-60V宽压 峰值 0.6A
单片机·嵌入式硬件·物联网·集成电路·芯片
济61714 分钟前
ROS开发专栏---创建软件包 和编写第一个节点---适配Ubuntu 22.04
嵌入式·ros2·机器人方向
fengfuyao98516 分钟前
STM32 TIM8 两路互补PWM带死区控制程序
网络·stm32·嵌入式硬件
Jason_zhao_MR11 小时前
RK3576 MIPI Camera ISP调试:主观调优与工程实战(下)
stm32·嵌入式硬件·安全·系统架构·嵌入式
smartpi_ai14 小时前
玩具产品从按键控制升级为语音控制:语音模块与MCU串口通信实战
单片机·嵌入式硬件
LN花开富贵15 小时前
Ubuntu aarch64 架构安装 NoMachine 远程控制 避坑与实战
linux·运维·笔记·学习·ubuntu·嵌入式
BreezeJuvenile15 小时前
【STM32】时钟摘取法
stm32·单片机·嵌入式硬件
2023自学中16 小时前
imx6ull开发板,Linux-c编程,识别 键盘、鼠标、触摸屏坐标
linux·嵌入式·开发板·应用编程
崇山峻岭之间16 小时前
单片机GPIO配置
单片机·嵌入式硬件
lllllllccccc17 小时前
FReeRtos中断管理、临界段保护和任务调度器挂起和恢复学习
单片机·嵌入式硬件