大家好,在资源上只有STM32H750VB芯片和一块QSPI的片外Flash,想做bootloader来引导升级或者跳转至APP,我的设计是将boot放到片内128kb的flash内,然后App放到片外flash;预期是在运行app的同时还能对这块片外Flash进行读写操作来保存App运行过程中需要保存的信息数据。 我试过使用QSPI的MemoryMap模式,直接使用内存映射从片内跳转至片外App所在的位置去运行App。但是这样的问题是,QSPI被一直占用着,无法再对这块片外Flash的任何位置进行读写,就达不到我的预期目标。 所以我又想着,既然QSPI被占用无法再操作片外Flash,那我将片外Flash上的App程序直接copy到片内RAM上去运行App,然后释放QSPI,不就能达到目的了么。但是目前我还没有试验成功…… 所以想求助各位大佬大神,提供思路或者解决的办法,谢谢! |
如果想把APP放到RAM上,需要参考ST的RAM Code的project。
需要了解程序运行的Load Region和Execution Region的概念。
只是把Code从Flash拷贝到RAM是不可以运行的,除非这段代码是位置无关代码。但位置无关代码运行前,需要自己配置R9 register(作为Static Base)。
最好,还是参考ST现有的RAM工程,来修改。或者尽量放在片内Flash。
评分
查看全部评分