无操作系统的软件移植
考试要求: 掌握     
知识路径:  > 嵌入式系统软件基础知识  > 嵌入式系统程序设计  > 嵌入式应用软件移植  > 无操作系统的软件移植


 
       如果在一个嵌入式系统中,软件的开发是直接在硬件平台的基础上进行的,没有使用操作系统。那么当处理器等硬件设备发生变化时,需要把原有的应用软件移植到新的硬件平台上运行。一般来说,对于这一类的嵌入式系统,它们的应用软件通常都比较简单,软件的代码量不是很大。在移植的时候,如果编程语言使用的是与处理器密切相关的汇编语言,那么移植将会变得非常困难,甚至是不可能的。此时的移植类似于重新开发,当然在数据结构和算法的层面上还是可以重用的,这里不考虑这种情形。
       如果软件大部分是用C语言开发的,那么可以考虑移植问题。一个好的程序设计应该是模块化和层次化的,而C语言的最大优点是可移植性比较好。
       基于层次化的嵌入式应用软件通常设计成下图所示的结构,其中,软件可分为两层结构,I/O模块属于设备驱动程序层,它以嵌入式硬件为运行平台,实现了各种I/O设备的输入/输出功能,并向上层的应用软件提供相应的I/O接口函数API,如控制功能、数据读写等。这些接口函数被设计成与硬件无关的,因此在移植系统时,只需要重新编写与处理器有关的I/O模块即可,不需要修改该模块的API。移植的工作量主要体现在I/O的编码工作上。
       
       基于模块化的嵌入式软件结构
       可以对上述软件结构作进一步的细化设计,如下图所示。在这种体系结构中,在处理器的硬件层之上添加了一个硬件抽象层,这层软件把不同类型的硬件进行了封装和抽象。对于I/O模块,它不再是直接面对处理器硬件,而是基于硬件抽象层。也就是说,它被设计为与硬件无关的。这样的3层软件结构的优点是需要移植的代码进一步减少,移植的工作量也进一步减少。
       
       具有硬件抽象层的软件结构
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

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