你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

代码如何下载到外部QFlash,然后再外部SDRAM中运行

[复制链接]
paulkiyt 提问时间:2018-1-10 09:38 /
目前选的一个MCU  片内flash为512K sram为200K。这个有点小。目前都是代码下载到片内flash,然后再片内sram运行的。我的设备有个外部SPI接口的QFlash和SDRAM,现在我想把代码下载到外部Flash中去,然后再外部SDRAM中运行。请问这个怎么操作?
收藏 评论15 发布时间:2018-1-10 09:38

举报

15个回答
wofei1314 回答时间:2018-1-10 09:52:41
什么单片机,如果支持QSPI的单片机,并且与SPI的硬件连接方式为QSPI的话,可以通过分散加载,把程序直接下载在外部的Flash,并通过外部Flash启动。。。


下载SRAM运行方式也是一样的,前提是单片机支持....

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

paulkiyt 回答时间:2018-1-10 11:18:20
wofei1314 发表于 2018-1-10 09:52
什么单片机,如果支持QSPI的单片机,并且与SPI的硬件连接方式为QSPI的话,可以通过分散加载,把程序直接下 ...

LPC单片机,支持程序下载到Qflash。这个可以实现,现在问题是,可不可以直接在QFLASH里运行,或者如果想搬到外部SDRAM中去运行的话,怎么实现?
wofei1314 回答时间:2018-1-10 11:33:45
paulkiyt 发表于 2018-1-10 11:18
LPC单片机,支持程序下载到Qflash。这个可以实现,现在问题是,可不可以直接在QFLASH里运行,或者如果想 ...

你走错地方了0...这里是STM32社区.....



STM32可以实在在外部Flash或者RAM运行!
七哥 回答时间:2018-1-10 14:55:45
本帖最后由 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环境我不熟悉。

主要流程就是这样的,具体操作起来,可能得去多尝试。我也没这么干过,因为没平台,更是没需求。

评分

参与人数 1蝴蝶豆 +5 收起 理由
zero99 + 5

查看全部评分

zwmasdf 回答时间:2018-1-11 12:18:39
参考以下我的帖子吧,希望对你有所帮助
http://forum.armfly.com/forum.ph ... &extra=page%3D1

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

zwmasdf 回答时间:2018-1-11 12:19:29
去安福莱社区的STM32开发环境板块,有一篇我的帖子,希望对你有所帮助
zwmasdf 回答时间:2018-1-11 12:50:27
这里发不了连接,你可以去安福莱社区的STM32开发环境板块,我有几篇帖子,跟你的需求有关,希望能帮到你
Inc_brza 回答时间:2018-1-11 13:34:56
1、正常方式下载到Flash
2、启动后,读取Flash到SDRAM,然后把向量调到SDRAM中去

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

paulkiyt 回答时间:2018-1-11 16:07:36
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.
paulkiyt 回答时间:2018-1-11 17:29:44
zwmasdf 发表于 2018-1-11 12:19
去安福莱社区的STM32开发环境板块,有一篇我的帖子,希望对你有所帮助

你好,烧写算法完成后,那个scf文件或者工程选项里如何修改啊
paulkiyt 回答时间:2018-1-11 17:57:59
wofei1314 发表于 2018-1-10 09:52
什么单片机,如果支持QSPI的单片机,并且与SPI的硬件连接方式为QSPI的话,可以通过分散加载,把程序直接下 ...

你好,请教你一下,我的单片机支持QSPI启动,是不是只用修改分散加载文件就可以了?烧写算法是不是要换成外部flash烧写算法,然后工程选项里IROM是不是跟scf文件都要改?
wofei1314 回答时间:2018-1-12 09:09:44
理论上应该是说的这样,但是没用过LPC

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

zwmasdf 回答时间:2018-1-12 13:17:44
paulkiyt 发表于 2018-1-11 17:29
你好,烧写算法完成后,那个scf文件或者工程选项里如何修改啊

不用修改,按照我帖子里的仔细看,跟着操作就行了。首先原理要懂
paulkiyt 回答时间:2018-1-12 18:08:08
zwmasdf 发表于 2018-1-12 13:17
不用修改,按照我帖子里的仔细看,跟着操作就行了。首先原理要懂

你好,看到你的帖子了。你的那个test.c文件是烧写到外部flash,是通过那个外部flash烧写算法烧写进去的,但是你的main.c函数是下载到内部flash吧。如果按照你的意思main也是下载到外部flash,那直接在main添加,然后一起烧写进去就可以了啊
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版