
! M2 Q. L2 F" s) [$ B 仔细读了N6的使用手册和例程手册后,了解了N6的使用过程。主要进行到GUI编程的时候,出现的困惑。想来先通过点灯的方式来了解外部存储器的使用。 板载的外部存储器,如图1所示: ![]() 图1& D% e: Q* Y( X+ R* p 阅读文档以后,基本是了解N6的使用流程的。比如boot模式,有两种启动模式,如图2所示: `" Z/ I6 {& ` ![]() 图2" {6 ?0 @5 |/ k( a Dev boot是在内部Ram中启动,Flash boot是bootrom 程序尝试从外部flash 启动,应用程序需要下载到外部的flash。 了解到这个以后,主要参考例程中的FSBL_LRUN 和FSBL_XIP。工程项目可以是FSBL的,也可以是FSBL+APPLI的。这两个项目模板介绍了连接到外部存储器的使用。- F) W& N0 f% E: ~9 b+ v 读Readme markdown文档后,会发现整个的启动过程。主要以LRUN项目为学习目标,APPLI烧写到外部Flash, FSBL 还在SRAM中使用,可以debug。以点灯为了解目标。8 g/ d8 H5 U/ d4 b$ K+ y 在IDE中打开项目,分别编译FSBL和APPLI文件。使用! F6 `" u' @8 K3 [: _ { STM32_SigningTool_CLI.exe -bin APPLI.bin -nk -of 0x80000000 -t fsbl -o FSBL-trusted.bin -hv 2.3 -dump APPLI-trusted.bin 在cmd 命令窗口中使用这条指令,需要注意.bin文件的路径也需要加入到命令中。编译成功后如图3所示:- ~2 e: E' ^) M# R0 B: Z" E8 C8 I( S ![]() 图38 W( _/ j7 J4 v; c, U) y 这个过程主要是给bin文件加信息头(正确签名),毕竟要写入到外部存储器。看到debug文件夹里会有两个bin,一个是APPLI.bin,一个是APPLI-trusted.bin,这两文件都要通过Programmer烧入* y+ c- b9 c8 } } 到外部Flash中。0 {3 v8 z/ u, }8 l) S* E4 ]) E4 M 打开STM32CubeProgrammer,connect到板卡,设置外部存储器,如图4所示: ![]() 图4 下载设置如图5所示:+ _) E3 q/ ?& O ![]() 图5 将生成的appli.bin和appli-trust.bin分别下载到flash中,下载完成后,然后再IDE 中debug FSBL project,可以看到如预期所示,如图6所示:, ~" r, r+ ^ F2 I* Y ![]() 图6* ^! ]/ X; H1 C9 g7 p; j q3 e( t 如果想上电就使用外部Flash启动,可以参考APPLI加签名的方式,也给FSBL加签名,也烧入外部Flash中,注意这两个项目的烧写地址不一样。将按键开关都拨到左边,重新上电,和预期一样。: w( c9 ~( Z/ B |
STM32N6坛友评测出炉,来围观(第二波预约继续)
Keil下的STM32N6之RAM运行工程配置说明
【STM32N6570-DK评测】8.初试AI
【DIY-STM32N6】4.LCD驱动与TouchGFX
相机ISP大揭秘:STM32N6的全新相机系统优势与调优工具(文末有礼)
【DIY-STM32N6】3.超级一键下载
【DIY-STM32N6】2.底板设计与点亮LED
【STM32N6570-DK评测】3.CubeMX关于DCMIPP和CSI的BUG整理及摄像头使用
【STM32N6570-DK评测】6.驱动摄像头
【STM32N6570-DK评测】2.最简点灯
是不是只要程序不大于FSBL的空间,就不用APP跳转的事?
嗯,我是这么理解的