开发流程 Step-by-Step
本文将以实现 STM32N647 开发板板载的两个 LED 交替闪烁的功能为例,介绍使用 STM32CubeMX、STM32CubeIDE 和 STM32CubeProgrammer 完成 STM32N647 开发板基础应用开发的流程。
Step 1. 使用 STM32CubeMX 生成初始化工程
Step 1.1. 选择 MCU 型号
打开 STM32CubeMX 后,依次点击工具栏中的 "File" -> "New Project ..." 或通过快捷键 Ctrl + N
来新建一个 STM32CubeMX 工程,软件会打开一个选择 MCU 型号的界面
在界面左侧添加 STM32N647X0H3Q
的信息,然后在界面右侧找到并选中 STM32N647X0H3Q
,然后点击右上角的 Start Project
因为 STM32N6 系列 MCU 具有 TrustZone 功能,因此需要配置如何新建工程
本文介绍的基础开发流程不涉及 TrustZone 功能,因此选择新建的工程为 Secrue domain only
Step 1.2. 配置工程信息
进入配置界面后,打开 Project Manager
配置工程的基础信息
- Project
- Code Generator
- Project Settings
- Mcu and Firmware Package
Project Structure
:选择需要的工程结构,这里仅勾选 Appli
FSBL
:FSBL(First Stage Boot Loader)工程主要用于开发 FSBL,FSBL 是 STM32N6 结束硬件复位后自动从外部 Flash 加载到内部 SRAM 并运行的第一段用户程序,主要完成相应的初始化工作,并启动 Appli 程序。
FSBL 固件需要使用 STM32_SigningTool_CLI 工具添加头部签名后,烧录到 STM32N6 外部 Flash 的 0 偏移地址处,才能由 STM32N6 正常启动。
使用 STM32_SigningTool_CLI 工具为 FSBL 固件添加头部签名的命令如下:
$STM32_PRG_PATH/STM32_SigningTool_CLI -bin fsbl.bin -nk -of 0x80000000 -t fsbl -o fsbl-trusted.bin -hv 2.3 -dump fsbl-trusted.bin
Appli
:Appli 工程主要用于开发用户的应用程序,应用程序主要用于实现用户功能。
Appli 固件需要由 FSBL 启动,因此 Appli 固件需要根据 FSBL 指定的 STM32N6 外部 Flash 偏移地址进行开发和烧录,才能被 FSBL 正常启动。
ExtMemLoader
:Appli 工程主要用于开发 External loader,External loader 主要用于 STM32CubeProgrammer、STM32CubeIDE 等工具访问、操作 MCU 外部 Flash。
External loader 需拷贝到特定的路径下,才能被 STM32CubeProgrammer、STM32CubeIDE 等工具正确调用,具体路径如下:
-
STM32CubeProgrammer:
<STM32CubeProgrammer 安装路径>/bin/ExternalLoader
-
STM32CubeIDE:
<STM32CubeIDE 安装路径>/plugins/com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.xxx/tools/bin/ExternalLoader
Toolchain / IDE
:选择所使用的工具链或 IDE,这里选择 STM32CubeIDE,并取消勾选Generate Under Root,因为后续需要使用 STM32CubeIDE 打开工程。
Use Default Firmware Location
:选择是否使用默认的 STM32Cube MCU 软件包路径,可根据实际需求选择。
Firmware Relative Path
:选择自定义 STM32Cube MCU 软件包的路径。
- STM32Cube MCU packages and embedded software packs
选择工程使用 STM32Cube MCU 软件包等库文件的方式,可根据实际需求选择。