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

共4条 1/1 1 跳转至

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

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



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

助工
2010-04-23 09:22:57     打赏
2楼

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

这样处理也是因为ARM自身没有多少存储空间,需要动态的配置系统的存储空间,放在ROM中的程序一般是不能直接执行的。


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

这个不是一两句就能说明白的,你的理解可以说不对,对于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)
是这样吗? 谢谢!!

助工
2010-04-27 17:13:20     打赏
4楼
首先表示感谢!!

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

您例子的意思是不是,这个数组不需要初始化的话。那么在rom中就不需要生成rw段。那么相对于声明为全局变量。生成的镜像的大小就会小一些?
<对>
对定址器的问题请教您,ads工具链接的时候指定ro base, rw base后,生成的镜像反编译后是绝对定址的机器码。所以当需要执行这个镜像的时候,就需要按照定址器所设定的参数,通过引导程序将之(ro段,rw段)拷贝到定址的地址(ro base, rw base)
是这样吗? 谢谢!!
<对,完全正确,只有复制过去后程序才能运行,BIN文件通常是不能直接执行的>

共4条 1/1 1 跳转至

回复

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