(带程序 页数:27字数:10849)摘 要: Linux是开放源代码的操作系统,由于其具有高效稳定、执行速度快,实现了真正的多任务、多用户环境,强大的网络功能,较好的可裁减性与移植性等特点,在嵌入式系统领域中获得了广泛应用。对于嵌入式产品来说,工作状态指示灯、输入设备、显示部件等与用户交互的设备是否能正常工作,往往是产品在市场竞争中存活甚至成功的重要因素。在采用Linux的嵌入式产品中,这些设备都被认为是字符设备,所以基于嵌入式Linux操作系统字符设备的驱动开发就尤其重要。 本文首先介绍了嵌入式Linux操作系统的特点,设备驱动程序的概念;其次阐述了基于Linux下字符设备驱动程序的开发方法及过程;最后简述了基于S3C2410处理器目标板字符设备驱动程序的开发及实现的实例。
关键词: 嵌入式Linux;字符设备;设备驱动程序;S3C2410处理器
The Development of Character Device Driver Based on Embedded Linux Abstract Linux is an open source operating system. Linux is highly efficient and stable, the better one that can be trimmed and transplanted, and for its fast implementation, the true multi-tasking, multi-user environment, the strong network function, it is making a extensive application in the areas of embedded systems. If embedded products' component such as work status indicator, importing, showing components make the interaction with users is regular, the products survive properly in the market full with competition, and even help it be a success. In the embedded system products with the adoption of Linux such component is considered to be character devices, so character device driver's development based on embedded Linux is particularly important. The feature of embedded Linux and the conception of drive program of device are introduced. And there is an Elaboration about the development way and processing of drive program of character device based on embedded Linux. In the end there is an example about character device drive program based on S3C2410 processor is introduced. Key words: Embedded Linux; character device; device driver program; S3C2410 processor
1 引 言 1 2 嵌入式LINUX介绍 1 2.1 嵌入式系统是什么 1 2.2 嵌入式系统的发展 1 2.3 嵌入式LINUX操作系统的崛起 2 2.4硬件平台介绍 3 3 LINUX设备驱动概述 3 3.1 LINUX设备分类 3 3.2 LINUX驱动文件特性 3 3.3 LINUX不同的设备驱动的共性 4 3.4 LINUX驱动作用 5 3.5 LINUX驱动主要部分 5 4 编写一个字符设备程序 5 4.1字符设备 5 4.2重要数据结构 6 4.3建立设备 7 4.4模块编译 8 4.5功能函数 8 4.5.1硬件处理 8 4.5.2控制函数ioctl 9 4.5.3 open/release方法 10 4.6宏和头文件 10 4.6.1两个宏 10 4.6.2头文件 11 4.7 MAKEFILE 12 4.8小结 12 5 裁减内核 13 5.1交叉编译 13 5.2建立交叉编译环境 13 5.3安装ARM LINUX内核 14 5.4 小结 16 6下载内核 16 6.1下载BOOTLOADER 16 6.2 FTP ROOT 18 6.3 用FLASHFXP下载 18 6.4下载模块 20 6.4.1添加驱动模块 20 6.4.2 编辑rc文件 20 6.5 编写测试程序 21 6.6小结 22 结 论 22 参考文献 23
1 引 言 后PC时代是一个新的概念,有不少专家、学者认为当前已进入后PC时代。所谓后PC时代是指计算机无所不在的时代,它渗透到我们工作和生活的方方面面。当然,这样的无所不在的计算机也绝不都是像今天的PC机一样摆在桌面上或放在书包里,后PC时代的绝大多数计算机是以非PC机的形式出现。例如作为随身物品出现的移动电话、遥控开关、电子戒指、电子手杖等;再例如作为家庭网络组成部分的电视机、电冰箱、空调等等。这些设备的核心部分都有计算机,但大多是以嵌入式系统的形式存在,而不是以整机的形式出现。所以,我们也可以说后PC时代就是嵌入式的时代。 2 嵌入式Linux介绍 2.1 嵌入式系统是什么 嵌入式系统(Embedded Systems)可以定义为:以应用为中心的,以计算机技术为基础,软件、硬件可裁剪,适应于应用系统,对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统[1]。但这个定义不好把握,我们可以从软件角度简单直观的根据下面几个特征来判断一个系统是嵌入式系统。 (1)嵌入式系统应用程序的操作接口只对程序有效,而非仅对键盘和显示器; (2)越来越多的嵌入式系统都要求它的系统软件有高实时性和多任务功能,即要求有实时多任务操作系统(Real Time multi-tasking Operating System)的支持; (3)要求系统软件的高效性、健壮性; (4)嵌入式系统的软件一般都是固化在存储器芯片或单片机本身,而不是存储在磁盘中,即嵌入式系统没有磁盘[2]。 2.2 嵌入式系统的发展 嵌入式系统的商品化还是从七十年代后期开始的[2],最初的嵌入式系统是用汇编语言编写的,只能用于特定的处理器,对硬件的依赖性很强,许多系统根本没有操作系统,只有循环控制。对于一些简单设备,这些程序已经足够,可是随着Internet的普及与发展,进入了后PC时代,嵌入式系统的应用进入了一个全新的时期,更多的嵌入式系统需要图形显示功能,可能还会需要与各类网络联接,这时仅仅用简单的循环控制就不够用了,必须使用操作系统。 自从Unix采用C语言编写后,现在普遍的操作系统都采用C进行编写了,操作系统的编写时间大大缩短,系统的稳定性和可移植性也有了很大的提高,这为嵌入式操作系统的开发提供了方便的条件。目前嵌入式操作系统的应用已从计算机外设控制,工业控制开始渗透到信息家电,电子商务以及军事装备的各个领域。与我们日常生活密切相关的掌上电脑、手机等都要采用嵌入式操作系统。利用嵌入式软件,我们可以用手持计算机或移动电话收发电子邮件,利用Web TV访问Internet,用Web Phone拨打国际长途电话。嵌入式系统采用嵌入式操作系统作为系统软件,势在必行。图2.1是嵌入式Linux界面。
|