|
$ f, H5 A" O4 g( D7 j8 P 仔细读了N6的使用手册和例程手册后,了解了N6的使用过程。主要进行到GUI编程的时候,出现的困惑。想来先通过点灯的方式来了解外部存储器的使用。1 ?$ I! y7 f' V! @6 C7 j) B4 O 板载的外部存储器,如图1所示:
图1 阅读文档以后,基本是了解N6的使用流程的。比如boot模式,有两种启动模式,如图2所示:
图2' X+ R) A, E" G7 c t) y1 n2 C' B9 e0 V! i6 v% K Dev boot是在内部Ram中启动,Flash boot是bootrom 程序尝试从外部flash 启动,应用程序需要下载到外部的flash。, G% l1 S7 M- \8 G! u) g 了解到这个以后,主要参考例程中的FSBL_LRUN 和FSBL_XIP。工程项目可以是FSBL的,也可以是FSBL+APPLI的。这两个项目模板介绍了连接到外部存储器的使用。 读Readme markdown文档后,会发现整个的启动过程。主要以LRUN项目为学习目标,APPLI烧写到外部Flash, FSBL 还在SRAM中使用,可以debug。以点灯为了解目标。+ h H' t9 F( f8 i 在IDE中打开项目,分别编译FSBL和APPLI文件。使用# d4 P2 c3 Y$ o+ w7 e0 L 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所示: k- o5 Y$ T4 Q9 Y6 m' f
图34 P: p* m7 e5 y$ b8 H 这个过程主要是给bin文件加信息头(正确签名),毕竟要写入到外部存储器。看到debug文件夹里会有两个bin,一个是APPLI.bin,一个是APPLI-trusted.bin,这两文件都要通过Programmer烧入5 c1 |( P& L( G2 E5 n' f 到外部Flash中。 打开STM32CubeProgrammer,connect到板卡,设置外部存储器,如图4所示:* X3 _- Z" y9 Q7 p# ?1 J
图4& A2 |0 p# D9 z6 X5 a 下载设置如图5所示:
图5 将生成的appli.bin和appli-trust.bin分别下载到flash中,下载完成后,然后再IDE 中debug FSBL project,可以看到如预期所示,如图6所示:. ?+ p& P1 X4 t
图6 如果想上电就使用外部Flash启动,可以参考APPLI加签名的方式,也给FSBL加签名,也烧入外部Flash中,注意这两个项目的烧写地址不一样。将按键开关都拨到左边,重新上电,和预期一样。 |
合作伙伴方案 | 基于STM32N6 NE302紧凑型AI视觉节点
如何测量STM32N6的功耗
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
STM32N6课程学习心得
【STM32N6570-DK评测】3.CubeMX关于DCMIPP和CSI的BUG整理及摄像头使用
线下培训(深圳) | 基于STM32N6的边缘人工智能应用开发实训
《STM32N6视频课程》学习笔记+STM32N6 系统资源隔离: RIF对外设的配置和管理
《STM32N6视频课程》学习笔记+STM32N6系统资源隔离— RIF访问规则与非法访问控制
《STM32N6视频课程》学习笔记+STM32N6 系统资源隔离 Cortex M55 TrustZone
《STM32N6视频课程》学习笔记+STM32N6 资源隔离RIF简介(一)
微信公众号
手机版
是不是只要程序不大于FSBL的空间,就不用APP跳转的事?
<br /> <br />
嗯,我是这么理解的