首页 > 知识点讲解
       有操作系统的软件移植
知识路径: > 嵌入式系统软件基础知识 > 嵌入式系统程序设计 > 嵌入式应用软件移植 > 有操作系统的软件移植 > 
相关知识点:2个      
        这里讨论的有操作系统的软件移植,是指把操作系统和应用软件作为一个整体,移植到一个新的嵌入式硬件平台上。
        嵌入式软件的体系结构可分为四个层次,即设备驱动层、操作系统层、中间件层和应用软件层。当需要把一个嵌入式软件系统整体移植到一个新的硬件平台时,真正需要移植的是与硬件直接打交道的部分,包括设备驱动层的软件和操作系统当中的部分代码。而其他的软件,如操作系统内核、中间件和应用软件,不用做任何修改。当然,在有些嵌入式操作系统中,如单体结构的操作系统,把设备驱动层的软件也集成在系统内核中,这时就要把相应的软件摘取出来进行修改。总之,在系统移植时,真正需要移植的主要是:引导加载程序BootLoader、设备驱动程序以及操作系统中与处理器密切相关的代码。
        为提高可移植性,BootLoader的实现一般分为stage1和stage2两大部分。依赖于CPU体系结构的代码,如设备初始化代码等,通常都放在stage1中,用汇编语言来实现。而stage2则采用C语言来实现。在移植时,主要的工作量在stage1的移植,基本上要重新编写。
        一般来说,一个嵌入式操作系统在设计的时候,就已经充分考虑了可移植性,所以它的移植相对来说是比较容易的。以μC/OS-Ⅱ为例,为了方便移植,μC/OS-Ⅱ的大部分代码都是用标准的C语言编写的,不需要改动。只有少部分代码,尤其是那些与CPU寄存器打交道的代码,需要针对具体的CPU类型进行修改,这些代码一般都是用汇编语言来写的。
        如下图所示,μC/OS-Ⅱ操作系统的代码被分为三大部分。第一部分是与处理器无关的代码,如任务管理、任务调度、存储管理、信号量、邮箱、消息队列等;第二部分与系统的配置有关,应用程序开发人员可以通过修改这些配置文件来裁剪内核,选择自己需要的系统服务;第三部分是与处理器相关的代码,包括三个文件:OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C。在移植μC/OS-II操作系统时,主要修改的就是这三个文件。
        
        μC/OS-II移植的示意图
        .OS_CPU.H:该文件包括三部分的内容,首先是一个符号常量,用来设定处理器的栈的增长方向;其次是3个宏定义,用来关闭和打开中断;最后是10个数据类型的定义,用来定义与编译器无关的数据类型。在操作系统内部,只使用这些数据类型,而不使用标准C的数据类型。
        .OS_CPU.ASM:用汇编语言编写OS_CPU.ASM文件中的四个与处理器相关的函数,包括任务切换、时钟中断服务程序等。
        .OS_CPU_C.C:用C语言编写OS_CPU_C.C文件中的十个与操作系统相关的函数,一般只需要改写其中的一个函数,即任务堆栈的初始化函数。
        根据目标处理器的不同,一个移植实例可能需要编写或改写50至300行的代码,需要的时间因人而异。
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

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


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

客服

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

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


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