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

网站建设与维护 课件比较有特色的网站

网站建设与维护 课件,比较有特色的网站,wordpress 静态化 cos,北京网站建设厂家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/21125/

相关文章:

  • 设计手机网站公司百度一下电脑版首页网址
  • 电商模板网站免费商梦建站
  • 中国营销传播网app做推广优化的网站有哪些
  • 上海网站建设开发网站的要求
  • 网站快速注册风科网免费网站
  • 东莞知名网站建设网络设备维护是做什么的
  • 网站改版设计方案做视频网站怎么挣钱吗
  • 电子商务网站建设与设计宁阳网站定制
  • 网站用什么语言好江都建设总部网站
  • 怎样做网站建设方案wordpress启用主题网站出错
  • 1m带宽可以建设电商网站吗做生存曲线网站
  • 重庆建设工程公司网站html5手机网站开发经验
  • 做口腔科网站网站开发运行环境论文
  • 怎么进电力建设公司网站做棋牌网站违法嘛
  • 网站前台登录模板公众号 创意名字
  • 青岛金桥建设机械有限公司网站做运动鞋评价的网站
  • 荆门网站建设南宁网站建设加q.479185700
  • 企业网站的一般要素有工商注册登记流程
  • 福建省住房和建设厅网站室内装饰设计是干什么的
  • 青岛市建设监督管理局网站网站空间数据
  • 建设网站的教程吉首企业自助建站
  • 企业门户网站开发公司做网站需要注册商标第几类
  • 搭建网站需要什么软件产品展示类网站
  • 怎样在网站上做销售太原企业网站模板建站
  • 移动手机号码网站响应式网站的制作工具
  • 策勒网站建设百度应用宝
  • 做外贸需关注的网站企业做网站和宣传册的作用
  • 河南省建设厅注册中心网站mvc网站开发视频教程
  • 找网站漏洞赚钱怎么做的企业网站开发工具
  • 网站没有内容可以备案吗服装搭配网站源码