找回密码
 注册
搜索
查看: 2236|回复: 7

[讨论] arm上的动态加载

[复制链接]
发表于 2009-3-26 16:17:19 | 显示全部楼层 |阅读模式
想在arm上动态加载axf或elf文件,参考了一些elf loader,不是很明了,还请高手详细介绍一下加载原理
发表于 2009-4-28 21:55:09 | 显示全部楼层
取elf 分析不同的段 拷贝到内存,然后 执行 原理就这么简单
点评回复

使用道具 举报

发表于 2009-4-30 11:41:49 | 显示全部楼层
以下是引用kingmk在2009-4-28 21:55:09的发言:
取elf 分析不同的段 拷贝到内存,然后 执行 原理就这么简单


想问下,执行时需要地址重定位吗?
点评回复

使用道具 举报

发表于 2009-5-5 14:04:00 | 显示全部楼层
以下是引用ypzhu2004在2009-4-30 11:41:49的发言:


想问下,执行时需要地址重定位吗?


可以用位置无关代码
点评回复

使用道具 举报

发表于 2009-5-6 16:00:17 | 显示全部楼层
函数的运行地址是动态指定的,而不是编译为固定的地址。

       其实ADS提供了把函数编译为独立地址的方式,

       COMPILER使用如下的参数/ropi/rwpi

       LINK使用如下的参数-rwpi –ropi

       就可以把编译的程序做到运行时地址是独立的。

动态加载的应用实际上都是链接好的Image bin,而不用像上面说的分析不同的段那么复杂。
点评回复

使用道具 举报

发表于 2009-5-19 16:26:07 | 显示全部楼层
不用分析elf文件 我倒想问问你是怎么实现动态加载和执行位置无关代码的?
点评回复

使用道具 举报

发表于 2010-7-31 21:32:25 | 显示全部楼层
封闭系统的“动态加载”其实就是一个Win32的EXE,局限性很大。玩一下“动态连接”吧,貌似目前这类平台上还没有类似DLL的东西,有一个开源的VRE项目,基于ELF实现了一个动态链接内核。原理很简单,加载的是可重定位的ELF文件,通过动态链接器将其符号重定位后输出IMAGE Bin,然后执行。整个架构分为ROM层与动态连接层。ROM层与动态连接层的交互通过一个映射表实现的,感兴趣的话可以详细了解一下。

http://www.tok.cc/?p=35
或者联系:QQ 66970490
点评回复

使用道具 举报

发表于 2010-9-5 18:48:14 | 显示全部楼层
感謝版主
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-10-9 00:49 , Processed in 0.047006 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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