搜索
bottom↓
回复: 23

如何将程序加载到RAM中执行(LPC1768)

[复制链接]

出0入0汤圆

发表于 2011-2-23 22:33:54 | 显示全部楼层 |阅读模式
我知道的cortex-m3基本都是将程序烧进flash然后上电就开始执行了。很想问问大家,有没有实现把程序从flash加载到ram中执行的方法呢?哪怕是加载一小段程序也行,主要是不了解方法。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2011-2-23 22:53:49 | 显示全部楼层
iar ewarm : EWARM_DevelopmentGuide.ENU.pdf

__ramfunc void function_exec_in_ram(void)
{
  static char str[] = "exec in ram";
  print_msg( str );
}


keil arm :
http://www.keil.com/support/man/docs/ca/ca_le_ram.htm

#define M16(adr) (*((volatile unsigned short *) (adr)))
void my_prog_func (unsigned short val, unsigned short *adr) __ram
{
  M16(base_adr + 0xAAA) = 0xAA;    // enter programming mode
  M16(base_adr + 0x554) = 0x55;
  M16(base_adr + 0xAAA) = 0xA0;
  M16(adr) = val;                  // program value
  while (M16(adr) != val);         // wait until programmed
}



gcc arm:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3909593&bbs_page_no=1&search_mode=3&search_text=cnjenkins&bbs_id=9999

出0入0汤圆

 楼主| 发表于 2011-2-24 17:39:06 | 显示全部楼层
非常感谢。
还想问一下,如果我想从外部存储器(比如说SD卡)加载一个程序到片内RAM,是不是和上面的情况又不同了?
是否能实现呢?

出0入0汤圆

发表于 2011-5-12 18:21:47 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-14 10:15:34 | 显示全部楼层
是我正在找的东西!!

出0入0汤圆

发表于 2011-12-1 23:04:16 | 显示全部楼层
回复【楼主位】htjgdw
我知道的cortex-m3基本都是将程序烧进flash然后上电就开始执行了。很想问问大家,有没有实现把程序从flash加载到ram中执行的方法呢?哪怕是加载一小段程序也行,主要是不了解方法。
-----------------------------------------------------------------------

想把code加载到ram运行,首先编译时,code的地址需要指定到ram中,属性依然是ro,
再将代码copy到ram中运行,这时,如果不将code copy到ram,将不能运行(ram和rom地址不一样)

1楼给的参考很好,编译器关键字 __ramfunc 指定到函数可以编译时地址制定到ram,
但是,从rom copy到ram是由编译器生成代码来拷贝的,一本在startup时就copy到ram了,
如是这部分代码一直不执行的时,白白占用ram,

出0入0汤圆

发表于 2011-12-23 16:15:10 | 显示全部楼层
学习了!

出0入0汤圆

发表于 2011-12-26 16:14:45 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-12-27 09:12:09 | 显示全部楼层
呵呵,快1年了,真没想到我这个帖子还能被扒出来:)

出50入0汤圆

发表于 2011-12-27 10:29:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-5-29 17:38:44 | 显示全部楼层
mark~~~~~~

出0入0汤圆

发表于 2012-5-29 18:40:38 | 显示全部楼层
mark               

出0入0汤圆

发表于 2012-6-26 15:20:07 | 显示全部楼层
学习中呵呵

出0入0汤圆

发表于 2012-6-28 14:04:01 | 显示全部楼层
没看明白

出0入0汤圆

发表于 2013-8-25 12:09:06 | 显示全部楼层
标记下,学习了

出0入0汤圆

发表于 2014-8-27 19:15:22 | 显示全部楼层
先mark一下,慢慢研究学习

出0入0汤圆

发表于 2014-9-26 09:23:41 | 显示全部楼层
学习了!

出0入12汤圆

发表于 2014-9-26 11:58:49 | 显示全部楼层
需要loader,只是程序要的链接地址要编程 ram 的或者是位置无关代码。

出0入0汤圆

发表于 2014-10-20 14:34:41 | 显示全部楼层
mark, 学习学习

出0入0汤圆

发表于 2014-10-27 15:29:54 | 显示全部楼层

出0入0汤圆

发表于 2014-10-31 11:25:04 | 显示全部楼层
mark, 学习

出0入0汤圆

发表于 2014-11-3 17:43:06 | 显示全部楼层
这个我也想知道啊

出0入0汤圆

发表于 2014-11-8 20:05:15 | 显示全部楼层
现在还不会用啊

出0入10汤圆

发表于 2016-4-22 17:37:53 | 显示全部楼层
学习了!感谢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 01:36

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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