OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7613|回复: 10

初学者,关于程序在ram中跑的问题。

[复制链接]

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-11-26
在线时间
0 小时
发表于 2014-12-7 14:45:19 | 显示全部楼层 |阅读模式
5金钱
初学者,小白,最近一直在困惑一件事,就是原来看过三星的s3c的芯片的bootloadr,看到在flash中的程序要自己写个搬运的程序把自己搬到ram中,

但是现在用是stm32用keil 烧程序一般都是往flash中烧,在启动文件中也没有搬程序的操作那程序是怎样到ram中的?

还有就是stm32启动方式,从flash,从ram等,那从flash启动是不是就是在flash中运行还是也要到ram中执行?

谢谢各位大侠!

最佳答案

查看完整内容[请看2#楼]

 要想在SRAM运行,论坛有例子,你可以参考下这个:http://www.openedv.com/posts/list/743.htm           
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-7 14:45:20 | 显示全部楼层
 要想在SRAM运行,论坛有例子,你可以参考下这个:http://www.openedv.com/posts/list/743.htm           
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2014-12-7 14:49:10 | 显示全部楼层
是的,启动代码会将代码加载至RAM。
于20150522停用该账号:http://www.microstar.club
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-11-26
在线时间
0 小时
 楼主| 发表于 2014-12-7 14:57:44 | 显示全部楼层
回复【2楼】styleno1:
---------------------------------
那stm32也像三星的s3c的芯片硬件搬运开始的4k到ram然后自搬运?
回复

使用道具 举报

58

主题

499

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1920
注册时间
2013-11-18
在线时间
268 小时
发表于 2014-12-7 15:43:22 | 显示全部楼层
STM32是直接在FLASH里跑代码的,所以启动代码里是不需要把代码搬到RAM里面去。S3C如果是用Norflash的话,也一样可以直接在Norflash跑代码,就不需要是把代码复制到SDRAM中,但是一般都用NandFlash,NandFlash就不支持直接跑代码,只有通过Uboot把代码都搬到SDRAM中才执行代码
已经放下多年的FPGA,要重新再拾起来,却是如此的陌生
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-11-26
在线时间
0 小时
 楼主| 发表于 2014-12-7 16:05:25 | 显示全部楼层
回复【4楼】mzwhhwj:
---------------------------------
那在flash中跑程序是不是就是说ram根本没用,说绝对点就是没有这个ram都可以?那局部变量呢,不用ram?
回复

使用道具 举报

58

主题

499

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1920
注册时间
2013-11-18
在线时间
268 小时
发表于 2014-12-7 16:08:54 | 显示全部楼层
回复【5楼】work:
---------------------------------
变量全部都是在RAM中的,怎么说RAM没用呢?
已经放下多年的FPGA,要重新再拾起来,却是如此的陌生
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-11-26
在线时间
0 小时
 楼主| 发表于 2014-12-7 16:12:59 | 显示全部楼层
看到这样一篇文章
http://blog.csdn.net/lanmanck/article/details/8306045
能不能帮解释一下为什中断的地址是0x80……而栈顶的指针是0x20……开头的?
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-11-26
在线时间
0 小时
 楼主| 发表于 2014-12-7 16:18:01 | 显示全部楼层
回复【6楼】mzwhhwj:
---------------------------------
就是说还是指令从flash中取,数据从RAM中取。
回复

使用道具 举报

58

主题

499

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1920
注册时间
2013-11-18
在线时间
268 小时
发表于 2014-12-7 16:20:42 | 显示全部楼层
--------回复【5楼】work:
---------------------------------
理论来说不用RAM也是可以的,可以把变量这些也放到FLASH,但是FLASH的特点,读取的速度比较快(但是相对RAM来说还是要慢太多),写的速度超级慢,这样就严重的影响到程序的运行速度。
已经放下多年的FPGA,要重新再拾起来,却是如此的陌生
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-11-26
在线时间
0 小时
 楼主| 发表于 2014-12-7 16:24:23 | 显示全部楼层
回复【9楼】mzwhhwj:
---------------------------------
大概了解了,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-28 04:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表