首页 > 知识点讲解
       应用软件的移植
知识路径: > 嵌入式系统软件基础知识 > 嵌入式系统程序设计 > 嵌入式应用软件移植 > 
被考次数:2次     被考频率:低频率     总体答错率:38%     知识难度系数:     
相关知识点:2个      
        嵌入式应用软件的移植指的是把应用软件从一个嵌入式操作系统平台移植到另一个操作系统平台。
        一个应用软件的实现涉及两个方面的问题:
        (1)这个应用软件必须用某种编程语言来编写,如汇编语言、C语言、C++语言。
        (2)这个应用软件必须在某个平台上运行,该平台一般是一个操作系统,如Windows XP、Linux等。
        当然,也有一些软件系统,它们既是编程语言,又是运行平台,如Java。
        因此,移植一个应用软件时,既要考虑编程语言的因素,也要考虑运行平台的因素。对于PC上的应用软件来说,它的运行平台比较有限,主要有两大类,即Windows系列和UNIX系列。相应的,每一类平台都有各自的一套应用程序编程接口。在嵌入式系统中,编程语言的问题不大,因为大多数嵌入式开发都是采用移植性较好的C语言。但是在运行平台上,嵌入式操作系统的选择是非常多的,目前已经开发了数以百计且各具特色的嵌入式操作系统产品。从理论上说,每一个操作系统都会定义一组API接口函数,因此,如果要在嵌入式平台上进行应用软件的移植,难度是比较大的。
        为了提高嵌入式应用软件的可移植性,在软件开发时需要遵守以下的一些原则:
        (1)在软件设计上,要采用层次化设计和模块化设计。所谓层次化,指的是软件设计的纵向结构,下层为上层提供服务,上层调用下层提供的服务。每一个层次都应该定义清晰的接口和功能,分层的数量要合适。层次化结构设计的优点是:在进行系统移植时,通常只需要修改底层软件,而不需要去修改上层软件。所谓模块化,既体现在整体软件的设计上,又体现在同一层的软件结构上。模块化不同于层次化,一般来说,软件模块之间是相互独立的,一个模块的实现不依赖于其他模块的实现。良好的模块化设计,可以很容易地进行软件模块的裁减和更新。
        (2)在软件体系结构上,可以在操作系统和应用软件之间引入一个虚拟机层,或者叫操作系统抽象层,把一些通用的、共性的操作系统API接口函数封装起来。在编写一个应用程序时,不是直接去调用实际操作系统的API,而是使用虚拟层所提供的API。这样,在移植这个应用程序的时候,只要针对新的操作系统平台,去实现这个虚拟层即可,其他的代码不用做任何的修改。在定义这个虚拟层时,要综合考虑现有的各种嵌入式操作系统的功能和特性,尽量采用标准的操作系统接口,如POSIX标准。
        (3)在功能服务的调用上,要尽量使用可移植的函数,如标准的C语言函数,或自己编写的函数。尽量不要使用依赖于特定操作系统的API函数。
        (4)在数据类型上,由于C语言的数据类型与机器的字长和编译器有关,因此可以用宏定义的方式来定义一组可移植的数据类型,然后在应用程序的内部,只使用这些数据类型,而不使用C语言的数据类型。例如,可以用INT32U来表示无符号的32位整型数据。对于实际的编译器,可以定义为:
        
        (5)将不可移植的部分局域化。对于想进行软件移植的程序设计人员来说,如果应用软件的各个地方都散布着不可移植的代码,就必须从软件中一一找出它们,然后修改。这将是一件非常费时又费力的事情,而且这种修改也容易导致新的问题。为了提高移植的效率,可以把不可移植的代码通过宏定义和函数的形式,分类集中于某几个特定的文件之中。这样,对不可移植代码的使用,就可转换成对函数和宏定义的使用。在以后的移植过程中,既有利于迅速地对需要修改的代码进行定位,又可方便地进行修改。
        (6)提高代码的可重用性。在进行嵌入式软件开发时,要有意识地提高代码的可重用性,不断积累可重用的软件资源。例如,可以更好地抽象软件的函数,使之更加模块化,功能更专一,接口更简洁明了。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2015年下半年
   嵌入式系统设计..
   上午试卷 综合知识
第34题
选择题
下列做法中不利于嵌入式应用软件移植的是(34)。

37%
   2014年下半年
   嵌入式系统设计..
   上午试卷 综合知识
第34题
选择题
下列做法中不利于嵌入式应用软件移植的是(34)。

38%
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有