发明名称 |
一种手机嵌入式系统中动态加载的方法 |
摘要 |
本发明提供了一种手机嵌入式系统中动态加载的方法,包含如下步骤:编译应用程序;加载程序文件,通过节头表读出指令及只读数据节、初始化的全局变量节和未初始化的全局变量节在程序文件中的位置;初始化运行环境;参数替换,当执行该初始化运行环境步骤至函数_rt_init_stackheap()时,用加载器传入的参数替换_rt_init_stackheap()函数;继续初始化;生成目标代码;调用宿主函数;中断C运行时库的退出部分流程,完成程序文件的动态加载过程。 |
申请公布号 |
CN101668283A |
申请公布日期 |
2010.03.10 |
申请号 |
CN200810042343.9 |
申请日期 |
2008.09.01 |
申请人 |
沃勤网络科技(上海)有限公司 |
发明人 |
胡铸韬 |
分类号 |
H04W8/24(2009.01)I;G06F9/445(2006.01)I |
主分类号 |
H04W8/24(2009.01)I |
代理机构 |
|
代理人 |
|
主权项 |
1.一种手机嵌入式系统中动态加载的方法,其特征在于,包含如下步骤:编译应用程序,将该应用程序独立编译为一个程序文件,该程序文件描述了程序文件所支持的处理器架构及节头表所在的位置;加载程序文件,通过节头表读出指令及只读数据节、初始化的全局变量节和未初始化的全局变量节在程序文件中的位置,将该指令及只读数据节、该初始化的全局变量节和该未初始化的全局变量节加载到内存的适当位置即实现程序的动态加载;初始化运行环境,将堆栈和堆的配置参数传递给该应用程序,重构_rt_stackheap_init()函数;参数替换,当执行该初始化运行环境步骤至函数_rt_init_stackheap()时,用加载器传入的参数替换_rt_init_stackheap()函数;继续初始化,用加载器传入的参数继续该初始化程序运行环境步骤;生成目标代码,将该应用程序生成为ROPI(READ ONLY POSITION INDEPENDENT,只读位置无关)和RWPI(READ WRITE POSITION INDEPENDENT,读写位置无关)代码模式;调用宿主函数,首先将该宿主函数名称传递给符号表函数,该符号表函数将该宿主函数的地址返回给该应用程序,该应用程序将该宿主函数的入口参数填写完毕后跳转至函数地址,即完成该调用宿主函数的过程;中断C运行时库的退出部分流程,完成程序文件的动态加载过程。 |
地址 |
200235上海市漕溪路250号B座407室 |