摘要
当前,嵌入式系统已经广泛地应用到人们生活的各个领域。同时,随着嵌入式处理器性能的不断增强,特别是32位高性能嵌入式微处理器的广泛使用,嵌入式操作系统逐渐成为嵌入式系统中最重要的组成部分。而在各种嵌入式操作系统中,Linux凭借其代码公开,性能稳定,网络功能强大等多方面的优势,在嵌入式系统中被广泛地采用,得到了嵌入式系统设计者的普遍认可。研究Linux操作系统理论,进行嵌入式Linux系统的移植和应用程序的开发,具有重要的理论意义和现实意义。
研究课题以32位ARM架构的嵌入式处理器S3C2410A为硬件平台核心,系统地介绍了S3C2410A处理器和系统的硬件组成。在此基础上重点研究了嵌入式Linux系统的构建和移植,其中首先研究了基于Linux的嵌入式交叉开发环境的构建。之后详细地研究了系统引导程序的原理,分析了系统引导程序VIVI的结构并在此基础上实现了VIVI的移植。接下来论文研究了ARM Linux内核结构和启动引导过程,讨论了ARM Linux内核移植及配置编译的具体方法和过程。作为嵌入式Linux移植的另外一个重点,课题还详细地研究了嵌入式Linux根文件系统的结构、根文件系统内容的构建以及如何为嵌入式系统进行多文件系统的选择。在完成Linux内核与文件系统的移植后研究了嵌入式Linux驱动程序的原理,设计了S3C2410A微处理器扩展CAN总线接口,给出了ARM Linux上CAN设备驱动程序实现方法。课题最后还研究了嵌入式Linux系统下的图形用户界面,在分析国内外嵌入式GUI的特点和MiniGUI的技术优势基础上,介绍了为嵌入式Linux系统配置、编译和安装MiniGUI的方法,而且以一个状态显示界面程序为实例介绍了MiniGUI程序的设计方法。
Presently, embedded systems are widely applied in almost all fields. Meanwhile, with the unceasing enhancement performance of the embedded processor, especially the wide use of the 32 bits microprocessor, embedded operating systems gradually become the most important constituent of the embedded systems. In all kinds of embedded operating systems, Linux has the advantage of open source, good performance, and strong capacity of network supporting, so it has been widely used in embedded systems and accepted by the embedded system designers. It is of great theoretical and practical significance to study the theory of Linux operating system, to port the embedded Linux system and to develop the application procedure.
The S3C2410A CPU and the structure of the system hardware platform are firstly introduced in this paper. Based on this, the research of this paper is to build an embedded Linux system and port it into the target hardware platform. Firstly, this paper describes how to establish the cross compiling environment. After the research of the work principle of the embedded boot loader and the analyses of the structure of VTVI, VIVI has been ported into the target hardware platform. Based on the analyses of the structure of Linux kernel, the methods of kernel porting and configuration are discussed. Then the building of the content of the Linux root filesystem and the selection of multiple type filesystem are introduced. After finishing porting the Linux kernel and file systems, this paper also researches the theory of Linux device driver, introduces the methods of expanding CAN bus device on S3C2410A and presents the implementation of the CAN device driver. Finally, based on the introduction of the technique advantage of MiniGUI, this paper studies the configuration, compilation and installation of MiniGUI in an embedded Linux system.
引文
[1] 李善平等.Linux与嵌入式系统[M].北京:清华大学出版社,2002:126-131.
[2] Jonathan Corbet, Alessandro Rubin&Greg Kroah-Hartman, Linux Device Drivers, Third Edition[M], O'Reilly, 2005.
[3] Karim Yaghmour. Building Embedded Linux Systems[M]. O'Reilly, 2003.
[4] 陈雷,钟书毅译.嵌入式Linux-硬件、软件与接口[M].电子工业出版社,2003.
[5] 邹思轶.嵌入式Linux设计和应用[M],清华大学出版社,2002.
[6] 毛德操,胡希明.Linux内核源代码情景分析[M].浙江大学出版社,2001.
[7] 毛德操,胡希明.嵌入式系统[M].浙江大学出版社,2003.
[8] 刘峥嵘,张智超等.嵌入式Linux应用开发详解[M].机械工业出版社,2004.
[9] 王学龙.嵌入式Linux系统设计与应用[M].清华大学出版社,2001.
[10] 杜春雷.ARM体系结构与编程[M].清华大学出版社,2003.
[11] ARM Limited. ARM920T Technical Reference Manual. ARM Limited 2001.
[12] 北京飞漫软件技术有限公司MiniGUI技术白皮书.
[13] 北京飞漫软件技术有限公司MiniGUI用户手册.
[14] 北京飞漫软件技术有限公司MiniGUI编程指南.
[15] 魏永明,骆刚译.Linux设备驱动程序(第二版).中国电力出版社2002.
[16] 詹荣开.嵌入式Boot Loader技术内幕.http://www.ibm.com/developerworks/cn/linux/1-btloader/index.html
[17] 刘军芳,李众立,胡和智.基于s3c2410开发板的Boot Loader的启动分析[J].《微计算机信息》(嵌入式与SOC).2006,22(6-2):201~203.
[18] 陶雪丽,李宝方,徐海.具有网络和双启动功能的S3C2410 Boot Loader的实现[J].河南机电高等专科学校学报.2005,13(6):33~34.
[19] Rusty Russell, Daniel Quinlan&Christopher Yeoh. Filesystem Hierarchy Standard v2.3[J]. Filesystem Hierarchy Standard Group, 2004.
[20] Russell King. Kernel Memory Layout on ARM Linux. http://www.arm.linux.org.uk/developer.2003
[21] BOSCH. CAN Specification (version 2.0).1991
[22] SAMSUNG. S3C2410A USER'S MANUAL, 2003.
[23] MICROCHIP. MCP2510 DATASHEET,2004.
[24] 董士海.用户界面的今天和明天[J].计算机世界.1997,(7):26~28.
[25] 金西,黄汪.嵌入式Linux技术及其应用[J].计算机应用.2005,20(7):40~42。
[26] 张海峰,张宏海,张土平.嵌入式Linux系统[J].微计算机信息(测控自动化).2004,20(1):65~66.
[27] 杨波,徐成,李仁发.嵌入式Linux上的CAN设备驱动程序的设计[J].科学技术与工程,2004.4(12):1021~1022.
[28] 杨伟,段晓峰等.嵌入式网关中CAN接口的设计与实现[J].仪器仪表用户,2005.12(6):137~138.
[29] 田志刚.嵌入式Linux及其应用研究[J].微计算机应用.2003,24(5):289~295.
[30] 王集森,刘昊,胡晨.嵌入式Linux中多文件系统的构建[J].单片机与嵌入式系统应用.2003,(12):12~14.
[31] 王梅.Linux系统对多种文件系统支持的探讨[J].湖南工程学院学报2003.(4):75~77.
[32] 郭其一,丁豪杰,邹洁.基于MiniGUI的列车状态信息人性化平台实现[J].工业控制计算机.2004,17(3):1~2.
[33] 潘明泉,张侃谕.嵌入式Linux下基于MiniGUI的信息终端软件开发[J].单片机与嵌入式系统应用.2003,(1):29~33.
[34] 黑新宏,崔杜武,常斌.基于MiniGUI的客户端PDA的研究及开发[J].计算机应用.2003,23(4):75~77.
[35] 杨大鹏,汪小燕,连晓平.嵌入式Linux下基于MiniGUI的多媒体实验系统的软件实现[J].科技资讯.2006,(3):34~35.
[36] 陈剑雄,林述温,倪霞林.MiniGUI在数控系统图形界面中的应用[J].工具技术.2006,40(6):42~46.
[37] 纪竞舟,付宇卓.基于ARM LINUX的嵌入式GUI的研究和移植[J].计算机仿真.2004,22(3):224~227.
[38] 李明.ARM Linux的移植过程及分析[J].电子设计应用.2003,(7):55~57
[39] Liu Junliang, Pan Gang, Li Ping. Embedded Linux Graphie Terminal Design Based On ARM. Proceedings of the 25th Chinese Control Conference. Aug. 2006 Page(s): 1921~1925.
[40] Lennon. Embedding Linux. IEE Review. Volume 47, Issue 3, May 2001 Page(s): 33~37.
[41] http://kegel.com/crosstool/current/doc/crosstool-howto.html
[42] ARM Limited. ARM Architecture Reference Manual. ARM Limited 2000.
[43] 张静,叶梧,冯穗力.基于ARM920T的嵌入式Linux系统开发[J].现代电子技术.2005,(4):22~24.
[44] 周国华,陆德波,朱荆洲.基于Linux的嵌入式应用开发策略[J].计算机与数字工程.2005,(3):42~45.
[45] 赵志显.基于Linux的嵌入式系统设计[J].大众科技.2005,(11):108~110.
[46] 张盛,曾鹏.嵌入式Linux在移动设备中的应用[J].中国数据通信.2004,(3):41~44.
[47] 刘殿敏,李科杰.基于PXA250和Linux嵌入式系统在机器人遥操作中的设计与实现[J].计算机系统应用.2004,(5):44~47
[48] 陈珏.基于嵌入式Linux系统的应用程序开发[J].福建电脑.2004,(6):64.
[49] 霍妍,孟凡荣.基于Linux嵌入式系统的研究与实现[J].计算机系统应用.2004,(8):4~6.
[50] 程旭.嵌入式Linux技术探讨[J].混合微电子技术.2005,(2):43~47.
[51] 宁志新,温建春,李海军.嵌入式Linux关键技术研究[J].齐齐哈尔大学学报.2004,20(3):63~65.