这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 关于arm rw base的问题,大侠相助

共2条 1/1 1 跳转至

关于arm rw base的问题,大侠相助

菜鸟
2010-04-22 17:08:32     打赏
是不是只要有rw段,那么就应该在ro段代码中,自己写代码将rw段拷贝到rw base然后调用执行?
请大侠拨云见日!



关键词: 关于     问题     大侠     相助    

菜鸟
2010-04-23 15:03:35     打赏
2楼
首先表示感谢!!

这个不是一两句就能说明白的,你的理解可以说不对,对于ARM(各种MCU)程序都可以在ROM中执行,(---明白了)
RW/RO是为了配合其内存管理而定义的处理方法,这样可以起到节省资源的作用,(--很深刻,谢谢)
举个简单的例子,一段程序,如果中间需要使用大量的数组,而这个数组一开始是不需要初始值的,只是在程序运行中才用来存储数据,我们可以直接在ROM程序里面也给数组分配空间(声明为全局变量,是吧),运行时直接把程序从ROM中复制到RAM中(到链接定址的时候指定的地址。对吧),但如果我们不这么处理,而是将可执行代码放到 ROM中的代码段,数组放到ROM(是RAM吗)中的数据段,这样数据可以存储为地址+长度的格式,占用ROM的空间就会大为减少。

您例子的意思是不是,这个数组不需要初始化的话。那么在rom中就不需要生成rw段。那么相对于声明为全局变量。生成的镜像的大小就会小一些?

对定址器的问题请教您,ads工具链接的时候指定ro base, rw base后,生成的镜像反编译后是绝对定址的机器码。所以当需要执行这个镜像的时候,就需要按照定址器所设定的参数,通过引导程序将之(ro段,rw段)拷贝到定址的地址(ro base, rw base)
是这样吗? 谢谢!!

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]