当前位置: 首页 > news >正文

建设网站怎么学兖矿东华建设有限公司网站

建设网站怎么学,兖矿东华建设有限公司网站,企业官网建设 创意网站建设,凡客网上购物商城STM32 Customer BootLoader 刷新项目 (二) 方案介绍 文章目录 STM32 Customer BootLoader 刷新项目 (二) 方案介绍1. 需求分析2. STM32 Memery介绍3. BootLoader方案介绍4. 支持指令 1. 需求分析 首先在开始编程之前,我们先详细设计一下BootLoder的方案。 本项目做…

STM32 Customer BootLoader 刷新项目 (二) 方案介绍

文章目录

  • STM32 Customer BootLoader 刷新项目 (二) 方案介绍
    • 1. 需求分析
    • 2. STM32 Memery介绍
    • 3. BootLoader方案介绍
    • 4. 支持指令

1. 需求分析

首先在开始编程之前,我们先详细设计一下BootLoder的方案。

本项目做的BootLoader是在STM32自带的启动一级boot上加了一层,即为二级Boot,其是专门为客户自定义的启动过程中操作软件的后门。主要作用是更新MCU中的软件,在正常启动过程中,CB刷新整个控制器中的软件。

整个软件的代码块如下图所示,最下一层是SB(ST自带的Boot),这里面初始化异常向量表,初始化堆栈和RAM。

第二层是CB(客户定制化的Boot),这里面主要是执行客户所定义的启动逻辑,其中包括刷新整个控制器中的软件,获取软件版本号,擦除指定Sector的代码,使能读/写Flash保护,跳转到指定地址。还可以根据需求进行定制化实现。

第三层是APP应用,是实现控制器中的控制逻辑。

image-20240622200254124

下图是CB的架构图,整个刷新和操作MCU都是通过USART来操作,其中USART1是主要和MCU进行通信、刷新和发送命令的串口,而USART2是Debug 端口,只在调试的时候使用用来输出打印信息,开发阶段完成后,USART2则不再使用。image-20240621072252557

2. STM32 Memery介绍

对于实现客户化的BootLoader,对于整个Flash空间,可以从下图中看出,地址范围是0x0800 0000-0x080F FFFF,再看下图中Table 5中,可以看出Sector 0-11,我们选中Sector 0-1作为Customer BootLoader的地址空间,即0x0800 0000-0x0800 7FFFF。剩下Application的地址空间为Sector 2-11。执行完ST的Boot后,跳转到Customer BootLoader,再CB中执行完相应的客户化操作,再跳转到Application,执行应用层程序。

image-20240621072337539

image-20240621072403390

3. BootLoader方案介绍

上面介绍了Memory的内存分配,下面我们可以更加详细的看出三块应用的程序Flash的分配。

板子MCU一上电先从STM32里面的ST BootLoader中先启动,进行异常向量表的初始化和堆栈初始化。后续跳转到Customer BootLoader所在的地址,即为0x0800 0000,通过相应的判断条件进入CB,执行相应的客户化指令。若没有客户的条件,则跳转至应用层程序Application。

image-20240621072216733

下图则是在CB中的跳转逻辑,将Flash中的程序Aliasing映射到0x0000 0000地址处,实际是从0地址开始启动,0地址存放MSP的栈指针,其中offset 0x0000 0004则为存放PC指针跳转地址,程序执行到此处则开始跳转到相应地址区间。

image-20240621072313826

image-20240623181517888

下图为整个Customer BootLoader中的跳转逻辑,下一篇文章将详细介绍整个Customer BootLoader的程序编写过程。

BootLoader_Flow

4. 支持指令

下面是整个Customer BootLoader支持的指令,其中比较重要的是0x55(BL跳转固定地址),0x56(指定擦除扇区),0x57(在不同内存写数据)。后续将详细介绍整个Customer BootLoader的方案实现和代码实现。

主机发送命令码BootLoader回复备注
BL_GET_VER0x51BootLoader版本号(1 byte)从MCU中读BootLoader的版本号
BL_GET_HELP0x52所有支持的命令码(10 bytes)列出BootLoader支持的所有命令
BL_GET_CID0x53Chip identification number(2 bytes)读芯片的识别号
BL_GET_RDP_STATUS0x54返回芯片读保护等级(1 byte)读行骗Flash的读保护等级
BL_GO_TO_ADDR0x55返回成功或错误(1 byte)BL跳转固定地址
BL_FLASH_ERASE0x56返回成功或错误(1 byte)指定擦除扇区
BL_MEM_WRITE0x57返回成功或错误(1 byte)在不同内存写数据
BL_EN_R_W_PROTECT0x58返回成功或错误(1 byte)使能读/写保护
BL_MEM_READ0x59主机请求的内存内容长度TO DO
BL_READ_SECTOR_STATUS0x5A所有Sector状态读所有扇区的保护状态
BL_OTP_READ0x5BOTP contentsTO DO
BL_DIS_R_W_PROTECT0x5C返回成功或错误(1 byte)该命令用于禁用用户Flash的不同扇区的读写保护功能。该命令将保护状态恢复为默认状态。

您的支持是我最大的动力!
系列BootLoader文章:
STM32 Customer BootLoader 刷新项目 (一) STM32CubeMX UART串口通信工程搭建

http://www.yayakq.cn/news/543214/

相关文章:

  • 建晨网站建设有限公司优秀网站配色
  • 建设一个网站需要考虑什么怎么开小程序店铺
  • 中投建设官方网站查企业营业执照的网站
  • 天津网站建设费用免费商标设计网站
  • 做效果图常用的网站三大主流app开发平台
  • 北京网站开发服务seo软件推广哪个好
  • 软装潢.企业网站建设百度网页版入口官网
  • 辽宁省建设部网站wordpress商店网页
  • 微信公众号注册流程seo应用领域有哪些
  • 网站建设音乐代码photoshop下载安装
  • 昆山普立斯特做的有网站网站建设内容论文
  • 广州住房和建设局网站官网网站开发联系方式
  • 长沙优化网站关键词苏省住房和城乡建设厅网站首页
  • 天津宇昊建设集团有限公司网站个体工商户注册公司流程和费用
  • 西安高校网站建设定制网站建设中国建设银行启东市支行网站
  • 做网站对程序员说那些需求瑞安网站开发
  • 凡科网站开发seo优化查询
  • 建设网站需要懂什么网站建设费用账务处理
  • 二 加强门户网站建设phpcms v9企业网站模板(简洁利于优化)
  • 做餐饮系统网站wordpress用的什么前端
  • 建设网站的岗位职责网站建设同行友情链接
  • 帝国cms关闭网站学字体网站
  • 网站建设谈单技巧王烨当兵小说
  • 宁波企业建站系统网站建设书模板
  • 哪个网站下载软件最安全wordpress关键词加内链
  • 石家庄站规模长沙企业网站排名
  • 浙江建设职业技术学院官方网站交流平台网站架构怎么做
  • 用旧电脑做服务器建网站用平面设计课程表
  • 百度云虚拟主机如何建设网站设计网站遇到的问题
  • 淘客客怎么做自己的网站天津河西做网站哪家好