|
接着昨天的继续 一、外部 Flash Programming 1、Programming 过程(STLINK) ①在主板断电状态下,将两个启动开关均向右拨至“开发模式” ②连接 USB-C to USB-C 线 ③打开 STM32CubeProgrammer并使用下面 STLINK 设置连接: Port: SWD Freq: 8000 kHz Mode: Hot plug Access port: 1 Reset mode: Software reset
④在“External loaders” 选项卡中选择MX66UW1G45G_STM32N6570-DK External loader
⑤在“Erasing & programming”选项卡中,浏览至 binary files 并点击“Start Programming”. 外部闪存编程可能需要数分钟。
2、Programming 过程(UART) ①串行启动 : BOO1=L, BOOT0=H ②板子上电 ③选择UART连接 ④刷新,选择COM口 ⑤连接 ⑥点击”+”Open File ⑦选择tsv文件 ⑧Open ⑨检查文件 ⑩选择bin文件路径然后下载
3、Programming 过程(USB) ①串行启动: BOO1=L, BOOT0=H ②USB 启动端口连接PC ③Programmer选择USB 连接 ④板子上电 ⑤刷新 ⑥连接 ⑦点击”+”Open File ⑧选择tsv文件 ⑨Open ⑩检查文件,并选择bin文件路径,然后下载
二、OTP Programming 1、设置 OTP 保险丝 ①OTP 保险丝 只能在dev_boot 模式下设置 ②用来设置 OTP 保险丝的例程代码可以在FW v1.2.0 包中找到 工程路径: Projects/STM32N6570-DK/Examples/BSEC/BSEC_OTP_Config 在main.h 文件中设置 BSEC_FUSE_ADDRESS 与 BSEC_FUSE_MASK 执行工程 OTP124 相关常量包含在 main.h 文件中 注:当 VDDIOx 在 3V3 范围时,设置HSLV_VDDIOx 和 VDDIOxVRSEL 位, 会损坏芯片
2、STM32N6570-Nucleo 板 OTP 保险丝设置 ①STM32N6570-Nucleo板使用1片外部存储器,工作在1.8V: 一片 NOR SFDP Flash 连接在 XSPIM_P2 (8位接口端口) Macronix MX25UM51245GXDI00 ②IO电压电平设定为1.8V,需设置一次性可编程(OTP)位,并提供相关VDDIOx I/O电压范围选择的详细信息 若VDDIO供电电压低于2.5V,必须熔接OTP 124的HSLV_VDDIOx位。 XSPIM_P2(由VDDIO3供电):设置OTP124位15(VDDIO3_HSLV)为1。 PWR_SVMCR3寄存器中的VDDIOxVRSEL必须与OTP124的HSLV_VDDIOx位相适应。 XSPIM_P2(由VDDIO3供电):设置VDDIO3VRSEL @ PWR_SVMCR3 为 1; 该配置也可通过HAL驱动程序 API HAL_PWREx_ConfigVddIORange函数实现。 3、STM32CubeProgrammer ST-LINK 配置 ①ST-LINK 配置 Port = SWD Frequency = 8MHz up to 24MHz Mode = Hot plug Access port = 1
注:如有需要更新 ST-LINK 固件 设置BOOT1 = 1,使能DEV_BOOT 使用USB-C 线(CN6) 连接STM32N6570-DK 与PC 点击 Connect 按钮建立 SWD连接 4、STM32CubeProgrammer 写OTP 字 ①选择 OTP OTP 字内容和状态会自动读取并显示 必要时,请点击“Read”按钮刷新内容。
②下滑找到HCONF1 OTP124写入新字值(双击启用编辑) 示例设置HSLV_VDDIO3 bit15 = 1 ③按 Enter 键, 新值会闪烁三次 ④点击 Apply 按钮
⑤点击确认消息中的“OK”按钮后当一次性编程成功完成时,检查并点击OK, ⑥再回读一次,检查一次性编程是否成功
三、FSBL + XiP 工程开发 1、STM32N6例程简介 ①FSBL (*) (Basic Load & Run mode) BootROM从外部闪存中加载FSBL。FSBL包含的示例程序(占示例总数的 ~90%)。 ②FSBL + Load & Run application BootROM从外部闪存中加载FSBL。FSBL自身会加载存储在外部闪存中的第2个二进制文件(应用),将其复制到内部SRAM中,然后跳转执行。若干例程适用。 ③FSBL + XiP BootROM从外部闪存中加载FSBL。并且外部闪存中还存储着第2个二进制文件(应用)。FSBL将外部存储器配置为XiP模式,随后跳转至外部存储器执行(应用)示例程序。若干例程适用。 ④FSBL + Load & Run secure and non-secure applications BootROM从外部闪存中加载FSBL。FSBL自身会从外部闪存中加载两个二进制文件(一个用于安全应用程序,另一个用于非安全应用程序),将其复制到内部SRAM中,然后跳转至安全映像进行执行。若干示例适用。 2、FSBL 工程
3、FSBL+XiP 工程结构以及工程
四、使用STM32CubeIDE 开发过程示例 1、FSBL_XIP 示例 实现目标: 编译 Template_FSBL_XIP工程 添加Header (Sign the FSBL & App),烧录到板(DK with MX66UW1G45G flash) XIP mode 启动,检查功能 Debug XIP 应用 (断点设置,执行等) ①使用Windows资源管理器, 导航到:(文件路径) DK:\STM32Cube_FW_N6_V1.2.0\Projects\STM32N6570DK\Templates\Template_FSBL_XIP\STM32CubeIDE 然后双击 .project ②导入完成后,点击“OK”。查看工程浏览器中,展开Template_FSBL_XIP 及其子工程 ③先编译 Template_XIP_FSBL 工程,再编译 Template_XIP_AppS 工程查看控制台中的编译结果应如下所示:
④为二进制映像文件添加头 完成编译后,会在下面两个目录中分别生成了两个二进制文件:: • \Template_FSBL_XIP\STM32CubeIDE\Boot\Debug\Template_XIP_FSBL.bin • \Template_FSBL_XIP\STM32CubeIDE\AppS\Debug\Template_XIP_AppS.bin 在 Boot\Debug 文件夹中单击鼠标右键并选择打开PowerShell ⑤Template_XIP_FSBL.bin 添加信任头 使用 STM32CubeProgrammer V2.19.0或以上版本 \bin\STM32_SigningTool_CLI.exe 添加信任头,并运行下面命令(安装修改路径): Powershell 命令:
nk -of 0x80000000 -t fsbl -o FSBL-trusted.bin -hv 2.3 -dump FSBL-trusted.bin 注意: 在PowerShell中执行位域其它位置的命令或可执行文件时需要& “C:\Windows\notepad.exe”使用Powershell时也可动态添加path,$env:PATH = env:PATH+";C:\YourPath\STM32CubeProgrammer\bin"
⑥Template_XIP_AppS.bin添加信任头 使用 STM32CubeProgrammer V2.19.0 或以上版本 \bin\STM32_SigningTool_CLI.exe 添加信任头,并运行下面命令(安装修改路径): • 对于 Cut 2.0 芯片:
⑦外部 Flash MX66UW1G45G 擦除
⑧烧录 Template_XIP_AppS-trusted文件
⑨运行 FSBL
⑩烧录Template_XIP_FSBL-trusted文件
⑪独立执行Template_XIP_FSBL 工程 设置 BOOT1 = L,使能 Flash 启动 按 NRST键 (黑色按钮) 复位,会执行: XIP_FSBL 由BootROM从Flash 复制到 SRAM2 XIP_AppS 直接在外部 Flash上执行. STM32N6570-DK 开发板上的绿色 LED灯会反复开关(闪烁)。 ⑫使用脚本自动化签名与烧录XIP_ FSBL
⑬使用脚本自动化签名与烧录XIP_AppS
|
《STM32N6视频课程》学习笔记+STM32N6启动与调试技巧(一)
《STM32N6视频课程》学习笔记+STM32N6硬件系统设计及注意事项
STM32N6的开发日记(3):如何利用CubeMX快速部署我们的神经网络模型
STM32N6的开发日记(2):配置、签名、烧录,配置外部Flash实现LED灯闪烁
STM32N6的开发日记(1):上手难度拉满的N6有哪些不同?
【经验分享】LAT1491 STM32N6 的 FSBL 基本流程介绍
【经验分享】LAT1494 STM32N6 平台如何使用 MCO2 输出 Clock
STM32N6 PSRAM 代码调试实操:Attach模式实现外部存储器调试
实战经验 | STM32N6x勘误手册解读:开发避坑核心指南
STM32 开发者指南:ST.com 全新 MCU 产品阵容视觉布局深度解析
微信公众号
手机版