关于arm平台动态加载技术的讨论

[复制链接]
 楼主| jxyhome 发表于 2008-3-11 15:29 | 显示全部楼层 |阅读模式
请求各位arm达人,我现在有一种方法实现对应用程序的代码进行重定位,如果不涉及到全局变量,可以将App程序独立编译成bin拷贝进内存加载.<br /><br />关于全局变量这块,如果指定为rwpi,那么将生成RWPI段,那么程序对全局变量的访问将以间接的方式来进行.将以sb寄存器来存储base.运行时对sb进行重定位,sb寻址全局变量时以基地址+偏移地址.<br /><br />问题如下:<br />  假如我申请一个buffer将axf中.text段(相当于RO)拷贝进来,那么接下来将指定rwpi生成的.data段拷贝进来.我查了一些资料,要实现对全局变量的访问,必须在进入app程序前对sb赋一个初值.因为本人不熟悉arm,不知道这个初值为多少?要实现全局变量定位,该如何操作,欢迎大家讨论.如果有能够实现者,可以加我Q私聊,有偿!
 楼主| jxyhome 发表于 2008-3-13 10:48 | 显示全部楼层

自己顶上去

  
农民讲习所 发表于 2008-3-13 11:01 | 显示全部楼层

这个问题复杂,主要是编译器编译时对RW绝对定位了。

可以在外部程序中将API的RW单独划出来,绝对定位的。比如外部是0x31000000的话,那么API将使用0x31000000+0x20000开始的RAM。同时可能需要修改BOOT中堆栈的位置。
samuelyu 发表于 2008-3-13 14:20 | 显示全部楼层

所长的方法可行,可以避开 OVERLAP 的问题;

  
mydatai 发表于 2011-4-11 16:38 | 显示全部楼层
等等等等等等等等等等等等等等等等等等等等等等
xinzha 发表于 2011-4-11 17:41 | 显示全部楼层
实现起来有很多种方式,不知道lz是什么环境以及目的。如果没有操作系统(指非实时系统)的话曾经用过如下方法实现。
动态加载的image首地址既整个image跟主image的接口,通过这个接口主image获取所需的动态image的函数指针列表,以及将双方共享的buffer指针传递给动态image,动态image尽量少调用主image函数,如果一定要做也通过指针传递方式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

74

帖子

0

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

5

主题

74

帖子

0

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