[发明专利]基于ARM芯片的多个程序段同时运行的动态加载方法无效
申请号: | 201210022599.X | 申请日: | 2012-02-01 |
公开(公告)号: | CN103246524A | 公开(公告)日: | 2013-08-14 |
发明(设计)人: | 冯嵩 | 申请(专利权)人: | 上海野火网络科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/45 |
代理公司: | 上海科盛知识产权代理有限公司 31225 | 代理人: | 赵志远 |
地址: | 200082 上海市虹*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 arm 芯片 程序 同时 运行 动态 加载 方法 | ||
1.一种基于ARM芯片的多个程序段同时运行的动态加载方法,其特征在于,包括以下步骤:
1)以指定源文件的用户自定义函数为入口对源文件进行编译,并对编译结果进行两次链接处理,得到两个可执行文件,分别为startup_0.elf和startup_1.elf;
2)对得到的两个可执行文件进行比较分析后得到重定位表relocation.lis;
3)将其中一个可执行文件startup_0.elf和重定位表relocation.lis压缩并打包,生成动态程序startup.bin;
4)将动态程序startup.bin导入智能移动终端后,所述的智能移动终端中的ARM芯片将动态程序startup.bin中的startup_0.elf解包并分析,建立该动态程序startup.bin的RO、RW、ZI段的内容;
5)将动态程序startup.bin中relocation.lis解包,并根据该文件信息,结合RO、RW+ZI段的首地址,针对RO段进行重定位;
6)将RO段首地址转换为步骤1)中所指定的用户自定义函数类型的函数指针,直接调用该函数指针,完成动态加载过程。
2.根据权利要求1所述的一种基于ARM芯片的多个程序段同时运行的动态加载方法,其特征在于,所述的对编译结果进行两次链接处理具体为:
1)对编译的结果进行链接处理,链接时指定链接选项-rw-base为0xF0000000,得到链接后的可执行文件startup_0.elf;
2)对编译的结果进行链接处理,链接时指定链接选项-rw-base为0xE0000000,得到链接后的可执行文件startup_1.elf。
3.根据权利要求1所述的一种基于ARM芯片的多个程序段同时运行的动态加载方法,其特征在于,所述的RW段为所有已经初始化且不为0的变量,所述的ZI段为所有声明但没有初始化的变量,所述的RO段为所有逻辑代码信息和只读变量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海野火网络科技有限公司,未经上海野火网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210022599.X/1.html,转载请声明来源钻瓜专利网。