STM32 从外部闪存引导,QUADSPI 引导加载程序

Posted

技术标签:

【中文标题】STM32 从外部闪存引导,QUADSPI 引导加载程序【英文标题】:STM32 Boot from external flash, bootloader for QUADSPI 【发布时间】:2021-06-19 19:02:41 【问题描述】:

在使用 QUADSPI 从外部闪存 (NOR FLASH) 启动时,我需要一些帮助,问题是我的内部闪存非常少,代码很大,因此需要一个外部闪存,我可以在其中存储我的代码并仅从那里启动.当我尝试直接从外部闪存启动时,我发现 quadspi 尚未初始化,因此没有与外部闪存通信。所以我在想的是在内部闪存中创建一个引导加载程序,我只初始化 quadspi,然后跳转到我的代码执行开始的外部闪存起始地址。请帮助我。

【问题讨论】:

请帮我解决这个问题,因为这里真的需要一些支持 嗨,因为我做了一些搜索,我找到了 ST 为 Xip 提供的参考代码,该代码已就地执行。这与我的要求相似。但是当我尝试该代码时,它只执行一次,然后我需要重新编程以再次执行。我对应用程序代码进行了一些更改,默认情况下,ST 在每 200 毫秒 LED 闪烁 20 次后重置控制器,我将其更改为在生命周期内每秒切换一次 LED。但它只执行一次,当我重置它时,它不会再次工作,除非我重新编程它。对此有何建议? 【参考方案1】:

尝试使用引导加载程序,然后跳转到外部闪存。

将您的应用代码基地址设置为 ext flash 基地址。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案2】:

您需要从内部闪存启动。初始化QSPI接口,跳转到外部flash中的代码。没有其他办法。

【讨论】:

以上是关于STM32 从外部闪存引导,QUADSPI 引导加载程序的主要内容,如果未能解决你的问题,请参考以下文章

STM32F030F4P6 仅在从闪存启动时运行中断处理程序。从引导加载程序启动时重置

STM32 链接器脚本仅用于来自 FLASH 的启动脚本,其他一切来自 RAM

如何让STM32F429NI中的bootloader跳转到外部Nor Flash

STM32 通过引导加载程序闪烁失败 (UART1)

新的微芯片MCU增加了来自外部闪存的安全引导保护

如何在 STM32 微控制器上的两个程序之间共享单段闪存