[发明专利]一种可重定位程序的加载及调试方法及系统有效
申请号: | 200910221541.6 | 申请日: | 2009-11-20 |
公开(公告)号: | CN101706725A | 公开(公告)日: | 2010-05-12 |
发明(设计)人: | 武晓慧;何海建 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F11/36 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 吴艳;龙洪 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 定位 程序 加载 调试 方法 系统 | ||
技术领域
本发明涉及通信领域,尤其涉及一种嵌入式系统中动态加载的可重定位 程序的加载及调试方法及系统。
背景技术
随着科技术的发展,人们对手机的需求呈现PC(Personal Computer,个 人计算机)化驱势,所需的应用程序越来越多。目前智能手机基本都实现了 动态加载技术,类似于PC上的动态链接库(Windows)或者动态共享文件 (Linux),可动态加载应用;而大多非智能手机中尚未实现动态加载技术。 由于动态加载技术不仅可以提高软件开发效率,按需加载节省硬件资源,而 且也满足了电信运营商不断扩展附加增值业务和手机用户随时下载使用新功 能的需求,因此在非智能手机中实现动态加载技术是其发展的一个必然趋势。 随之而然,与该技术相辅相成的调试方法也成为决定其技术价值与实用价值 的重要因素。
现有的嵌入式系统调试方法大致分为通过设计驻留监控软件、实现 JTAG(Joint Test Action Group,联合测试行为组织)调试器及采用在线调试 器三种方式,其中使用JTAG调试器是开发过程中最常使用的一种调试方式。 目前已有的调试方法均是基于这三种方式,对其实现进行改造,在调试过程 中监控所关注的调试信息,并且以便于理解的方式输出调试信息。且这些调 试方法都是用于调试经过编译、链接之后的可执行目标代码,对于可重定位 的目标代码的调试及动态加载可重定位程序的调试方法尚未涉及。
可重定位文件的格式有多种,如微软的PE(Portable Executable,可移植 的可执行文件)格式、Unix/Linux的ELF(Executable and Linkable Format, 可执行可链接格式)格式。动态加载的可重定位文件使用的ELF格式的链接 视图,因此可重定位文件的调试方法也是针对ELF格式的可重定位文件。但 目前存在的调试工具无法直接载入可重定位文件进行调试。
发明内容
本发明要解决的一个技术问题是提供一种可重定位程序的加载方法,使 得调试工具能够直接载入由可重定位文件通过特定方式生成的可执行文件, 进行可重定位程序的调试。
为了解决上述问题,本发明提供了一种可重定位程序的加载方法,应用 于先进的精简指令集处理器(ARM)编译系统,该方法包括:
按照ARM映像文件中输入段的顺序加载可重定位程序;
将加载的所述可重定位程序编译链接生成可执行文件。
进一步地,所述按照ARM映像文件中输入段的顺序加载可重定位程序 的过程具体包括:
比较所述可重定位程序载入内存过程中输入段的顺序与ARM映像文件 中输入段的顺序是否相同,如果相同,则直接将所述可重定位程序中可加载 的节区载入内存,否则,将所述可重定位程序中可加载的节区按照ARM映 像文件中输入段的顺序载入内存。
进一步地,在进行所述比较之前,通过以下方式查看所述可重定位程序 载入内存过程中输入段的顺序:
所述可重定位程序载入内存过程中的按节区类型进行段分类时,通过添 加打印信息,或者通过调试工具查看所述节区的分类排列顺序。
进一步地,所述将加载的所述可重定位程序编译链接生成可执行文件的 过程具体包括:
对ARM编译链接器的链接过程参数设置进行修改;
利用ARM编译链接器将所述可重定位程序编译链接生成可执行可链接 格式(ELF)文件。
进一步地,所述对ARM编译链接器的链接过程参数设置进行的修改具 体包括:
在ARM编译链接器中设置不扫描C库选项,用于在链接过程中不扫描 C/C++运行时库;
设置未定义符号选项,用于将所有未定义的符号指向同一个已存在的符 号;
设置不删除选项,用于在链接过程中保留所有段;
设置生成映像文件的入口、输出段属性为只读的输出段加载时地址值和 属性为可读写的输出段加载时地址值。
进一步地,所述未定义的符号指向的所述已存在的符号为所述可重定位 程序默认的启动接口名,或者所述可重定位程序中任一个已存在的符号。
本发明要解决的另一个技术问题是提供一种可重定位程序的调试方法及 系统,可以方便地对实现对动态加载的可重定位程序进行调试。
为了解决上述问题,本发明提供了一种可重定位程序的调试方法,应用 于ARM编译系统,该方法包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910221541.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:带废热回收功能的半导体热电热水器
- 下一篇:一种分体式空调器的活动门机构