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

STM32G4系列MCU的启动项配置

目录

概述

1 配置方法

1.1 配置类型

1.2 启动模式类别

1.3 注意点介绍

2 应用案例介绍

2.1 主内存启动模式

2.2 GPIO配置启动模式

2.3 注意点介绍

3 物理内存映射

3.1 映射内存类别

3.2 注意点介绍 


概述

本文主要介绍STM32G4系列MCU的启动项配置功能,包括启动模式类别,内存映射地址等内容。

1 配置方法

1.1 配置类型

配置启动项方法:

1)BOOT0引脚(PB8)

2)nBOOT0位,其存在于FLASH_OPTR 寄存器中

3)nBOOT1位,其存在于FLASH_OPTR 寄存器中

1.2 启动模式类别

1.3 注意点介绍

当BFB2位被置位时(对于双bank设备),系统内存保持在0x0000 0000位置。在用户应用程序中必须考虑将系统内存混叠到0x0000 0000 - VTOR地址必须从默认值重新映射0x0000 0000地址转换为实际用户应用程序的正确地址向量表。

在复位释放后,BOOT0引脚(来自引脚或选项位)和nBOOT1位上的值 锁存于内部启动时钟源的第4时钟。由用户设置nBOOT1和BOOT0来选择所需的启动模式。

BOOT0引脚或用户选项位(取决于 FLASH_OPTR寄存器中的nSWBOOT0位值)和nBOOT1位在从备用模式退出时也被重新采样。因此,它们必须在Standby 模式下保持所需的Boot模式配置。在这个启动延迟过去之后,CPU从 地址0x0000 0000获取栈顶值,然后从0x0000 0004处的引导内存开始执行代码。

2 应用案例介绍

2.1 主内存启动模式

根据所选择的启动模式,主闪存、系统内存或SRAM1可以 访问,如下所示:

1)从主闪存引导:主闪存在引导内存空间(0x0000 0000)中别名,但仍然可以从其原始内存空间访问

(0 x0800 0000)。换句话说,可以从地址0x0000 0000或0x0800 0000开始访问闪存内容 。

2)从系统内存启动:系统内存在启动内存空间中别名(0x0000 0000),但仍然可以从其原始内存空间(0x1FFF 0000)访问。

3)从嵌入式SRAM1引导:SRAM1在引导内存空间中别名(0x0000 0000),但是仍然可以从其原始内存空间(0x2000 0000)访问它。

2.2 GPIO配置启动模式

PB8/BOOT0 GPIO配置在:

1)如果选项位nSWBOOT0被设置为FLASH_OPTR寄存器,然后在复位释放后,该引脚自动切换到模拟模式(BOOT0引脚)。

2)如果在FLASH_OPTR寄存器中的位nSWBOOT0被清除(BOOT0值来自选项位),则从复位阶段到选项字节加载完成的输入模式。即使复位阶段不完成,它也会自动切换到模拟模式。

2.3 注意点介绍

1) 当设备从SRAM启动时,在应用程序初始化代码中,必须通过使用NVIC异常表和偏移寄存器重新定位SRAM中的向量表。

2)当从主闪存启动时,应用程序软件可以从 bank 1或bank 2启动(仅适用于3类设备)。

3)默认情况下,选择从bank1启动。选择从flash bank 2启动,在用户选项字节中设置BFB2位。当设置了 这个位,并且引导引脚处于从主闪存引导配置中时, 设备从系统内存引导,引导加载程序跳转到执行在闪存组2中编程的用户应用程序。

3 物理内存映射

3.1 映射内存类别

一旦选择了引导引脚模式,应用软件就可以修改代码区中可访问的内存 (这样代码就可以通过 代替系统总线的ICode总线来执行)。这个修改是通过在SYSCFG控制器中编程SYSCFG 内存重新映射寄存器(SYSCFG_MEMRMP)来执行的。

以下记忆可以被重新映射:
•主闪存
•系统内存
•嵌入式SRAM1
•FSMC银行1 (NOR/PSRAM 1和2)
•QUADSPI内存

3.2 注意点介绍 

1)灰色突出显示的保留内存区域。

2)  当FSMC在地址0x0000 0000处重新映射时,只有第1组内存控制器(第1组)的前两个区域
NOR/PSRAM 1和NOR/PSRAM 2)可以重新映射。当FSMC被重新映射到地址0x0000 0000时,只有128 MB被重新映射。在remap模式下,CPU可以通过ICode总线而不是系统总线访问外部存储器,从而提高了性能。

3) 即使在引导内存空间中别名,相关内存仍然可以在其原始内存空间中访问。


http://www.kler.cn/news/359827.html

相关文章:

  • CIM系统:智慧城市的数字基石
  • 鸿蒙--进度条通知
  • Springboot+vue图书商城购物系统【附源码】
  • 列表(list)、元组(tuple)、字典(dictionary)、array(数组)-numpy、DataFrame-pandas 、集合(set)
  • Python知识点:基于Python技术和工具,如何使用Chainlink进行链下数据访问
  • 01 Druid未授权错误及解决方案
  • 命令行工具cURL 的用法
  • Python知识点:基于Python工具,如何使用Web3.py进行以太坊智能合约开发
  • Docker compose 安装Jenkins
  • Spring Boot助力中小型医院网站开发
  • ACM与蓝桥杯竞赛指南 基本输入输出格式三
  • 《Python游戏编程入门》注-第2章3
  • shell脚本每日一练1
  • 【独家:AI编程助手Cursor如何revolutionize Java设计模式学习】
  • 离线电脑 Visual Studio Community 2017:您的许可证已过期
  • PCL 基于FPFH特征描述子获取点云对应关系
  • Maven 项目管理工具
  • 大数据新视界 --大数据大厂之大数据与边缘计算的协同:实时分析的新前沿
  • 低光照图像增强:全局与局部上下文建模
  • 计算机网络中网络层发送报文时IP地址的变化,交换器的广播功能及相关设备功能