论文部分内容阅读
随着信息技术与网络技术的高速发展,嵌入式系统正越来越广泛地应用于科学研究、军事技术、工程设计、计算机、通信、消费类电子等方面。嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件均可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。采用Linux进行嵌入式开发要面对的问题主要有两个:首先是操作系统的改造,裁减内核或是直接改写Linux的内存管理、进程调度机制,其次就是设备驱动程序的设计开发。本文的研究重点为Linux设备驱动程序的设计。文章主体分为以下部分:首先,从介绍嵌入式Linux系统的体系结构及其核心入手。详细研究了基于X-scale内核PXA255硬件平台的交叉编译环境的建立以及Linux中断处理机制,在此基础上,对此平台上嵌入式Linux的操作系统的移植技术,包括启动代码(Bootloader)的移植、嵌入式Linux的内核移植等进行了研究,给出了移植的具体步骤。其次,分析了设备驱动程序的设计原理、设计方法——模块化的概念以及编写、编译、调试。从程序结构角度而言,驱动程序是子程序和数据的集合,是输入输出设备的软件接口,它的任务就是向系统提供接口函数,所以简单的说编写驱动程序就是实现这接口函数。驱动程序分三类:字符设备、块设备、网络设备,文章详细分析了Linux设备驱动程序的设计并编程加以实现。通过对外部设备驱动程序的分析,本文设计了字符设备驱动程序模型和块设备驱动程序模型。这两个模型完成了驱动程序中与内核相关的几乎所有事务,包括设备的注册和注销、设备的打开和关闭及读写等系统调用的统一接口、数据从内核内存传送到用户内存的方法等。对内存的使用和设备的访问方式,本文也作了详细的说明。有了以上的基础,开发者只需再熟悉外部设备的使用方法和数据格式等硬件信息,一个完整的驱动程序就很容易写成了。模型中还加入了一定的安全措施以保证它的可靠性。