代码如何下载到外部QFlash,然后再外部SDRAM中运行
目前选的一个MCU片内flash为512K sram为200K。这个有点小。目前都是代码下载到片内flash,然后再片内sram运行的。我的设备有个外部SPI接口的QFlash和SDRAM,现在我想把代码下载到外部Flash中去,然后再外部SDRAM中运行。请问这个怎么操作?什么单片机,如果支持QSPI的单片机,并且与SPI的硬件连接方式为QSPI的话,可以通过分散加载,把程序直接下载在外部的Flash,并通过外部Flash启动。。。
下载SRAM运行方式也是一样的,前提是单片机支持.... wofei1314 发表于 2018-1-10 09:52
什么单片机,如果支持QSPI的单片机,并且与SPI的硬件连接方式为QSPI的话,可以通过分散加载,把程序直接下 ...
LPC单片机,支持程序下载到Qflash。这个可以实现,现在问题是,可不可以直接在QFLASH里运行,或者如果想搬到外部SDRAM中去运行的话,怎么实现? paulkiyt 发表于 2018-1-10 11:18
LPC单片机,支持程序下载到Qflash。这个可以实现,现在问题是,可不可以直接在QFLASH里运行,或者如果想 ...
你走错地方了0...这里是STM32社区.....
STM32可以实在在外部Flash或者RAM运行! 本帖最后由 toofree 于 2018-1-10 14:57 编辑
paulkiyt 发表于 2018-1-10 11:18
LPC单片机,支持程序下载到Qflash。这个可以实现,现在问题是,可不可以直接在QFLASH里运行,或者如果想 ...
LPC4357是可以直接在QSPI Flash运行的,这个我是试过的,不知道你用的是什么型号?
如果你非要在QFlash存程序,而最终要搬到外部SDRAM中的话,那么你的引导程序必须放在其它地方了,比如内部Flash中。引导程序完成的功能就是把配置QFlash和SDRAM,以及其它必要的时钟配置之类的,配置完成后,程序把QFlash中的内容搬移到SDRAM,然后将程序运行指针指向SDRAM中相应程序地址。
编译的时候,也需要程序基地址指向SDRAM空间。在Keil下的烧写QFlash,得看有没有相应的烧写算法,如果没有,需要自己编辑修改一个。IAR环境我不熟悉。
主要流程就是这样的,具体操作起来,可能得去多尝试。我也没这么干过,因为没平台,更是没需求。
参考以下我的帖子吧,希望对你有所帮助
http://forum.armfly.com/forum.php?mod=viewthread&tid=82274&extra=page%3D1 去安福莱社区的STM32开发环境板块,有一篇我的帖子,希望对你有所帮助
这里发不了连接,你可以去安福莱社区的STM32开发环境板块,我有几篇帖子,跟你的需求有关,希望能帮到你 1、正常方式下载到Flash
2、启动后,读取Flash到SDRAM,然后把向量调到SDRAM中去 toofree 发表于 2018-1-10 14:55
LPC4357是可以直接在QSPI Flash运行的,这个我是试过的,不知道你用的是什么型号?
如果你非要在QFlash存 ...
你是MDK的开发环境吗?我在MDK下面找到相应的外部flash烧写算法。请问scf文件和工程选项哪些地方怎么修改呢?
另外我加载后报一个错误:
.\LPC5460x_MT25QL128.FLM(1): error: L6226E: Missing base address for region \177ELF\001\001\001.
.\LPC5460x_MT25QL128.FLM(1): error: L6228E: Expected '{', found ''.
.\LPC5460x_MT25QL128.FLM: Error: L6372E: Image needs at least one load region.
页:
[1]
2