阅读:2838回复:1
怎样加载ELF格式文件到RAM运行?
程序的目的是将ROM上的一个ELF文件加载到RAM里运行,现在有几点疑惑,哪位兄弟能帮忙指点一下:
1) ELF文件含有多个section,是不是要把每个section分析出来,然后把RO,RW section COPY到RAM,然后把ZI section在RAM里建立起来,然后把PC指针指向RAM中RO的入口点就可以了? 2) 是关于scatter 文件的一个问题, 里面有一个加载域的概念,不是很明白,象我要做的这种情况,我是要将上一步里的section COPY到加载域,还是运行域呢? 3) 是关于__main函数的,看资料说它会在跳到我们自己的main之前做两个动作,一个是复制RW区和建立ZI区,另一个是初始化堆和栈以及初始化库函数,那么是不是我不需要自己COPY ELF文件里的那些个section到其运行域? 那我要怎样加载ELF文件到RAM里呢? 这几个问题搞的有点糊涂,哪位兄弟能帮忙指点指点,或者给我一些资料参考一下,先在这里谢谢大家啦 |
|
沙发#
发布于:2008-12-12 14:33
现在有点明白了: 在ELF文件中有加载域和运行域的参数,只要把program section遍历一下,然后COPY到指定的加载地址就好了,运行域不用去管,因为在文件运行的时候里面的__main负责加载域到运行域的工作。我的理解对吗?
|
|