请教:关于IAR分散加载

[复制链接]
 楼主| flashdyc 发表于 2009-11-2 19:08 | 显示全部楼层 |阅读模式
本帖最后由 flashdyc 于 2009-11-3 09:18 编辑

IAR中分散加载一般都有这么两句:
   place in ROM_region   { readonly };
   place in RAM_region   { readwrite,
                                      block CSTACK, block HEAP };
   这两句有些想不通:
   第一句说的是加载域?
   第二句应该肯定是执行域了吧
   但按我上述的想法如果第一句是加载域,为什么只包含readonly,数据段信息不也存储在flash中么。如果按文件中的这种写法如果我想程序存储在FLASH中,其中一部分代码运行时在RAM中那应该怎么设置?上述假设在ADS的scatter文件中是很容易配置的,在IAR中怎么也想不通
   说的简单点,就是我想在IAR中通过分散加载将程序下载到FLASH中,运行时一部分代码在RAM中运行,请问该如何设置
午夜粪车 发表于 2009-11-2 23:31 | 显示全部楼层
看不明白
 楼主| flashdyc 发表于 2009-11-3 09:59 | 显示全部楼层
是不是问题问的太基础了。。
armhoo 发表于 2010-6-3 13:10 | 显示全部楼层
IAR分散加载至今俺也还不明白,等待高人解答?好像IAR无法得到加载域时的RO RW ZI等信息而只能得到运行时域的RO RW ZI相关信息,LZ上的例子中两句都是运行时域,就是运行时代码就必须在那两个place的地方。
Quentin 发表于 2010-6-5 10:51 | 显示全部楼层
占座学习
xinzha 发表于 2010-6-5 11:40 | 显示全部楼层
readonly包含了code段以及RO data,这一部分是运行时不允许被修改的。当然你想强行修改也能做到,只不过这样就不是代码的本意了。
ram段里面包含了堆,栈,rw的全局变量,static等等在运行时可以被修改的部分。
zchong 发表于 2010-6-6 20:43 | 显示全部楼层
部分代码拷贝到ram执行,可以使用IAR的关键字__ramfunc;
全部代码拷贝到ram执行,参考Technical Note 11578
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

17

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部