• 资料介绍
  • 在线预览
  • 相关推荐
申请入驻 产业图谱

不同编译器利用X-CUBE-DISPLAY API生成外部Flash Loader的方法

2025/03/22
590
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

不同编译器利用X-CUBE-DISPLAY API生成外部Flash Loader的方法

1.33 MB

引言

在嵌入式应用系统中,越来越多的应用需要扩展外部 Flash 来满足存储需求,例如GUI 的应用,需要将视频、图片、字体等素材存储在外部 Flash。对于 SPI、FMC、FSMC、QSPI、OCTOSPI、SDMMC 等接口存储器,需要一个 Flash Loader,把资源下载到外部 Flash。在 STM32CubeProgrammer 安装目录的“bin/ExternalLoader”目录下,ST 提供了官方开发板对应的 Flash Loader,也就是 stldr 文件。但官方提供的 FlashLoader 数量有限,不能完全满足用户需求,需要用户根据自己的 MCU 型号、Flash 类型,开发自己的 Flash Loader。

ST 的 X-Cube-DISPLAY 是 STM32Cube 扩展包,3.0 版本提供了 SPI/QSPI 接口的MX25L6433F 的 Flash Loader 的源码工程,用户可以基于此进行自己 Flash Loader 的开发。本文档就是根据 X-CUBE-DISPLAY 3.0 所提供的 Flash Loader 工程,以NUCLEO-STM32G474+GFX01M2 开发板为例,介绍了 STM32CubeIDE、KEIL、IAR等不同编译器利用 X-CUBE-DISPLAY 所提供的 API 来生成外部 Flash Loader 的方法。

Flash Loader 的开发过程

参考 ST 在 X-CUBE-DISPLAY 3.0.0 所提供的 Flash Loader 工程,外部 Flash Loader的开发过程主要包括以下 3 步。

(1)更新 Dev_Inf.c 中的存储器芯片信息。

(2)重写 Loader_Src.c 中的相关接口函数。

(3)更改输出文件名。

项目配置好后编译整个 Flash Loader 项目,将生成一个 ELF 文件,文件的扩展名取决于所使用的编译器,Keil 的为.axf,EWARM 的为.out,STM32CubeIDE 的为.elf,通过编译后处理指令更改为 stldr 扩展名的文件,将该 stldr 文件复制到“bin/ExternalLoader”目录下就可以被 STM32CubeProgrammer 使用了。

利用 X-Cube-Display API 生成 Flash Loader 的方法

这里参考 X-CUBE-DISPLAY3.0.0ProjectsNUCLEO-WB55RGApplications 目录下的 GFX01M2_FlashLoader 工程的方法,来移植一个 NUCLEO-G474+GFX01M2 的Flash Loader,这是一个 SPI 接口的 NOR FLASH,芯片型号 MX25L6433F。

小结

本文结合 X-Cube-DISPLAY 3.0 软件包中的示例,介绍了利用 X-CUBE-DISPLAY API进行 Flash Loader 的方法,如果用户选择的 Flash 是 MX25L6433F 这款 Flash,那么可以参照此方法,来快速开发自己的 Flash Loader,如果所选的 Flash 不是MX25L6433F,也可以参照此方法,重新编写对应存储器的驱动来开发对应的 FlashLoader。

在线预览

相关推荐

意法半导体拥有49,000名半导体技术的创造者和创新者,掌握半导体供应链和先进的制造设备。作为一 家半导体垂直整合制造商(IDM),意法半导体与二十多万家客户、成千上万名合作伙伴一起研发产品和 解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需 求。意法半导体的技术让人们的出行更智能,让电源和能源管理更高效,让云连接的自主化设备应用更广 泛。我们正按计划在所有直接和间接排放(包括范围1和范围2)、产品运输、商务旅行以及员工通勤排 放(重点关注的范围3)方面实现碳中和,并在2027年底前实现100%使用可再生电力的目标。 详情请浏 览意法半导体公司网站:www.st.com.cn