计算机毕业设计基于ARM的智能手持设备.docx
《计算机毕业设计基于ARM的智能手持设备.docx》由会员分享,可在线阅读,更多相关《计算机毕业设计基于ARM的智能手持设备.docx(35页珍藏版)》请在冰豆网上搜索。

计算机毕业设计基于ARM的智能手持设备
基于ARM的智能手持设备
摘要
随着Internet的发展和后PC时代的到来,电子产品的小型化、智能成为了发展趋势,而智能化必不可少的就是操作系统,因此嵌入式系统已成为计算机领域的一个重要组成部分,并成今年来新兴的研究热点。
嵌入式系统的应用现在广泛应用在了高级引擎管理、保安系统、机顶盒、便携计算机和高档打印机等设备。
本文通过对嵌入式智能手持设备操作系统的分析研究以及根据不同CPU对内核以及u-boot的修改,来对嵌入式系统进行研究。
本文概括性的描述了嵌入式系统的概念、发展与特征,介绍了ARMS3C2440开发板的硬件核心——ARM920T嵌入式处理器。
同时详细论述了了linux2.6.13内核的源文件结构、功能裁剪、配置文件的修改、内核交叉编译过程以及内核在基于S3C2440处理器开发板上进行移植的关键问题等。
还有对引导装载程序u-boot的源文件对S3C2440的支持修改以及编译移植过程。
关键词Linux;交叉编译;移植;U-boot
Abstract
AlongwiththeInternetdevelopmentandthelatterPCtime'sarrival,Miniaturizationofelectronicproducts,smartbecameatrendandthatisessentialtointelligentoperatingsystem,sotheembeddedsystemhasbecomethecomputerdomainaimportantcomponent,combinestomakeorbecomecomestheemergingresearchhotspotthisyear.
Applicationofembeddedsystemsisnowwidelyusedinadvancedenginemanagement,securitysystems,set-topboxes,portablecomputersandhigh-endprintersandotherdevices.
Basedontheembeddedoperatingsystem,smarthandhelddevicesaswellastheanalysisofthedifferentCPUcores,aswellaschangestou-bootinordertoconductastudyonembeddedsystems.
Describesthegeneralconceptofembeddedsystems,thedevelopmentandthecharacteristicintroducedARMS3C2440,whichisthedevelopmentboardhardwarecore--ARM920Tembeddedprocessor.Simultaneously,discussedindetailthekernelsourcefileslinux2.6.13structureandfunctionofcutting,themodifiedconfigurationfile,theprocessofcross-compilingthekernelandthekernelS3C2440processorbaseddevelopmentboardtocarryoutkeyissuessuchastransplants.Thereareprocedurestoguidetheloadingoftheu-bootsourcefilestosupportarevisionoftheS3C2440andthetransplantprocess.
KeywordsLinux;CrossCompiler;Transplant;U-boot
第1章绪论
1.1引言
随着社会的日益信息化、嵌入式系统的应用越来越广泛和计算机技术的发展和微处理器工艺的改进,计算机和网络已经全面渗透到日常生活的每一个角落,任何人都可拥有从小到大的各种使用嵌入式技术的电子产品,嵌入式系统及其产品在由家电产品和Internet衍生出来的新型市场中占有主导地位和独特份额。
嵌入式系统表现出来了强劲的发展势头,目前各种各样的新型嵌入式系统设备在应用数量上已经远远超过了通用计算机。
出于成本、体积、便携性、移动性考虑而不宜使用通用计算机的场合,都是嵌入式系统应用的领域。
专家预计IT业将进入一个崭新的、以嵌入式系统为核心的“后PC时代”(Post-PCEra)。
从目前国内IT市场来看,嵌入式系统的发展对于我们国家的民族IT工业来讲,将有十分重要的战略意义。
1.2国内外技术现状
据IDC发布的统计声明,未来的4~5年内,信息家电市场会增长5~10倍。
这将带动嵌入式操作系统的发展。
另据统计,现在嵌入式系统带来的工业年产值已经超过了一万亿美元,为此相关厂商纷纷将注意力集中到了嵌入式操作系统,如Microsoft推出的WindowsCE.但WindowsCE并未像人们预期的那样得到用户的认可,原因之一是厂商和用户又多了一个选择,那就是嵌入式Linux。
现在从事基于Linux平台的进行产品开发的公司已经取得了很大的进展例如:
Linux已经被移植到手提设备与掌上电脑。
一些将Linux移植到运行windowsCE的设备。
目前市场上较为流行的嵌入Linux产品主要有RT-Linux、uCLinux、Embedix、Xlinux、PoketLinux、红旗嵌入式Linux、RedHatLinux等。
目前,NTTDoCoMo等知名的厂商进行了基于Linux的嵌入式系统开发。
中软实时嵌入式Linux系统是在中软Linux标准版系列产品的基础上,自主开发的适合各个行业应用的实时嵌入式系统平台。
应用范围主要针对处理速度、内存和存储器容量等有特别要求的嵌入式设备。
除此之外,国内许多其他公司也进行了基于Linux的嵌入式操作系统开发工作,并且方向不一。
1.3论文任务和背景
由于嵌入式系统是建立在特定的硬件系统之上,系统的开发和硬件的关系十分紧密,嵌入式开发板为方便调试与开发提供了丰富的外围设备和借口,通过借口可以调试应用程序和打印输出调试信息。
嵌入式开发板已经成为学习嵌入式操作系统的应用、熟悉硬件设备、学习编写硬件设备驱动、了解嵌入式操作系统体系结构和嵌入式操作系统移植的有力工具。
国内许多开发板厂商提供基于ARM核系列处理器,存储器容量以及借口数量不等的各个系列开发板。
在嵌入式系统的体系结构中,嵌入式系列是以应用为中心,以计算机技术为基础、软硬件均可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
对于不同的嵌入式应用来说,需要根据具体的应用作大量相应的定制与配置工作,即使是相同的处理器,在不同的开发板中,其应用程序也要作相应的配置才能运行。
基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向底端微控制器应用领域扩展。
ARM微控制器的的低功耗、高性价比使其以70%左右的市场占有率成为嵌入式解决方案中主流微处理器。
各个公司和科研机构要进行嵌入式应用产品的开发,选定的嵌入式应用产品大多以ARM系列芯片为硬件基础。
因此,本文的设计工作主要围绕ARM9芯片进行。
考虑到将来的嵌入式应用产品主要以PDA、机顶盒等应用为主,要求微型化,低成本,精简系统。
而Linux近几年在嵌入式领域异军突起,成为非常有潜力的嵌入式操作系统。
其代码的开放性、系统的稳定性、强大的网络功能以及优秀的文件系统支持,在嵌入式设备特别是在网络设备中得到了广泛应用。
因此,决定选择Linux作为本课题的嵌入式操作系统研究对象。
为了进一步开发实验及验证,选用上海勤研QT2440E开发板和linux2.6内核进行嵌入式研究。
第2章嵌入式系统概述
本章主要介绍嵌入式系统的基本概念、总体框架和基本组成,以及常见的嵌入式系统发行版本,为后面的应用和研究打下基础。
2.1什么是嵌入式系统
2.1.1定义
根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”(原文为devicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants)。
这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,涵盖机械等附属装置。
不过,上述定义并不能充分体现嵌入式系统的精髓。
目前国内一个普遍被认同的定义是:
以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
2.1.2嵌入式系统与通用计算机系统的区别
1、专用的嵌入式CPU。
嵌入式CPU与通用型的最大不同特点就是它具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多板卡完成的任务集成在芯片内部。
2、专用性和资源有限性。
嵌入式系统总是被设计成某一特定任务,一旦设计完成就不再改变。
嵌入式系统一般系统配置专一,结构紧凑,牢固可靠。
3、系统对用户的透明性。
用户在使用嵌入式设备时只是按照预定的方式使用它,既不需要用户编程,也不需要用户知道设备内计算机系统的设计细节,用户也不能够改变它。
2.1.3嵌入式系统结构和组成
一般而言,嵌入式系统的体系机构可以分成四个部分:
嵌入式处理器、嵌入式外围设备,嵌入式操作系统和嵌入式应用软件(如图2.1所示)。
图2.1嵌入式系统结构组成
1、嵌入式处理器
嵌入式系统的核心是各种类型的嵌入式处理器,嵌入式处理器的体系结构经历了从CISC到RISC和CompactRISC的转变,位数则由四位,八位,十六位,三十二位逐步发展到六十四位。
2、嵌入式外围设备
在嵌入式系统硬件系统中,除了处理器以外,用于完成存储、通信、调试、显示等辅助功能的外围部件,都算作嵌入式外围设备。
目前常用的嵌入式外围设备按功能可以分为存储设备、通信设备和显示设备三类。
存储设备主要用于各类数据的存储,常用的有静态易失性存储器(RAM,SRAM)、动态存储器(DRAM)和非易失性存储器(ROM、EPRON、EEPROM、FLASH)三种;绝大多数常用的通信设备接口都可以直接在嵌入式系统中应用、包括RS—232串行通讯接口、SPI(串行外围设备接口)、IrDA(红外线接口)、USB(通用串行总线接口)、Ethernet(以太网接口);嵌入式系统中的显示设备通常是阴极射线管(CRT)、液晶显示器(LCD)和触摸板(TouchPanel)等。
3、嵌入式操作系统
为了使嵌入式系统的开发更加方便和快捷,需要有专门负责管理存储器分配、中断处理、任务调度等功能的软件模块,这就是嵌入式操作系统。
嵌入式操作系统是用来支持嵌入式应用的系统软件,是嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动程序、系统内核、设备驱动接口、通讯协议、图形用户界面(GUI)。
它具有通用操作系统的基本特点。
但在系统实时性、硬件依赖性、软件固化性以及应用专用性等方面,嵌入式操作系统具有更加鲜明的特点。
根据应用场合,嵌入式操作系统可以分成两大类:
一类是面向消费电子产品的非实时系统;另一类则是面向控制、通信、医疗等领域的实时操作系统。
实时系统(RealTimeSystem)是一种能够在指定或者确定时间内完成系统功能,并且对外部和内部事件在同步或者异步时间内能作出及时响应的系统。
在实时系统中,操作的正确性不仅依赖于逻辑设计的正确程度,而且与这些操作进行的时间有关。
4、嵌入式应用软件
嵌入式应用软件是针对特定应用领域,基于某一硬件平台,用来达到用户预期目标的计算机软件。
由于用户任务可能有时间和精度上的要求。
嵌入式应用软件和普通应用软件有一定的区别,它不仅要求其准确性、安全性和稳定性等方面能够满足实际应用的需要,而且还要尽可能地进行优化。
以减少对系统资源的消耗,降低硬件成本。
2.1.4嵌入式系统的开发过程
由于嵌入式系统是应用于特定环境下面对专业领域的应用系统,具有与通用计算机系统明显不同的特点,因此其开发过程和开发环境同传统的软件开发相比有着显著的不同。
在硬件设计开发过程,首先根据模型确定硬件需要实现的功能,接着确定硬件的构成,并确定数据的控制流程,完成结构化设计,然后是硬件逻辑设计,最后是物理硬件实现,以开发板的形式出现。
在软件设计过程中,首先分析系统需要实现的任务,根据任务划分使用的模块,在通用高级语言实现各个高层模块,并通过并通过交叉开发环境实现目标代码,完成系统测试。
整个嵌入式系统的开发过程如图2.2所示。
图2.2嵌入式系统开发过程
2.2当前主要的嵌入式操作系统
嵌入式操作系统的种类繁多,大体上可分为两种:
商用型和免费型。
商用型的嵌入式操作系统功能稳定、可靠,有完善的技术支持和售后服务,但往往价格昂贵。
免费型嵌入式操作系统在价格方面具有优势。
2.2.1商用嵌入式操作系统
从八十年代起,国际上就开始进行一些商用嵌入式系统和专有操作系统的开发。
他们开发嵌入式系统已经有二十多年的经验,目前的应用范围也比较广泛,下面介绍一些著名的嵌入式系统。
1、WindowsCE
MicrosoftWindowsCE是一个简洁的,高效率的多平台操作系统。
是从整体上为有限资源的平台设计的多线程,完整优先权,多任务的操作系统。
操作系统的基本内核需要至少200K的ROM
2、VxWorks
VxWorks是目前嵌入式系统领域中使用最广泛,市场占有率最高的系统。
它支持多种处理器。
3、PalmOS
3Com公司的PalmOS有开放的操作系统应用程序接口(API),开发商可以根据需要自行开发所需要的应用程序。
2.2.2免费嵌入式操作系统
1、uC/OS
uC/OS是源代码公开的实时嵌入式操作系统,后来推出的uC/OSII是uC/OS的升级版本。
uC/OSII的主要特点如下:
公开源代码;可移植性强;可固化;可裁剪;占先式;多任务。
2、嵌入式Linux
Linux以核心为基础的、完全内存保护、多任务多进程、支持广泛的计算机硬件、程式源码全部公开的特性。
从技术、成本、安全还是兼容性的角度,Linux都是嵌入式操作系统的最佳选择之一。
2.3嵌入式Linux系统概述
由于Linux的可裁剪性,使得它正逐渐地应用于嵌入式设备。
嵌入式Linux一般由一个Kernel(内核)及一些根据需要进行定制的系统模块组成。
其Kernel很小,一般只有1.7M左右(未裁剪编译过的)。
即使加上其他必须的模块和应用程序,所需的存储空间也很小。
它有多任务、多进程的系统特点,有些还具有实时性。
一个小型的嵌入式Linux系统只需要引导程序、Linux微内核、初始化进程三个基本元素。
运行嵌入式Linux的CPU可以是ARM、x86、Alpha、Sparc、MIPS等。
嵌入式Linux所需的存储器是ROM、compactFlash、M-Systmes的DiskOnChip等体积极小(于主板上的BIOS大小相近)存储容量不太大的存储器。
2.3.1嵌入式Linux的特点
首先,Linux是开放源代码的,在价格上极具竞争力,在技术上不存在黑箱,易于定制裁剪,遍布全球的众多Linux爱好者又是Linux开发的强大技术后盾;其次,Linux的内核小、功能强大、运行稳定、系统健壮、效率高;第三,Linux不仅支持X86CPU,还可以支持ARM、Sparc、MIPS、PPC等其他数十种CPU芯片;第四,有大量的而且仍在不断增加的开发工具,这些工具为嵌入式系统的开发提供了良好的开发环境;第五,Linux沿用了UNIX的发展方式,遵循国际标准,可以方便地获得众多第三方软硬件厂商的支持;最后,Linux内核的结构在网络方面是非常完整的。
它不仅可以充当嵌入式系统的开发平台,其本身也是嵌入式系统应用开发的好工具。
随着技术的进步和需求的推动,基于Linux的嵌入式系统得到了很大的发展。
2.3.2主流嵌入式Linux系统
1、RT-Linux
由美国墨西哥理工学院开发的嵌入式Linux硬实时操作系统。
2、uClinux
它主要是针对目标处理器没有存储管理单元MMU(MemoryManagementUnit)的嵌入式系统而设计的。
其运行稳定,具有良好的移植性和优秀的网络功能,针对各种文件系统有完备的支持,并提供标准丰富的API
3、Embedix
提供了超过25种的Linux系统服务,包括Web服务器等。
此外还推出Embedix的开发调试工具包、基于图形界面的浏览器等。
Embedix是一种完整的嵌入式Linux解决方案。
4、Xlinux
采用了"超字元集"专利技术,让Linux核心不仅能与标准字符集相容,还含盖了12个国家和地区的字符集。
因此,XLinux在推广Linux的国际应用方面有独特的优势。
5、PoketLinux
它可以提供跨操作系统并且构造统一的、标准化的和开放的信息通信基础结构,在此结构上实现端到端方案的完整平台。
6、红旗嵌入式Linux
由北京中科院红旗软件公司推出的嵌入式Linux,它是国内做得较好的一款嵌入式操作系统。
2.3.3嵌入式系统的发展趋势
以信息家电为代表的互联网时代嵌入式产品,不仅为嵌入式市场展现了美好前景,注入了新的生命;同时也对嵌入式系统技术,特别是软件技术提出新的挑战。
这主要包括:
支持日趋增长的功能密度、灵活的网络联接、轻便的移动应用和多媒体的信息处理。
嵌入式应用软件的开发需要强大的开发工具和操作系统的支持。
随着因特网技术的成熟、带宽的提高ICP和ASP在网上提供的信息内容日趋丰富、应用项目多种多样。
为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位RISC芯片或信号处理器DSP增强处理能力;同时还采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。
1、强大的网络支持成为必然趋势。
针对外部联网要求,嵌入设备必需配有通信接口,相应需要TCP/IP协议簇软件支持,同时也需要提供相应的通信组网协议软件和物理层驱动软件,以支持应用软件的特定编程模式。
2、支持电子设备实现小尺寸、微功耗和低成本。
为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存量和复用接口芯片。
这就相应提高了对嵌入式软件设计技术要求。
3、提供精巧的多媒体人机界面。
第3章ARM及QT2440EARM920T硬件平台
嵌入式开发的主要工作之一是硬件的开发,而硬件开发更基础的工作是构建硬件开发平台,本课题使用的硬件平台是基于ARM920T嵌入式微处理器,以该处理器为核心而构建的开发板。
下面作更为详细的说明。
3.1ARM处理器概述
ARM[2]是AdvancedRISCMachines的所写,由英国AdvancedRISCMachinesLimited公司设计。
ARM32bit体系结构目前被公认是业界领先的32bit嵌入式RISC微处理器结构,所有ARM处理器共享这一体系结构。
这可确保当开发者转向更高性能的ARM处理器时,在软件开发上可获得最大的回报。
ARM芯片具有RISC系统的一般特点,如具有大量的寄存器。
绝大多数都在寄存器中进行,通过Load/Store的体系结构在内存和寄存器之间传递数据;寻址方式简单;采用固定长度的指令格式。
除此之外,ARM系统采用了一些特别的技术,在保证高性能的同时尽量减小芯片体积,降低芯片的功耗。
3.1.1ARM微处理器的应用领域
1、工业领域:
作为三十二位的RISC架构,ARM微控制器的低功耗、高性价比,向传统的8bit/16bit微控制器提出了挑战。
2、无线通讯领域:
目前已经有超过百分之八十五的无线通讯设备采用了ARM技术。
3、网络应用:
随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。
此外,ARM在语音及视频处理上进行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。
4、消费类电子产品:
ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。
5、成像和安全产品:
现在流行的数码相机和打印机中绝大部分采用ARM技术。
6、除此之外,ARM微处理器及技术还应用到许多不同的领域,并会在将来取得更广泛的应用。
3.1.2ARM微处理器的寄存器结构
ARM处理器共有37个32位寄存器,这些寄存器分为两类:
31个通用寄存器和6个状态寄存器。
通用寄存器包括R0~R15,可以分为三类:
为分组寄存器R0~R7、分组寄存器R8~R14和程序寄存器PC(R15)。
R0~R7:
与所有处理器模式无关的寄存器,可以用作任何用途。
R8~R14:
与处理器模式有关的寄存器,在不同的模式下,对应不同的物理寄存器。
R13又叫sp,一般用于堆栈指针。
R14又叫做lr,一般用于保存返回地址。
R15又叫做程序计数器,即PC
程序状态寄存器包括CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq。
这六个状态寄存器目前只用了每个其中的12位。
CPSR:
当前程序状态寄存器
SPSR:
保存的程序状态寄存器
3.1.3ARM微处理器运行模式
1、ARM微处理器支持7种运行模式,分别为:
2、用户(USR):
处理器正常工作状态
3、快速中断(FIQ):
用于高速数据传输或通道处理
4、外部中断(IRQ):
用于通用的中断处理
5、超级用户(SVC):
操作系统使用的保护模式
6、数据访问中止(ABT):
用于虚拟存储及存储保护
未定义指令中止(UND):
未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真
7、系统模式(SYS):
运行具有特权的操作系统任务
ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。
大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。
除用户模式以为,其余的所有6种模式称之为非用户模式,或特权模式(PrivilegedModes);其中出去用户和系统模式以外的5种又成为异常模式(ExceptionModes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。
3.2ARM9处理器
ARM9系列有ARM9TDMI、ARM920T和带有高速缓冲器宏单元的ARM940T。
全部的ARM9系列处理器均具有Thumb压缩指令和基于EmbeddedICE的调试方式。
ARM9兼容ARM7系列,而且比ARM7进行更加灵活的设计。
ARM9系列处理器在高性能和低功耗特性方面提供最佳的性能。
ARM9微处理器的特点:
1、5级整数流水线,指令执行效率更高。
2、基于嵌入式ICEJTAG的软件调试方式,调试开发方便。
3、提供1.1MIPS/MHZ的哈佛结构。
4、支持32位ARM指令集和16位Thumb指令集。
5、支持32位的高速AMBA总线接口。
6、全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。
7、MPU支持实时操作系统。
3.3QT2