摘要
嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。随着计算机技术的迅速发展,嵌入式系统成为当前IT产业的焦点之一,呈现了巨大的市场需求。大量的嵌入式应用对基于嵌入式设备的开发实现提出了更高的要求,传统的直接面向嵌入式设备硬件的开发方式已经成为嵌入式应用开发的瓶颈。
ARM体系的微处理器由于其突出的性能特点,近年来已经在嵌入式应用领域确立了市场和技术的领先地位。uClinux就是从Linux衍生出来的一种操作系统,支持众多类型的嵌入式处理器。本论文对基于嵌入式操作系统的嵌入式设备应用开发方式进行了深入的研究,重点研究了嵌入式设备的硬件驱动开发。
本文分三个阶段来阐述如何基于嵌入式操作系统来开发嵌入式设备的应用。在介绍了本课题的软硬件平台基础之后,本文对移植bootloader和嵌入式操作系统进行研究,并重点讲述如何将Blob和uClinux操作系统移植到本文的研究平台S3CEV40上。接着,本文以移植了uClinux内核的S3CEV40平台为研究对象,详细探讨了如何为这款嵌入式设备设计驱动程序,以及如何将驱动程序安装进uClinux内核,从而完善uClinux内核对S3CEV40平台的控制。最后,本文说明了,在uClinux操作系统中,如何通过系统内核调用驱动程序来完成对硬件设备的操作。
The embedded system is a specific computer system that focuses on the application on the base of computer technology including both software and hardware, and is qualified with the rigid requirement of application system about function, reliability, cost, size and power consumption. With the swift development of the technology of the computer, the embedded system becomes one of the focuses of IT industry. The enormous market of embedded system has appeared. At the same time, the large amount of embedded application puts forward high demand to the realization of the development based of embedded system. The traditional development way becomes the bottleneck already.
In recent years, ARM has already established the leading position in market and technology on the embedded application because of its outstanding performance. uClinux is a kind of operating system derived from Linux, and supports many embedded processors. This paper has done deep research in embedded device application and development based on embedded OS. The focus of is the driver development of embedded device.
This paper consists of three parts. After introducing the software and hardware platform of the project, this paper carries on researching in porting bootloader and embedded OS, especially how to port Blob and uClinux to platform S3CEV40. Then, this paper discusses how to design and realize audio driver for the embedded hardware, and install it into uClinux kernel to control platform S3CEV40. Finally, this paper explains how to control the device with its driver by uClinux.
引文
[1]李岩,荣盘祥等.基于S3C44BOX嵌入式uClinux系统原理及应用.北京:清华大学出版社 2005
[2]陈莉君.Linux操作系统内核分析.北京:人民邮电出版社2000
[3]毛德操,胡希明.嵌入式系统.浙江:浙江大学出版社2003
[4]李善平,刘文锋,王焕龙.Linux与嵌入式系统.北京:清华大学出版社2000
[5]马忠梅,马广云,徐英慧,田泽.嵌入式处理器结构与应用基础.北京:北京航空航天大学出版社 2002
[6]胥静.嵌入式系统设计与开发实例详解.北京:北京航空航大出版社 2005
[7]皱思秩主编.嵌入式Linux设计与应用.北京:清华大学出版社2002
[8]Jean J.Labrosse,邵贝贝译.uC/OS Ⅱ--源代码公开的实时嵌入式操作系统.北京:中国电力出版社 2001
[9]周立功等.ARM控制器基础与实践.北京:北京航天航空大学出版社2004
[10]杜春雷.ARM体系结构与编程.北京:清华大学出版社2003
[11]谭浩强.C程序设计.北京:清华大学出版社2000
[12]深圳市英蓓特信息技术有限公司.ARM7 uClinux实验指导书
[13]S3CEV4OUser's ManualV2.1_cn.pdf,http://www.embestinfo.com
[14]um_s3c44bOx,pdf,http://www.samsung.com
[15]S3CEV40 Schematic.pdf,http://www.embestinfo.com
[16]UDA1341TS.pdf
[17]ARM Limited,ARM Instruction Set Quick Reference Card
[18]ARM Limited,THUMB Instruction Set Quick Reference Card
[19]ARM Limited,ARM ELF Specification
[20]ARM Limited,ARMTDMI Technical Reference Manual
[21]ARM Limited,ARM Architectueral Reference Manual
[22]http://www.gnu.org
[23]http://www.linuxdoc.com
[24]http://www.uclinux.org
[35]http://www.zlgmcu.com
[26]http://www.ppckernel.org
[27]http://www.xtij.org/ppc/
[28]http://www.arm.com/
[29]http://www.trolltech.com/products/embedded
[30]http://www.uClinux.org
[31]W.Richard Stevens著,尤晋元等译.UNIX环境高级编程(第二版).北京:人民邮电出版社 2005
[32]David A.Rusling等著,朱柯等译.Linux编程白皮书.北京:机械工业出版社
[33]Robert Love.Linux Kenrel Development
[34]Frank Vahid Tony Givargis著,骆丽译.嵌入式系统设计.北京:北京航空航大出版社.2000
[35]Alessandro Rubini&Jonathan Corbet.Linux Device Drivers
[36]Daniel P.Bovct&Marco Cesati.Understanding the Linux Kernel
[37]W.Richard Stevens,Advanced Programming in the UNIX Environment
[38]Steve Furber著,田泽,于敦山,盛世敏等译.ARM SOC体系结构.北京:北京航空航天大学出版社 2002
[39]John Goerzen著,魏永明,耿岳,游云华等译,Linux编程宝典.北京:电子工业出版社 2000
[40]Ed Sutter.张晓林等译.嵌入式系统固件揭秘.北京:电子工业出版社,2003