浅析STM32N6的三种启动方式

注:本文大部分内容参考ST中文社区LAT1491, 如果侵权,请联系作者,及时删除。

关键词:STM32N6、FSBL、签名、Bootmode、启动模式

参考链接:

  1. RM0486 STM32N647/657xx Arm®-based 32-bit MCUs
  2. DS14791 Arm® Cortex®-M55, ST Neural-ART Accelerator, H264 encoder, Neo-Chrom 2.5D GPU, 4.2 Mbyte-contiguous SRAM
  3. 【应用笔记】LAT1491 STM32N6的FSBL基本流程介绍

硬件:STM32N6750-DK CR1

文章目录


前言

先来简单介绍一下STM32N6,

STM32N6基于运行频率达800 MHz的Arm® Cortex®-M55处理器,是首款引入Arm Helium向量处理技术的CPU,为标准CPU增添DSP处理能力。

STM32N6是首款内嵌意法半导体自主研发的神经处理单元 (NPU)------ST Neural-ART accelerator™的STM32 MCU,专为节能型边缘AI应用而设计。其时钟频率高达1 GHz,计算性能可达600 GOPS,可为计算机视觉和音频应用提供实时神经网络推理能力。

配备MIPI CSI-2接口和图像信号处理 (ISP) 的专用计算机视觉处理管线,确保兼容多种类型的摄像头。STM32N6还具有H264硬件编码器和NeoChrom™图形加速器,适用于功能丰富的产品开发。

它提供4.2 MB的连续嵌入式RAM,是神经网络或图形应用的理想选择,并辅以高速外部存储器接口(hexa-SPI、OCTOSPI、FMC)。


一、N6的三种启动模式

STM32N6有三种启动模式,分别是开发者模式启动、FLASH模式启动、串行启动。

FLASH启动 :如果选择 Flash 启动,则系统将从外部 Flash 加载程序固件。Flash 源选择将通过BOOTROM_CONFIG2 - OTP_WORD11[8:5] = boot_source(4 位)完成。可选择的FLASH类型有:

  • XSPI serial NOR (in SPI mode, single)
  • XSPI HyperFlash™ (8-bit)
  • e.MMC™ SDMMC1 or e.MMC™ SDMMC2 (up to JEDEC v5.1)
  • SD-Card SDMMC1 (up to SD standard v6.0)

串行模式启动 :如果选择串行启动,则系统则会从串行接口中加载程序固件。可以选择的类型有:USB启动、UART启动

开发者模式启动 :如果选择了Boot 1为1, 则处于开发者模式状态。此模式仅在MCU处于开发阶段可用。

这种模式下,上电后 BootROM 程序尝试从内部 Ram 中启动。一般用于开发调试阶段,方便开发者在内部 SRAM 中对程序进行调试,可快速验证代码逻辑和功能,减少对外部 Flash 的擦写次数,延长其使用寿命。

开发者模式MCU断电或者复位后,程序会丢失。

接下来,以STM32N6570-DK板为例,看一下如何选择这三种启动模式

Flash boot (Boot1 = 0, Boot0 = 0)意味着上电后,BootROM 程序(固化在片内ROM 的一小段启动程序)会尝试从外部Flash 启动,应用程序需要下载到外部Flash,如果没有应用则无法启动。Dev boot 意味着上电后,BootROM 程序尝试从内部Ram 中启动。

二、FLASH模式启动流程

需要对FSBL签名、APP签名,然后下载到N6开发板中。

FALSH模式可以从三种模式下启动,分别是FSBL、FSBL_Load&Run、FSBL_XIP方式。三种方式的区别可以看下面的详细解释。

2.1 FSBL

FSBL (First Stage Boot Loader):一级Boot Loader。
在上电后,先执行片内ROM区域的BootROM,然后根据Boot选项和地址,执行相应地址的FSBL。

参考下图实例为外部Flash的启动流程。

如上图,系统启动流程如下:

  1. BootROM启动后,会验证FSBL的头,如上图深黄色部分1024Bytes的Header信息,可以使用ST提供的脚本对FSBL进行签名,FSBL程序必须完成签名,不然无法正常启动。验证成功后,BootROM将FSBL程序搬运至内部SRAM2:0x34180000的位置,然后PC指针跳转过去开始执行FSBL。
  2. FSBL开始执行。

2.1 FSBL_Load&Run

APP的开发在内部的SRAM中调试完成,开发完成后通过External loader下载到外部Flash。

系统启动流程如下:

  1. BootROM先启动,然后校验,搬运FSBL,并跳转到FSBL。
  2. FSBL开始执行,然后拷贝Appli的完整内容到内部SRAM,包括data和code。然后跳转到APP代码进行执行。
  3. APP代码开始执行。

2.2 FSBL_XIP

系统启动流程如下:

  1. BootROM开始执行,校验完FSBL后将其搬运到SRAM中。
  2. FSBL开始执行,将外部Flash配置为XIP模式,FSBL完成后,将PC跳转至外部Flash中App的第一条指令。
  3. APP开始执行。

三、开发者模式

顾名思义,该模式可用于快速开发调试程序。


总结

本文介绍了N6的三种启动模式,并重点介绍了FLASH模式。有什么问题,欢迎与我交流。

为STM32N6点赞

相关推荐
lzc8810125 个月前
[Codesys]常用功能块应用分享-BMOV功能块功能介绍及其使用实例说明
st·codesys·汇川plc·am522·inoproshop
WX_LW2 年前
codesys 6轴机器人正解程序
st
WX_LW2 年前
codesys 控制轴组程序
st