目前使用的平台是STM32H750,内部flash比较小,只有128KByte,使用QSPI连接外部flash,在内部flash中烧写Boot,初始化QSPI,工作在内存映射模式,跳转到外部flash的程序中。这里有几个疑问!
下图是外部flash的划分,其中分为4个部分,运行的代码是保存在“Code area”中,在这个程序执行的过程中,我需要对“Param area”区域中的部分参数进行读、擦、写;以及在固件更新的过程中,从以太网接收升级的固件,放到“FW buffer”区域中缓存,这期间就涉及到flash的擦、写。
TIM截图20190130093355.jpg (28.69 KB, 下载次数: 0)
下载附件
2019-1-30 09:34 上传
从我目前的了解来看,一旦“Code area”中的指令开始运行,这是QSPI已经工作在内存映射模式,这个模式下仅可以进行flash读操作(由CPU自动执行)。在上述举例的2种情况均涉及到擦、写,这2中操作需要在间接模式(即indrect mode)下进行,那就需要退出内存映射模式,而一旦退出,“Code area”中的指令将无法继续执行。
我在CubeMX下找到STM32H7系列的SDK,里面的例程也没有看到这种操作。不知道有哪位做过类似的操作,具体应该如何操作?
对 这种情况下 我就不考虑把他当存储器了
一周热门 更多>