【发布时间】:2020-12-08 21:00:10
【问题描述】:
在STM32F7中,代码从内部闪存运行(默认),我们可以从内部闪存读取/写入数据。
我的问题是:我想使用外部QSPI 闪存来执行我的代码(内存映射模式)。
同样在这种模式下,当代码在QSPI 闪存中执行时,我想使用相同的QSPI 闪存来存储我的数据(即保存一些设置)。但这是不可能的,因为 ST 在其参考文档 (AN4760) 中声明:
In Memory-mapped mode the QUADSPI allows the access to the external
memory for read operation through the memory mapped address region
(from 0x9000 0000 to 0x9FFF FFFF) and allows the external memory to
be seen just like an internal memory.
在不退出内存映射模式的情况下,我的问题是否有任何解决方案(将数据写入QSPI flash)?
是否可以将QSPI 闪存分成两部分?一个用于内存映射模式,另一个用于读取/写入数据。
注意:我不想从外部闪存跳转到内部闪存写入数据,然后再次跳转到外部闪存执行代码。
任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
我曾经有同样的问题。据我所知,这是不可能的。但是,跳转到另一个内存(例如 RAM)以执行编程序列有什么问题?实现起来不是很复杂,效率很高。
-
@GuillaumePetitjean,你的意思是外部 SDRAM 吗?
-
不,内部 RAM。将一些函数定位在 RAM 中是一种常见的做法(例如加快计算速度或处理 Flash 编程问题)。