网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

学技术 | STM32F系列向G系列切换应用总结—Boot m

时间:2022-12-19 15:31

人气:

作者:admin

标签: STM32 

导读:很多客户在使用STM32G系列替代STM32F系列时,我们经常会收到客户反馈如果使用串口下载程序?如何修改boot模式?如何将特殊IO复用成通用IO?等等问题;这是由于STM32G系列相对于STM32F系列...

很多客户在使用STM32G系列替代STM32F系列时,我们经常会收到客户反馈如果使用串口下载程序?如何修改boot模式?如何将特殊IO复用成通用IO?等等问题;这是由于STM32G系列相对于STM32F系列Boot mode、Option byte发生了一些变化,本文会针对于此类问题做详细的使用讲解。

一. STM32G系列Boot mode

1.1 STM32F系列与G系列Boot mode对比

86d26a5e-7e66-11ed-b116-dac502259ad0.png

STM32F系列通用型及部分高性能(F0、F1、F2、F3、F4)MCU是通过外部Boot Pin来的IO输入状态来配置系统的启动方式,并在MCU上电后的第四个时钟周期锁存Boot Pin状态,启动方式分为三种1.Main Flash Mmemory启动,从Flash存储启动,将0x08000000地址加载应用程序;2.System Memory启动,System Memory存储是系统的自举程序,无法篡改;3.Embedded SRAM启动,当设备从SRAM引导时,在应用程序初始化代码中,必须使用NVIC异常表和偏移寄存器重新定位SRAM中的矢量表。

86ee3acc-7e66-11ed-b116-dac502259ad0.png

相对于STM32F系列来说,G系列在Boot modes方面最大的改变是增加Option byte与 Boot0 Pin混合配置,启动方式与F系列大致相同。

1.2 STM32G系列BOOT mode变换操作

本次操作流程硬件使用NUCLEO-G431RB开发板为例,软件使用STM32CubePrg。

STM32G431RBT6默认启动是以上图中的第三种方式,即使用Option byte配置,将nBOOT0位配置为1,使用ST-Link连接,打开Option byte->User Configuration,如下图:

870f7a8e-7e66-11ed-b116-dac502259ad0.png

此时我们可以通过修改Option byte,来改变系统的启动方式,比如从串口更新程序,需要将系统设置成System Memory启动,运行自举程序,使用图1.2的第七种配置方式,将nBOOT0位置0,nBOOT1位置1,nSWBOOT0位置0,并点击Apply,系统复位之后即从System Memory启动。

872f639e-7e66-11ed-b116-dac502259ad0.png

1.3 ST-Link无法连接恢复操作

一些客户在使用STM32G系列MCU过程中,会出现程序上电后立马处于低功耗或者SWD接口被复用成IO的情况下,ST-Link会无法连接至MCU,导致无法擦除更新程序,在这种情况下可以通过SRAM启动,然后擦除FALSH应用程序;

如果在应用中会有低功耗模式及SWD接口复用IO的情况下,建议客户的启动方式采用图1.2中第二种方式,将外部BOOT0 Pin拉低,nSWBOOT0位置1;当在软件调试过程中出现以上情况时,可以外部直接将BOOT0拉高,使用SRAM启动后擦除异常程序。

二. STM32G系列Option byte

2.1 STM32G431RB Option byte描述

Option byte是由最终用户根据应用程序要求进行配置,一共是用4 bytes与8 bytes补充构成,通过配置FLASH_OPTR、FLASH_PCROP1SR、FLASH_PCROP1ER、FLASH_WRP1AR寄存器,可以完成软件修改option byte;同时可以使用STM32CubePro修改option byte。

FLASH_OPTR寄存器可以进行系统RDP level配置、系统复位相关配置如系统复位电压级别、nRST引脚模式、低功耗复位、开门狗复位等;

FLASH_PCROP1SR寄存器用于配置PCROP起始地址;

FLASH_PCROP1ER寄存器用于配置PCROP结束地址;(PCROP区域只能用于CPU取值,Debug、CPU取数据、DMA功能全部禁止)

FLASH_WRP1AR寄存器用于配置写保护A区域的起始地址和结束地址;

FLASH_WRP1BR寄存器用于配置写保护B区域的起始地址和结束地址;(写保护允许有两个非连续区域,写保护区域无法进行mass erase和下载程序)

FLASH_SEC1R寄存器用于配置用户代码安全区域,起始地址是0x0800 0000及LOCK_B00T位配置;

所有的寄存器操作完成后,可以将FLASH_CR寄存器OBL_LAUNCH( Force the option byte loading)位置1,即可对所有的配置立即生效,否则需要系统复位才能生效;

所有的寄存器配置详细可查阅参考手册RM0440.

2.2 软件修改Option byte流程

当需要使用软件修改Option bytes时,建议使用以下步骤:

检查FLASH_SR寄存器的BSY位,当BSY为0时,表示没有其他正在进行的闪存操作,否则需要等待;

解锁FLASH_CR寄存器,向FLASH_KEYR寄存器写入KEY值;

解锁FLASH_OPTR寄存器,向FLASH_ OPTKEYR寄存器写入KEY值;

将FLASH_CR寄存器OPTSTRT置1,表示开始修改Option byte;

修改需要使用的选项字节;

检查FLASH_SR寄存器的BSY位,当BSY为0时,表示修改完成;

如果需要对选项字节立即生效,将FLASH_CR寄存器OBL_LAUNCH位置1,否则需要复位后才能生效;

锁住FLASH_OPTR寄存器;

锁住FLASH_CR寄存器;

断电、上电系统复位,Option bytes修改生效。

2.3 STM32CubePro修改Option byte流程

STM32CubePro可以通过使用ST-Link或者在系统存储运行下连接至MCU,打开菜单栏中的Option bytes,修改需要的内容,并点击Apply,点击Apply后修改的Option bytes会立即生效。

875a0f68-7e66-11ed-b116-dac502259ad0.png

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信