嵌入式软件加载技术研究
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
后PC时代嵌入式系统应用日趋广泛和多样,嵌入式软件变得复杂和庞大,容易引发定位不当造成的地址冲突和小处改动引起整个模块重新编译等诸多问题。因此,现代嵌入式操作系统纷纷引入高效的软件加载机制,如动态加载,以支持系统软件基本功能的扩展和应用软件的开发、维护和升级,提高嵌入式软件的开发效率。
     加载,是指将特定格式的程序从外存或ROM甚至宿主开发环境装入内存并使之可以运行的过程。所谓动态加载,指的是,程序在运行期间需要调用某一模块的功能时,由加载器将该模块装即时载入内存,进行相应的重定位处理后将控制权交还调用程序。重定位是动态加载的核心概念。完成加载功能的程序称为加载器,通常作为操作系统的组件出现,并且大部分的通用操作系统都属于这种类别:将加载器作为操作系统的基本功能,具体的加载过程被系统屏蔽起来。传统嵌入式软件的加载是直接加载,即固化或下载,由交叉调试器或第三方工具完成。现代嵌入式软件采用增量式模块开发,因此引入了动态加载概念,并要求OS本身提供这种动态加载支持。本文主要研究的是适用于嵌入式操作系统的加载技术,特别是动态加载。本文提出了一种适合于嵌入式软件开发的动态加载新机制,并描述了相关的数据结构和算法,实现了软件原型,验证了该机制的有效性。
     本文首先以程序开发过程为主线,从目标文件、链接到加载运行,对加载技术涉及到的背景知识进行分析和讨论,指出加载技术的关键和发展重点在于重定位技术,并对重定位技术进行了较为全面的总结和分析。然后,以Linux下的DLD为例分析讨论了通用操作系统中的加载技术和重定位技术,同时全面总结和分析了嵌入式软件开发过程中的加载技术。最后,在以上分析讨论得基础上提出一种嵌入式系统的加载解决方案,并在DeltaOS上实现、测试并验证了这一方案的可行性。
There are various applications in embedded software development usually with limited hardware support. The embedded software becomes more complex than ever before and that usually cause many problems such as address confliction, whole system recombination just for little modification. So people introduce highly effective loading technology to support embedded software development and system updating.
    Loading is the process of loading program into memory ready for running. Dynamic loading means runtime loading - load modules in when program needs. Software to load is named loader. Most of OS treat loader as their component while working processes of this component are unknown by common programs. Relocation technology is the key point. Traditionally embedded software loading just means program solidifying or downloading. But today with the introduction of dynamic loading, embedded software development demands dynamic mechanism supports from OS. This paper just aim at loading technology research especially relocation technology of embedded system then advances and validates an embedded software loading mechanism.
    This paper firstly discusses what is loading technology and related concepts like object file and relocation. The key point of loading technology is relocation. So we make a review of loading technology and relocation technology. After that, give an example of DLD under Linux to understand the whole process of loading and relocation. Then we turn to embedded system again. Embedded OS differences from PC OS not only in OS mechanism but also software developing process. We make tracks for embedded application development from debugging, solidifying to loading to get total unstinting of the loading technology of embedded system. According to all these analyses, here comes our embedded loading resolution. We designed a relocation mechanism and implemented it under DeltaOS. (We'll discuss this mechanism in details later in this paper.)
引文
[1] Dynamic Software Updating, By Ruchi Gupta, Ritu Varma, Rohan Puri.
    [2] Software Downloading, By Tom Rotch at the 2001 FAA software reference
    [3] Analysis of Object File Formats for Embedded Systems, By Midda Zhang, Ph.D, Senior software engineer, Intel Corporation
    [4] System V Application Binary Interface Intel386 Architecture processor Supplement Fourth Edition, Copyright AT&T.
    [5] MicroSoft Portable Executable and Common Object File Format Specification, MicroSoft Corporation.
    [6] Windows CE Technologies Overview, MicroSoft corporation
    [7] Jeff Ishaq: Mastering Shared Libraries, 2001
    [8] Intel 386 EX Embedded Microcomputer User's Guide, Intel Corporation, February 1995
    [9] 《DeltaOS嵌入式操作系统动态加载功能的设计与实现》袁海东 电子科技大学硕士论文 2001
    [10] 《实时操作系统CRTOS/micro的生成技术研究》彭斌 电子科技大学硕士论文 1999
    [11] 《LambdaBoot v1.0概要设计报告》Coretek.Inc
    [12] 《LambdaLoader v1.0概要设计报告》Coretek.Inc
    [13] 《LambdaTool技术白皮书》,Coretek.Inc, 2001
    [14] 《LamdaTRA移植手册—x86》,Coretek.Inc, 2001
    [15] 动态加载概要设计,Epson Corporation, 2001

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700