《1222.ARM嵌入式系统中MiniGUI的研究和实验开发.doc》由会员分享,可在线阅读,更多相关《1222.ARM嵌入式系统中MiniGUI的研究和实验开发.doc(66页珍藏版)》请在三一办公上搜索。
1、毕业设计题 目 ARM嵌入式系统中MiniGUI的 研究和实验开发学 院 控制科学与工程学院专 业 自动化姓 名 学 号 指导教师 二OO八年六月十三日摘 要MiniGUI是一个专门面向嵌入式系统的图形用户界面支持系统,它主要具有体积小、易维护、通用性强等优点。在软件系统上,它介于内核和应用程序之间,现在己经发展成为了一个比较成熟的跨操作系统的嵌入式图形支持系统。目前MiniGUI主要应用于医疗器械的嵌入式GUI、个人娱乐终端、通信产品界面以及农业灌溉系统等一些广泛需要嵌入式GUI技术的领域。本文从实验的角度出发详细介绍了CLinux及MiniGUI在S3C44B0X上的移植,并在移植之前介绍
2、了ARM、Linux及MiniGUI的部分相关内容,最后通过编写一个游戏程序说明了MiniGUI下程序的特点及其基本组成。本文为实验室的嵌入式系统的开发提供了参考,有助于实验教学。关键词:嵌入式系统;S3C44B0X;CLinux;MiniGUIABSTRACTMiniGUI is a graphical user interface supporting sysem that faces specially to the embedded system.It has advantages in its small, currently used and easily maintaintion
3、.MiniGUI lies between the kernel and the application programs of softwae system.Now it has already been developed into a riper embedded graphical supporting system which crosses defferent operation systems.At present,MiniGUI is mainly applied to fields that need embedded GUI technologies eagerly,for
4、 instance,medical equipment with embedded GUI,personal entertainment terminals,communication products and irrigation system for agriculture.This article gave the method and steps of porting CLinux and MiniGUI to S3C44B0X from the point of experiment,and before porting it has introduced some knowledg
5、e of ARM,Linux and MiniGUI.At last a simple game is provided in orde to show the features of programmming in MiniGUI and the programs construction.This article has provided the reference for the development of embedded system in the laboratory and this will be helpful to the next experimental techin
6、g.Keywords: embeded system; S3C44B0X; CLinux; MiniGUI目 录摘 要1ABSTRACT2目 录31.绪论51.1课题背景和研究意义51.2 本论文所做的工作52.嵌入式系统72.1 嵌入式系统的定义72.2 嵌入式系统的结构82.2.1 嵌入式系统硬件平台82.2.2嵌入式操作系统83.硬件平台概述103.1 ARM简介103.1.1 ARM的体系结构103.1.2 ARM处理器核103.2 S3C44B0X简介113.3 EL-ARM-830实验箱简介124.软件平台概述144.1 嵌入式操作系统概述144.2 嵌入式Linux简介144.3
7、 CLinux简介154.4 CLinux源代码的组成165.MiniGUI185.1 嵌入式GUI的地位及特殊要求185.2 MiniGUI的定义185.3 MiniGUI的技术特点195.4 MiniGUI 的技术优势205.5 MiniGUI 的软件架构215.5.1 基于 MiniGUI 的嵌入式系统结构215.5.2 MiniGUI 运行模式225.5.3 窗口系统225.5.4 字体235.5.5 输入设备的支持235.5.6 输入法236.移植步骤246.1 说明246.2 BootLoader的移植246.3 CLinux的移植256.3.1 建立交叉编译环境256.3.2安装
8、CLinux的源代码并做修改266.3.3 编译内核276.3.4 在开发板上运行CLinux286.4 移植MiniGUI296.4.1 添加键盘驱动296.4.2 添加LCD驱动326.4.3开启CLinux的FrameBuffer驱动336.4.4 GAL与IAL的移植356.4.5移植MiniGUI366.4.6 CLinux中添加MiniGUI程序387.MiniGUI编程407.1 MiniGUI编程基础407.2示例程序简介418.总 结44参考文献45致 谢46附 录471.绪论1.1课题背景和研究意义随着半导体技术和信息技术的飞速发展,各式各样的嵌入式系统产品已经渗入到人们生
9、活中的每一个角落,小到手机、MP3、MP4、数码相机和智能电饭煲等产品,大到汽车、数控机床、导弹和火箭等产品。嵌入式系统的应用更是涉及到电信、信息家电、工业控制、网络、金融、航空航天和军事等各个领域,以致于一些学者断言嵌入式系统技术将成为PC时代的主宰。 嵌入式系统由硬件和软件两大部分组成。硬件方面的主要核心是嵌入式处理器。目前各种嵌入式处理器下朝着低功耗、高性能、高可靠性、低成本的方向发展,而32位RISC(精简指令集计算机)处理器以独有的优势逐渐占领了中、高端嵌入式应用市场,以ARM为核的处理器就是其中的佼佼者。软件方面一股上嵌入式操作系统(不是必须的,根据实际情况选用)和应用软件组成,根
10、据目标产品需求可能要用到图形界面(GUI)、文件系统(FS)、网络(TCP/IP协议栈)等软件功能。常见的嵌入式操作系统有嵌入式Linux、CLinux、Windows CE、T-Kernel(TRON)、eCos、VxWorks和uC/OS-II等。由于Linux、CLinux具有开放源代码、免授权费和资源丰富等特点,越来越博得嵌入式产品开发者的青睐。GUI为Graphics User Interface的缩写,即图形用户界面。这是用于提高人机交互友好性、易操作性的计算机程序,建立在计算机图形学基础上的产物。图形用户界面是当今计算机技术的重大成就之一,它极大地方便了非专业用户的使用,可通过窗
11、口、菜单方便地操作计算机(包括嵌入式产品)。随着嵌入式系统的日益发展和32位嵌入式处理器以及图形显示设备的广泛应用,目标产品对GUI的需求越来越多。只要是面向人机交互的嵌入式产品,就涉及文字或者的输出问题。以手机为例,操作界面、游戏、彩信以及即将来临的3G应用,都需要功能完备的GUI的支持。由于嵌入式系统的资源有限,所以对GUI的要求是可裁剪的、高速的。以前,大多数嵌入式系统产品(尤其是不使用嵌入式操作系统的)将GUI部分软件融合到整个应用程序中,使用比较简单的手法实现GUI。这样做不利于系统的扩展和移植,代码复用率不高。现在,可以选用合适的嵌入式操作系统和嵌入式图形用户界面(GUI)系统,然
12、后为输入/输出设备设计好驱动程序,即可使用GUI的函数库进行窗口界面的设计。目前较为流行的嵌入式GUI有MicroWindows、QT/Embedded、MiniGUI和OpenGUI等。本文通过移植MiniGUI到S3C44B0X开发板,旨在为那些从事嵌入式GUI移植工作的同学提供参考,并为以后的嵌入式实验教学提供一些帮助。1.2 本论文所做的工作在学习ARM7TDMI和研究嵌入式CLinux操作系统的理论基础之上,本文先是完成了CLinux操作系统到S3C44B0X的移植,之后又完成了MiniGUI到CLinux的移植,并在目标板上成功的运行了MiniGUI应用程序。本论文主要做了以下工作
13、:1. 简要介绍了嵌入式系统的概念及其组成;2. 介绍了嵌入式开发的硬件系统ARM7TDMI、以ARM7TDMI为核心的S3C44B0X芯片和实验中用到的具体开发板;3. 介绍了嵌入式操作系统以及CLinux的特点及其应用;4. 详细介绍了MiniGUI,包括其技术特点及软件架构等;5. 深入细致地讲解了CLinux移植到开发板上和MiniGUI移植到CLinux上的步骤,是全文的重点;6. 以一个由本人编写的游戏程序为例,说明了MiniGUI下程序的特点及程序的组成框架;7. 对本论文进行了整体的总结。2.嵌入式系统2.1 嵌入式系统的定义嵌入式系统是一种应用范围非常广泛的系统。可以说除了桌
14、面计算机和服务器外所有计算设备都属于嵌入式系统,例如从便携式音乐播放器到航天飞机上的实时系统控制都属于嵌入式系统2。大多数商用的嵌入式系统都设计成专用任务的低成本的产品。大多数的嵌入式系统都具有实时性的要求。有些功能需要非常快的主频,但其他大多数功能并不需要高速的处理能力。这些系统通过特定的器件和软件来满足性的要求。简单地通过速度和成本来定义嵌入式系统是困难的,但对于在批量产品而言,成本常常对系统设计起决定作用。通常,一个嵌入式系统的很多部分相对系统主要功能来说需要较低的性能,因此嵌入式系统和通用PC相比,能够使用一个满足辅助功能的合适的CPU,从而简化了系统设计,降低了成本。例如,数字电视的
15、机顶盒需要处理每秒以百万兆位的连续数据,但这些数据处理大部分是由定制的硬件来实现的,如解析、管理和编解码多个频道的数字影像。对于大批量生产的嵌入式系统,如便携式音乐播放器或手机等,降低成本就成为最主要的问题。这些系统通常只具有几个芯片:一个调度集成的CPU,一个定制的芯片用于控制其他所有的功能,还有一个存储芯片。在这种设计中,每部分都设计成使用最小的系统功耗。对于小批量的嵌入式应用,为了开发成本,常常使用PC体系结构,通过限制程序的执行时间或用一个实时操作系统来替换原先的操作系统。在这种情况下,可以使用一个或多个高性能的CPU来替换特殊用途的硬件。嵌入式系统的软件通常运行在有限的硬件资源上:没
16、有硬盘、操作系统、键盘或屏幕。软件一般都没有文件系统,如果有的话,也会采用Flash驱动器。如果有人机交互接口的话,也是一个小键盘或液晶显示器。硬件是计算机的物理部分,和存储在硬件中的计算机软件程序和数据区分开来。嵌入到机械中的嵌入式系统需要长期无故障连续运行,因此它的软件需要比PC软件更加仔细地开发和更加严格地测试。那么,到底什么是嵌入式系统呢?根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”(原文为devices used to control,monitor, or assisit the operation of equipm
17、ent,machinery or plants)。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。可以这样认为,嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数系统都是由单个程序实现整个控制逻辑。2.2
18、 嵌入式系统的结构一般来说,嵌入式系统由图2.1所示的3个部分组成。嵌入式系统硬件平台嵌入式操作系统嵌入式系统应用图2.1 嵌入式系统的组成如上图所示,嵌入式系统一般由3个部分组成:嵌入式系统硬件平台、嵌入式操作系统和嵌入式系统应用。其中嵌入式系统硬件平台为各种嵌入式硬件平台上运行的操作系统,目前比较主流的嵌入式操作系统有嵌入式Linux、CLinux、uC/OS-II等。具体应用哪种嵌入式操作系统应视具体情况而定。嵌入式Linux提供了完善的网络技术支持;CLinux是专门为没有MMU的ARM芯片开发的;uC/OS-II操作系统也成为实时操作系统或RTOS,使用它作为开发工具将使得实时应用程
19、序变得相对容易3。2.2.1 嵌入式系统硬件平台嵌入式系统硬件平台是整个嵌入式操作系统和应用程序运行的硬件平台,不同的应用通常有不同的硬件环境。在嵌入式系统中硬件平台具有多样性的特点。嵌入式系统的核心部件是各种类型的嵌入式处理器,目前据不完全统计,全世界嵌入式处理器的品种总量已经超过1000种,流行体系结构有三十几个系列,数据总线宽度从832们,处理速度从0.12000MIPS。按照功能和内部结构等因素可分成下面几类。(1)嵌入式RISC微处理器RISC(Reduced Instruction Set Computer)是精简指令集计算机,RISC把着眼点放在如何使计算机的结构更加简单和如何使
20、计算机的处理速度更加快速上。RISC选取了使用频率最高的简单指令,抛弃复杂指令,固定指令长度,减少指令格式和寻址方式,不用或少用微码控制。这些特点使得RISC非常适合嵌入式处理器。嵌入式微控制器将整个计算机系统或者一部分集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,以MIPS或ARM核为核心,在芯片内部集成ROM、RAM、内部总线、定时/计数器、WatchDog、I/O端口、串行口等各种必要的功能和外设。和嵌入式处理器相比,嵌入式微控制器的最大特点是单片化,实现同样功能时系统的体积大大减小。嵌入式微控制器的品种和数量较多,比较有代表性的通用系列包括Atmel公司AT91系列、
21、三星公司S3C系列,Intel公司PXA25x系列等。(2)嵌入式CISC处理器嵌入式微处理器的基础是通用计算机中的CPU在不同应用中将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的功能,这样可以大幅度减小系统体积和功耗。嵌入式微处理器目前主要有Intel公司x86系列、Motorola公司68000系列等。2.2.2嵌入式操作系统嵌入式操作系统完成系统初始化以及嵌入式应用的任务调度和控制等核心功能。具有内核较精简、可配置、与高层应用紧密关联等特点。嵌入式操作系统具有相对不变性。嵌入式操作系统具有以下特点。(1)体积小嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的
22、存储介质,而大多使用闪存(Flash Memory)作为存储介质。这就要求嵌入式操作系统只能运行在有限的内存中,不能使用虚拟内存,中断的使用也受到限制。因此,嵌入式操作系统必须结构紧凑,体积微小。(2)实时性大多数嵌入式系统都是实时系统,而且多是多任务系统,要求相应的嵌入式操作系统也必须是实时操作系统(RTOS)。实时操作系统作为操作系统的一个重要分支已成为研究的一个热点,主要探讨实时多任务调度算法和可调度性、死锁解除等问题。(3)特殊的开发调试环境提供完整的集成开发环境是每一个嵌入式系统开发人员所期待的。一个完整的嵌入式系统的集成开发环境一般需要提供的工具是编译/连接器、内核调试/跟踪器的集
23、成图形界面开发平台。其中的集成图形界面开发平台包括编辑器、调试器、软件仿真器和监视器等。3.硬件平台概述3.1 ARM简介ARM是Advanced RISC Machines 的缩写,是微处理器行业的一家知名企业,该企业设计了大量廉价、高性能、低功耗的RISC处理器、相关技术及软件。ARM公司的处理器具有性能高、成本低、和能耗小的特点,适用于多种领域,如嵌入控制、消费/教育类多媒体、DSP和移动式应用等4。ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。利用这种合作关系,ARM很快成为许多全球性RISC标准的缔造者。目前,共有
24、30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY 、PHILIPS和和国家半导体这样的大公司。至于软件系统的合作人,则包括微软、升阳和MRI等一系列知名公司。ARM架构是面向低市场设计的第一款RISC微处理器。3.1.1 ARM的体系结构ARM是精简指令集计算机(RISC),其设计实现了外型非常小但是性能高的结构。ARM处理器结构的简单使ARM的内核非常小,这样使器件的功耗也非常低。它集成了典型的RISC结构特性:1. 一个大而统一的寄存器文件。2. 装载/保存结构,数据处理的操作只针对寄存器的内容,而不直接对存储器进行操作。3. 简
25、单的寻址模式,所有装载/的地址都只由寄存器内容和指令域决定。4. 统一和固定长度的指令域,简化了指令的译码。此外,ARM体系结构还提供:1. 每一条数据处理指令都对自述逻辑单元(ALU)和移位器控制,以实现对ALU和移位器的最大利用。2. 地址自动增加和自动减少的寻址模式,实现了程序循环的优化。3. 多寄存器装载和存储指令实现最大数据吞吐量。4. 所有指令的条件执行实现最快速的代码执行。这些在基本RISC结构上增强的特性使ARM处理器在高性能、低代码、低功耗和小的硅片尺寸方面取得良好的平衡。3.1.2 ARM处理器核ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而
26、ARM6核及更早的系列已经很罕见了,ARM7以后的核也不是都获得广泛应用。目前,应用比较多的是ARM7系列、ARM9系列、ARM9E系列、ARM10系列、SecurCore系列和Intel 的StrongARM、XScale系列。下面主要介绍本文用到的ARM7TDMI。ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核(并非芯片,ARM与其他部件如RAM、ROM、片内外设组合在一起才构成现实的芯片),具有广泛的应用 ,其中最显著的应用为数字移动电话。ARM7TDMI是从ARM6核发展而来的。ARM6核(在ARM体系结构中)最早实现了32位地址空间编程模式(早期的ARM为26位地址
27、),但现在已经被取代。ARM6所使用的电路技术使它很难在低于5V的电源电压下稳定工作。ARM7弥补了这一不足,且在短时间内增加了64位乘法指令(带M后缀)、支持片上调试(带D后缀)、高密度16位的Thumb指令机扩展(带T后缀)和EmbededICE观察点硬件(带I后缀),形成了ARM7TDMI。ARM7TDMI-S是ARM7TDMI的可综合(Synthesizable)版本(软核)。对应用工程师来说,除非芯片生产厂商对ARM7TDMI-S进行了裁剪,否则在逻辑上ARM7TDMI-S与ARM7TDMI没有太大区别,其编程模型与ARM7TDMI-S一致。ARM7TDMI处理器是ARM通用32位微
28、处理器家族的成员之一。ARM处理器具有优异的性能,但功耗却很低,使用门的数量也很少。ARM结构是基于精简指令集计算机原理而设计的。指令集和相关的高雄机制比复杂指令集计算机要简单得多。这样的简化实现了:1. 高的指令吞吐量;2. 出色的实时中断响应;3. 小的,高性价比的处理器宏单元。3.2 S3C44B0X简介Samsung公司的S3C44B0X是国内应用广泛的基于ARM7TDMI的SoC。该芯片片上功能强大,是Samsung公司为手持设备等应用提供的高性价比解决方案,现将S3C44B0X体系结构简述如下:5(1)系统管理器支持大/小端方式,由输入引脚ENDIAN逻辑电平值判断,0:小端,1:
29、大端,逻辑电平在复位期间由该管脚的上拉或下拉电阻确定。寻址空间分8个存储器bank,每个bank各32M字节(共256M字节),支持每bank可编程的8/16/32位数据总线宽度,7个bank具有固定的bank起始地址和可编程的bank大小,所有的存储器bank具有可编程的操作周期。8bank分别为:6个ROM,SRAM存储器bank;2个ROM/DRAM/SDRAM存储器bank。(2)Cache存储器和内部SRAMS3C44B0X内有一体化的8k字节cache,其采用LRU(近期最少使用)替换算法,如果有未用的cache空间,可以被用来作为内部SRAM存储空间使用。(3)时钟和电源管理CP
30、U采用低功耗设计,通过对片上PLL配置可以使微处理器工作时钟最大达到66MHz。同时还可以通过软件单独设计片上各功能模块的输入时钟。电源可以配置成四种模式,分别为:正常工作模式;慢速模式,这是指不加PLL的低时钟频率模式;空闲模式,只停止CPU的时钟;停止模式,停止所有的时钟,此时可以通过外部中断或RTC报警中断从停止模式唤醒。(4)中断控制器S3C44B0X有30个中断源(看门狗定时器,6个定时器,6个UART,8个外部中断,4个DMA,2个RTC,1个ADC,1个IIC,1个SIO)。采用向量化的IRQ中断模式以减少中断的延迟,可选的电平/边沿模式触发外部中断,支持FIQ为紧急的中断请求进
31、行服务。(5)定时器和PWM(脉宽调制)5通道16位具有PWM功能的定时器,1通道16位内部定时器(可进行基于DMA或中断的操作)。可编程的PWM占空比周期、频率。(6)RTC实时时钟RTC拥有充分的时钟特性:毫秒、秒、分钟、小时、日、星期、月、年。RTC采用32.768KHz时钟,可以产生定时警报,可用于唤醒CPU,可产生时钟节拍中断。(7)通用I/O口和UARTS3C44B0X有8个外部中断口和71个多功能输入/输出口。拥有2通道的UART,可进行基于DMA或中断的操作,支持5位、6位、7位或8位串行数据传输/接收,支持在发送/接收期间的握手功能,支持最高115.2Kbps,而且每个通道具
32、有2个内部32字节的FIFO分别用于输入和输出。(8)DMA(直接存储器操作)控制器2通道通用DMA控制器,不需要CPU干预。支持I/O到存储器、存储器到I/O、I/O到I/O的6种DMA请求。在同时发生的多个DMA之间具有可编程的优先级顺序,支持在外部设备到存储器和存储器到外部设备之间采用fly-by模式。(9)LCD控制器LCD控制器特点如下:支持彩色/黑白/灰度LCD屏;支持单路扫描和双路扫描;支持虚拟显示屏功能;系统存储器用来作为显示缓存;用专门的DMA来从系统存储器中获得图像数据;可编程的屏幕大小;16级灰度和最多支持256种颜色。(10)工作电压范围内核2.5V,I/O口电压范围3
33、.0V到3.6V。从上述介绍可以知道,应用S3C44B0X的嵌入式系统已经和传统的单片机嵌入式系统有了很大的差别。它拥有各种丰富的资源,足以支持我们在其上运行小型的嵌入式操作系统。在这种情况下我们应该将其视为一个小型的计算机系统,通过嵌入式操作系统的支持,可以比较容易的在上面开发各种应用。3.3 EL-ARM-830实验箱简介北京精仪达盛公司的EL-ARM-830属于一种综合的教学实验系统,系统采用实验底板加活动CPU的形式,采用了目前在国内普遍认同的ARM7TDMI 核,32位微处理器,实现了多模块的应用实验。实验箱资源丰富,可以做多种实验,现将在论文中用到的单元模块作简要介绍:6(1)AR
34、M7TDMI 核它是由Samsung Electronics Co.,Ltd 为手持设备设计的低功耗、高度集成的基于ARM7TDMI 核的微处理器, 采用精简指令系统(RISC)和三级流水线结构, 且具有丰富的内置部件,最高频率达66MHz。(2)线性flash 存储器单元该存储单元在板卡上标号为U9,选用2MB 字节的 SST39VF160,16 位数据总线,片选接NGCS0,CPU 分配给它的地址空间为0x000000000x001fffff,也就是S3C44BOCPU的bank0 区。启动代码部分则放在从0x00000000 开始的地址空间内。程序代码可以在里面执行。(3)同步动态存储器
35、单元该存储单元在板卡上标号为U10,U11。选用两片8MB字节的 HY57V641620,16 位数据总线。片选NSCS0 接U10单元,片选NSCS1接U11 单元CPU分配给U10单元的地址空间为0x0C0000000x0C7fffff,也就是S3C44BOCPU的bank6 区。CPU 分配给U11 单元的地址空间为0x0E0000000x0E7fffff,也就是S3C44BOCPU的bank7 区。(4)键盘数码管模块键盘接口是由芯片HD7279A 控制的,HD7279A 是一片具有串行接口的,可同时驱动8位共阴式数码管或(64 只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达
36、64 键的键盘矩阵,单片即可完成LED 显示,键盘接口的全部功能。HD7279A 内部含有译码器,可直接接受BCD 码或16 进制码,并同时具有2 种译码方式。此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279A 具有片选信号,可方便地实现多于8 位的显示或多于64 键的键盘接口。在该实验系统中,仅提供了16 个键。(5)RS232 串口单元该存储单元在板卡上标号为U2,在板卡的背面,选用了MAX3232CSE 电压转换芯片,进行PC 机与CPU 板的串口通讯。它采用收、发、地,三线连接,无握手信号。D1 为向外部发送数据时的显示灯,D2 为接收外部数据时的显示灯。通过
37、S3C44B0X 内部的串口0控制器进行控制。(6)LCD 模块本实验系统选用了LCD液晶显示屏, LCD的控制器使用S3C44B0X的内部集成的控制器,LCD液晶屏包括两块,一块LCD屏用的是5.7寸,320X240像素,256色的彩屏,其电源操作范围宽(2.7V to 5.5V);低功耗设计可满足产品的省电要求;另一块LCD屏分辨率的是128X64,灰度显示。其中,可调变位器R78用于调节LCD屏色彩的对比度,当因温度低或高等因素显示不正常时,可适当调节R78到合适的色彩。(7)网络单元该存储单元在板卡上标号为U12,选用了RTL8019AS 网络芯片,16 位数据总线传输,片选NGCS3
38、 接网络单元。CPU 分配给U12 单元的地址空间为0x060000000x07ffffff,也就是S3C44BOCPU 的bank3 区。S3C44B0CPU 的外部中断ExINT1 响应该中断。4.软件平台概述4.1 嵌入式操作系统概述嵌入式操作系统就是支持嵌入式系统工作的操作系统。它在知识体系和技术本质上与通用操作系统没有太大的区别,一般用于比较复杂的嵌入式系统软件开发中。嵌入式系统一般具有实时特点。所谓实时系统,是指一个优先级同的任务能够立即的、没有延迟的服务,它不需要选修任何其他任务,而且在得到CPU的使用权后,可一直执行到工作结束或者有更高级的进程出现为止7。嵌入式操作系统是嵌入式
39、系统的灵魂,它的出现大大提高了嵌入式系统开发的效率,减少了系统开发的总工作量,而且提高了嵌入式应用软件的可移植性。为了满足嵌入式系统的需要,嵌入式操作系统必须包括操作系统的一些最基本的功能,如中断生理与进程调试,用户可以通过 API来使用操作系统。嵌入式操作系统的各类繁多,但大体上可分为2种商用型和免费型。目前商用型的操作系统主要有VxWorks、Windows CE、Psos、Palm OS、OS-9、LynxOS、QNX、LYNX等,它们的优点是功能稳定、可靠,有完善的技术支持和售后服务,而且提供了如图形用户界面和网络支持等高端嵌入式系统要求的许多高级的功能;缺点是价格昂贵且源代码封闭,这
40、就大大影响了开发者的积极性。目前免费型的操作系统主要有Linux和uC/OS-II,它们在价格方面具有很大的优势。嵌入式Linux操作系统以价格低廉、功能强大、易于移植而且程序源码完全公开等优点正在被广泛采用。4.2 嵌入式Linux简介Linux是嵌入式操作系统提供了一个极有吸引力的选择。它是个与Unix相似、以核心国基础的、完全内存保护、多用户、多任务的操作系统。它支持广泛的计算机硬件,包括X86、Alpha、Sparc、MIPS、PPC、ARM、NEC、MOTOROLA等现有的大部分芯片。程序源码全部公开,任何人可修改并可在GNU通用公共许可证(GNU General Public Li
41、cense)下发行。这样,开发人员可对操作系统进行定制,再也不必担心像Windows操作系统那样的“后门”威胁。同时由于有GPL标准的控制,大学开发的东西大都相互兼容,能更好地共享Linux免费资源且不会走向分裂之路。Linux用户遇到问题时,可通过Internet向网上成千上万的Linux开发者求助,这使最困难的问题也有办法解决。Linux带有Unix用户熟悉、完善的开发工具,几乎所有的Unix系统的应用软件都已移植工程兵Linux上。Linux还提供了强大的网络功能,有多种可选择的窗口管理器(XWindow),其强大的语言编译器GCC、G+等也可很得到。使用Linux作嵌入式操作系统具有如
42、下优点:(1)可应用于多种硬件平台。Linux已被移植到多种硬件平台,这对受成本和时间限制的研究与开发项目是很有吸引力的。原型可在标准平台上开发,然后移植到具体的硬件上,了软件与硬件的开发过程,并降低了开发成本 。(2)Linux可随意转而是不需要任何的许可证可商家的合作关系。是免费的,源代码可以得到,这是最吸引人。毫无疑问,这会节省大量的开发费用。(3)本身内置网络支持,具有公认的强大的网络功能。(4)Linux的高度模块化使添加部件非常容易。嵌入式Linux虽然十分年轻,但发展到现在已形成了一个庞大的家族,从服务器到微型机再到嵌入式,到处可见Linux的身影,并形成了许多版本。其中的嵌入式
43、Linux操作系统按照实际应用的场合及特殊的功能需求,基本上可分为以下几类:(1)将Linux改进,以满足实时要求的实时操作系统,应用于一些关键的控制场合,如Fsmlabs公司的RTLinux,Monta Vista 公司的Hard Hat Linux。(2)尽可能保留Linux的强大功能,尽可能地其体积,以满足许多嵌入式系统对体积的要求,如CLinux。(3)针对特定嵌入式领域采用的整合方案,如Lineo、TimeSys及合肥华恒等。4.3 CLinux简介CLinux是专为无存储器管理单元MMU的微控制器打造的嵌入式Linux操作系统。CLinux首先被移植到MOTOROLA的MC6832
44、8 DragonBall集成微处理器上。之后,CLinux越来越受到业界的青睐,被移植到更多的无MMU的苦尽甜来上。作为一种嵌入式操作系统,CLinux有以下特点:(1) 通用的Linux API;(2) uCkernel512KB;(3) uCkernel+工具900KB;(4) 完整的TCP/IP协议堆栈;(5) 支持大量其他的网络协议;(6) 支持各种文件系统,包括NFS、ext2、ROMfs、JFFS、MS-DOS以及FAT16/32。由于CLinux主要是针对无MMU微处理器开发的,因此,在CLinux上实现多任务功能是一个非常棘手的问题;然而,CLinux上运行的大多数用户应用程序
45、不要求多任务功能。另外,大多数内核的二进制代码和源代码都被重写,主进一步缩减了CLinux内核的代码。CLinux的内核要比原Linux2.0内核小得多,但保留了Linux操作系统的主要优点:稳定性、优异的网络能力以及优秀的文件系统支持等。图4.1为CLinux的基本架构。(1)Boot Loader:负责Linux内核的启动,用于初始化系统资源,包括SDRAM。这部分代码用于建立Linux内核运行环境和从Flash中装载初始化Ramdisk。内核初始化:Linux内核的入口点是Start_kernel()函数。它初始化内核的其他部分,包括捕获、IRQ、通道、调度、设备驱动及标定延迟循环,最重
46、要的是能够调用fork初始化进程,以调动整个多任务环境。(2)系统调用函数/捕获函数:在执行完初始化程序后,内核对程序流不再有直接的控制权。此后,它的作用仅仅是处理异步事件(例如硬件中断)和为系统调用提供进程。设备驱动:设备驱动占据了Linux内核的很大部分。和其他操作系统一样,设备驱动为它们所控制的硬件设备和操作系统提供了接口。(3)文件系统:Linux最重要的特性之一就是各方支持。这种特性使得Linux可很容易地与其他操作系统共存。文件系统的概念使得用户能够查看存储设备上的文件和路径,而无须考虑实际物理设备的文件系统类型。Linux透明地支持许多不同的操作系统,将各种安装的文件和文件系统以一个完整的虚拟文件系统的形式呈现给用户。图4.1 CLinux的基本架构4.4 CLinux源代码的组成若想对CLinux有更进一步的了解,分析其源代码的组成是有必要的。在LINUX 环境下,解压后CLinux 的内核源码在linux-2.4.x 文件夹内,一般在每个目录下,都有一个.depend 文件和一个 Makefile 文件,这两个文件都是编译时使用的辅助文件,仔细阅读这两个文件对弄清各个文件这间的联系和依托关系很有帮助;而且,在有的目录下还有Readme 文件,它是对该目录下的文件的一些说