当前位置: 首页 > news >正文

使用STM32CubeMX创建STM32N6的LOAD RUN工程 LAT1587

关键字:STM32CubeMX,Load&Run,LRUN,STM32N6

压缩包下载:LAT1587 使用STM32CubeMX创建STM32N6的LOAD RUN工程

1. 前言

在STM32N6的固件包STM32Cube_FW_N6_V1.1.1中包含了Template_FSBL_LRUN的项 目模版,但不是基于STM32CubeMX创建的,本文基于STM32N6-DK开发板,就如何基于MX 创建一个从NOR Flash启动的Load&Run项目,以及一些注意事项,帮助客户快速创建并理解其操作。

2. 操作步骤

1. 首先选择芯片,创建一个Secure工程。

2. 使能XSPIM模块,XSPIM可以实现XSPI外设模块对应引脚的IO映射,必须先使能XSPIM 模块后,才能使能XSPI外设。

3. 根据实际电路使能XSPI外设,选择对应的Port,这里配置的是XSPI2。

4. 根据NOR芯片手册,配置相关参数

5. 选择Middleware中的EXTMEM_MANAGER,对Memory进行配置,STM32N6-DK开发 板的NOR Flash为Macronix的MX66UW1G45G(1.8V 1G-BIT [X1/X8] DTR),支持 SFDP(MX66UW1G45G)模式,所以选择EXTMEM_NOR_SFDP驱动即可,如果使用的 NOR Flah不支持SFDP,也可以选择EXTMEM_USER,需要用户完成NOR Flash的相关驱 动程序。再选择实际的data line的数目。

6. 选择生成Boot代码,采用Load and Run的方式,即将NOR Flash中的APP代码先Load 到RAM中,再跳转到RAM中去Run。

LRUN Source 中的Source address offset 即 APP 代码在NOR Flash中存放的地址偏 移,设定0x00100000,即实际地址为XSPI2的映射基地址(0x70000000)+偏移地址 (0x00100000)= 0x70100000。Source code size 在此处不重要,随意设置个值即可,因 为实际要搬移的代码大小的值会在签名时填写到APP的header中。

LRUN destination 即代码搬移到的目标地址,也就是实际运行代码的地方,可以选择内部 SRAM,如果有外部RAM,也可以选择在外部RAM中运行。 上面说的是APP的地址偏移,Boot自身的偏移地址默认为0,即实际地址为XSPI2的映 射基地址0x70000000,也就是BootRom加载FSBL时,会从这个地址开始搬移代码。

7. 配置时钟,根据实际需求进行配置。

8. 配置对应XSPI的时钟,注意并不是所有情况都能配置到200MHz,需要根据实际硬件条件 (包括SDR/DTR模式、是否有DQS、以及NOR Flash芯片的最大速度等)及XSPI的供电 电压来选择合适的频率,详见其Datasheet。

9. 设置一个输出GPIO控制LED,并分配到APP,用于应用代码的测试。

10. 生成FSBL和APP代码。

11. 由于VDDIO3是PN[12 :0]的独立电源,因此其电压选择要和NOR Flash的电压范围一致, 在STM32N6-DK开发板上,供电电压为1.8V。

当电压为1.8V时,还需要通过设置OTP124[bit 15]及PWR_SVMCR3的VDDIO3VRSEL 来选择供电电压,即HSLV(High Speed Low Voltage)的配置。

OTP的设置可以通过STM32CubeProgrammer,也可以在代码中通过BSEC实现(参考 FW包Example中的BSEC例程),注意OTP(one-time programming)正如其名,只能操作 一次,一旦修改后就不能被再次修改,因此一定要根据实际的硬件情况去配置。

VDDIO3VRSEL可以通过HAL库提供的如下API进行设置,一定要根据实际的供电电压去 设置,否则会使IO工作在降级模式,甚至损坏MCU。 

12. 在第6步中我们提到过Source code size在CubeMX中的配置并不重要,因为APP image 的大小信息会加到其签名后的Header中,这就需要我们重定义BOOT_GetApplicationSize 这个弱函数。

APP的总大小包含APP本身和其Header大小,我们曾在CubeMX中配置过Header的 大小为0x400,因而此处HEADER_V2_3_SIZE定义为1024。而Header第108 Byte偏移处的 内容表示image的大小,因此HEADER_V2_3_IMG_SIZE_OFFSET被定义为108,各字段的详细 说明见UM3234。

13. 在生成的APP工程中添加一个简单的LED toggle的代码用于测试,然后即可分别编译FSBL 和APP工程。

14. 参考《LAT1491 STM32N6的FSBL基本流程介绍》中的步骤对生成的FSBL和APP的二进制 目标文件进行签名、下载、调试即可。

3. 总结

本文介绍了如何通过STM32CubeMX创建第一个基于STM32N6的Load&Run工程,涉 及NOR Flash 的驱动,XSPI的软硬件匹配的注意事项、以及如何获取到Header中image size 等技术问题,帮助用户快速理解代码内容,并为用户配置自己的工程板时提供参考。

意法半导体公司及其子公司 (“ST”)保留随时对 ST 产品和 / 或本文档进行变更的权利,恕不另行通知。买方在订货之前应获取关于 ST 产品 的最新信息。 ST 产品的销售依照订单确认时的相关 ST 销售条款。 买方自行负责对 ST 产品的选择和使用, ST 概不承担与应用协助或买方产品设计相关的任何责任。 ST 不对任何知识产权进行任何明示或默示的授权或许可。 转售的 ST 产品如有不同于此处提供的信息的规定,将导致 ST 针对该产品授予的任何保证失效。 ST 和 ST 徽标是 ST 的商标。若需 ST 商标的更多信息,请参考 www.st.com/trademarks。所有其他产品或服务名称均为其 各自所有者的财 产。 本文档是ST中国本地团队的技术性文章,旨在交流与分享,并期望借此给予客户产品应用上足够的帮助或提醒。若文中内容存有局限或与ST 官网资料不一致,请以实际应用验证结果和ST官网最新发布的内容为准。您拥有完全自主权是否采纳本文档(包括代码,电路图等)信息,我 们也不承担因使用或采纳本文档内容而导致的任何风险。 本文档中的信息取代本文档所有早期版本中提供的信息。 © 2020 STMicroelectronics - 保留所有权利

http://www.dtcms.com/a/570719.html

相关文章:

  • 怡梦姗网站做么青岛响应式网站
  • 南宁网站制作策划深圳网站建设 合作品牌
  • 汇川AM系列基础使用
  • 智能导购AI选型
  • 广州做响应式网站多少钱21年没封直接可以进的
  • 做的网站需要买什么服务器邯郸网址场
  • Linux: 磁盘:关键文件修改的过程
  • 做外贸做几个网站合适网站建设数据库放哪
  • 怎样做网站3天赚100万投放广告网站
  • 邯郸做网站推广费用做内贸哪个网站好
  • 免费做的英文网站网站开发职业岗位
  • 网站建设运营策划方案网页设计自学要多久
  • 宁波 住房和建设局网站个人在线网站推广
  • wordpress弹出seo投放营销
  • Harmony鸿蒙开发0基础入门到精通Day13--ArkScript篇
  • 设计非常漂亮的网站什么语言网站比较安全
  • 基于 Docker 容器技术构建可移植嵌入式 Linux 交叉编译环境的实践报告
  • 建网站如何备案廉江市住房和城乡建设局网站
  • 哈尔滨网站建设唯辛ls15227南京百度网站推广
  • 网站优化的主要任务泰兴企业网站建设
  • 基于AI大模型智能硬件--小智AI项目RK3588开发板部署
  • 万江东莞网站建设住建部和城乡建设官网
  • 专业的营销网站建设公司wordpress收费播放插件
  • 在线推广网站的方法win8风格网站 源码
  • dede 网站源码百科网wordpress
  • C++类成员变量的存储逻辑与析构函数的资源管理
  • 中国摄影在线网站seo销售话术开场白
  • 网站建设及数据分析公众号做电影网站赚钱
  • 阿里巴巴外贸网站论坛cms建站方案
  • 浙江建设职业技术学院尔雅网站易捷网站内容管理系统漏洞