裸机嵌入式系统的软件移植问题研究.pdf

裸机嵌入式系统的软件移植问题研究.pdf

ID:52391135

大小:426.01 KB

页数:6页

时间:2020-03-27

裸机嵌入式系统的软件移植问题研究.pdf_第1页
裸机嵌入式系统的软件移植问题研究.pdf_第2页
裸机嵌入式系统的软件移植问题研究.pdf_第3页
裸机嵌入式系统的软件移植问题研究.pdf_第4页
裸机嵌入式系统的软件移植问题研究.pdf_第5页
资源描述:

《裸机嵌入式系统的软件移植问题研究.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第7期袁学贵等.裸机嵌入式系统的软件移植问题研究883裸机嵌入式系统的软件移植问题研究袁学贵1蔡建平1谢会东2(1.北京工业大学软件学院,北京100124;2.北京大基康明医疗设备有限公司,北京100176)摘要研究基于裸机的嵌入式软件移植过程,分析嵌入式软件在变更基于嵌入式处理器的硬件平台后所面临的关键技术问题和解决方法。最后以多页准直器控制系统的软件移植为例,结合软件移植的一般方法实现软件的移植。关键词嵌入式系统裸机系统软件移植多页准直器中图分类号TP311.54文献标识码A文章编号1000—3932(2013)07-0883-06近年

2、来计算机在各行各业的应用迅速发展,各种应用系统软件趋于全面、成熟和完善。但随着计算机技术的迅猛发展,新的软、硬件产品不断面世,对于应用系统的相对稳定和计算机应用平台的不断提高,实际中要求原来的应用系统要在新的环境下运行,这就使得应用系统的移植工作显得愈来愈重要。在嵌入式系统领域,软件移植的情况很多,主要是基于基于嵌入式处理器的原因和基于操作系统的原因⋯。在嵌入式系统领域,由于硬件的更新换代和软件技术的不断发展,经常需要将遗留系统进行软件移植以适应新的软硬件平台。嵌入式系统的软件移植分为裸机系统的嵌入式系统软件移植,基于嵌入式操作系统的应用软

3、件移植和裸机软件移植到嵌入式操作系统上3种情况。1软件移植问题和方法裸机系统,即没有操作系统支持的软件系统⋯。裸机系统在嵌入式微处理器发生变化时,软件需要在新的体系结构不同的嵌入式处理器硬件平台上运行,这时就只能进行软件移植。将没有操作系统的嵌入式系统运行在新的嵌入式处理器硬件平台上,如果软件的设计采用汇编语言,那么移植就等于重新开发,而且难度往往高于新系统开发。当然,如果软件主要由C语言开发,是可以考虑软件移植问题的。下面将从几个角度来分析软件移植问题。1.1程序理解程序理解包括在各种抽象层析上,建立基本软件的思维模型,抽象的层次从代码的

4、模型到基本应用领域的模型各有不同。程序理解技术可以包含代码结构、功能和架构3个抽象层次心]。代码结构表示包括源代码和制品,例如通过解析和例程分析活动所获得的抽象语法树和流程图。要恢复一个系统架构,首先要理解源代码和其他现有制品。在这个过程中,可以应用很多活动,如手工代码阅读,通过逆向工程工具解析源代码,产生各种报表,包括调用图,数据和控制流、结构图、交叉引用信息,以及数据类型和变量实例的定义和使用。功能层表示即为描述程序函数、数据和文件的关系,通过理解得出程序的功能模块划分和模块间调用关系。架构层表示更加抽象,把函数层和代码层装配成相关组件

5、或者概念的子系统。1.2开发工具嵌入式软件开发工具包括编译器、汇编器、链接器和调试器。嵌入式开发工具运行在一个与目标硬件平台不同的主机上,对于裸机系统,用户必须提供自己的硬件平台知识给这些工具,这样才能生成在具体硬件平台上运行的二进制映像文件。嵌入式软件开发工具往往因开发厂商、支持语言标准和工具版本而出现很大差异,这些差别主要体现在如下几个方面。1.2.1数据长度标准C语言的数据类型是不可移植的,如int类型,在不同编译器中长度不同。在移植的过程收疆日期:2012.12-30884化工自动化及仪表第40卷中,为了兼容性,要正对编译器改写数据

6、类型以保持程序的数据宽度与原系统相同。为了程序有个很好的移植性,应尽量使用可移植的数据类型,或者自定义数据类型。例如自定义数据类型:typedefunsignedcharUINT8;typedefunsignedcharBOOLEAN;typedefunsignedcharUINT8;typedefsignedcharINT8;typedefunsignedshortUINTl6;typedefsignedshortINTl6;typedefunsignedintUINT32;typedefsignedintINT32;typedefflo

7、atFP32;typedefdoubleFP64;如果使用较新C99编译器,则可以使用C99标准建立的一套有符号和无符号的定长整型数据类型,这些定义包括在新的头文件stdint.h中。最新定义的类型名字是:8位int8一t,uint8t16位intl6_t。uintl6t32位int32一t,uint32t64位int64一t。uint64一t1.2.2变量的作用域和类型转换不同的编译器对变量作用域的表现可能出现差异,编译的过程中有可能出现重复定义错误,对于这种错误,可通过加条件分支予以解决;不同的编译器对类型转换的表现也会可能存在差异。对

8、于较老的编译器,不匹配类型转换可能会提示警告信息,而新的编译器可能会出现编译错误。对于编译时出现的类型不匹配错误,可强制加上类型转换予以解决。1.2.3关键字和内建函数嵌入式软件

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。