ARM嵌入式Linux系统开发详解

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1章嵌入式系统入门时下计算机领域最热门的一个词可能就是嵌入式系统了。翻开计算机的杂志和书籍,许多地方都能见到嵌入式系统的字眼。其实,不仅在书籍杂志上,嵌入式系统和每个普通人的生活联系都是很紧密的。本章从应用角度出发介绍什么是嵌入式系统,带读者进入嵌入式系统开发的领域,主要内容包括:嵌入式系统定义嵌入式系统的应用领域嵌入式系统的发展趋势1.1什么是嵌入式系统对于没有接触过的人来说,嵌入式系统这个词可能显得比较深奥,甚至充满一些神秘色彩。其实嵌入式系统和普通人的生活非常紧密,如日常生活中使用的手机、微波炉、有线电视机顶盒等,都属于嵌入式系统。与通常使用的PC机相比,嵌入式系统的形式变化多样、体积小,可以灵活地适应各种设备的需求。因此,可以把嵌入式系统理解为一种为特定设备服务的,软件硬件可裁剪的计算机系统。嵌入式系统的英文名称是EmbeddedSystem。从嵌入式系统的定义可以看出,一个嵌入式系统具备了体积小、功能专一、软硬件可裁剪的特点。这些特点也能反映出嵌入式系统与传统的PC机有着不同之处。本书使用常见的ARM嵌入式系统为例讲解嵌入式Linux系统移植和开发技术。1.2嵌入式系统应用领域从嵌入式系统的特点可以看出它的应用领域是很广泛的。不仅在家电上,在其他的领域也有很大的需求。本节介绍一些嵌入式应用的领域。1.2.1家用电器家用电器里最常见的可能就算是手机了。手机是一个典型的嵌入式系统。1.2.2交通工具大家最常使用的交通工具就是汽车了,不管是公交车、私家车还是其他的各种专用车辆,都有嵌入式系统的身影。1.2.3公共电子设施银行的ATM自动取款机是一种常见的公共电子设备。1.3嵌入式系统发展从1946年第一台现代电子计算机诞生以来,计算机始终朝着两个方向发展:一个方向是体积大型化、处理能力超强的大型计算机;另一个方向是超体积小型话、功能多样化发展。这两个发展方向没有高低之分,都是由于实际需求带动发展。计算机大型化发展出现了很多的超级计算机,各国都在研制自己的大型计算机。在计算机小型化的发展道路上,可谓是种类繁多。不仅有个人电脑(PC),还有各种个人数字助理(PDA)。嵌入式系统是计算机系统小型化发展的一个热门的分支。1.3.1嵌入式微控制器嵌入式微控制器也就是传统意义上的单片机,它可以说是目前嵌入式系统的前身。单片机就是把一个计算机的主要功能集成到了一个芯片上,简单说就是一个芯片就是一个计算机。它的特点是体积小、结构简单、便于开发以及价格经济。扁平封装的8051系列芯片直列封装的ATMega8芯片1.3.2嵌入式微处理器单片机的发展时间较早,处理能力很低,只能用在一些相对简单的控制领域。嵌入式微处理器是近几年随着大规模集成电路发展同步发展起来的。与单片机相比,嵌入式微处理器的处理能力更强。目前主流的嵌入式微处理器都是32位的,而单片机多是8位和16位的。嵌入式处理器在一个芯片上集成了复杂的功能,同时一些微处理器还把常见的外部设备控制器也集成到芯片内部。以ARM芯片为例,ARM体系在内部规定了一个32位的总线,厂商可以在总线扩展外部设备控制器。三星的ARM9芯片S3C2440A把常见的串行控制器、RTC控制器、看门狗、I2C总线控制器甚至LCD控制器等都集成在了一个芯片内,可以提供强大的处理能力。1.3.2嵌入式微处理器ARM9TDMIDataCacheDataMMUInstructionCacheLCDControllerBufferAMBABusInterfaceI2CControllerWatchDogUSBInstructionMMU1.3.3未来嵌入式系统发展的方向随着微电子技术的不断发展以及电子制造工艺的进步(目前已经可以制造出65纳米的芯片),嵌入式系统硬件的体积会不断缩小,系统稳定性也在不断增强,可以把更多的功能集成在一个芯片上。另外在功耗方面也不断降低,这样使嵌入式设备在自带电源的情况(如使用电池)会使用更长的时间,而且设备的功能也更强大。此外随着网络的普及和IPv6技术的应用,越来越多的嵌入式设备也会加入到网络中。将来家中的微波炉或者洗衣机都可以通过无线接入网络,被其他设备控制。1.4典型的嵌入式系统组成嵌入式系统与传统的PC机一样,也是一种计算机系统,是由硬件和软件组成的。硬件包括了嵌入式微控制器和微处理器,以及一些外围元器件和外部设备;软件包括嵌入式操作系统和应用软件。与传统的计算机不同的是,嵌入式系统种类繁多。许多的芯片厂商、软件厂商加入其中,导致有许多的硬件和软件,甚至解决方案。一般来说,不同的嵌入式系统软硬件是很难兼容的,软件必须修改而硬件必须重新设计才能使用。虽然软硬件种类多,但是不同的嵌入式系统还有很多相同之处的。1.4典型的嵌入式系统组成1.5小结本章是全书的第一章,为读者介绍了嵌入式系统的基本常识、组成结构,通过实例给读者对嵌入式系统一个初步的认识。本章的知识相对比较笼统,偏重一些概念方面的介绍,读者可以结合实际生活理解,加深对嵌入式系统的认识。第2章讲解嵌入式软件和硬件系统基本知识。第2章嵌入式软硬件系统在学习嵌入式开发之前,需要了解一下嵌入式系统基本知识。嵌入式系统是由软件和硬件组成的,与传统的PC不同,在设计嵌入式系统的时候通常是软件和硬件都需要设计。对于一个嵌入式系统开发来说,无论是硬件开发人员还是软件开发人员,都需要掌握基本的软件和硬件知识。本章的主要目的是通过讲解基本的软硬件知识,帮助读者建立嵌入式系统概念,主要内容包括:模拟电路和数字电路基本的数制转换计算机的工作原理软件的基础知识操作系统概要2.1电路基本知识初中物理知识讲过,电流就是电流通过的路径。一个最简单的电路是由电源、负载和导线构成的。复杂的电路还有电阻、电容、晶体管、集成电路等元件。这些元件的功能不同,通过不同的组织方式构成了不同功能的电路。无论什么样的电路,最终的功能都是处理电子信号的。按照电子信号的工作方式可以把电路分成模拟电路和数字缏贰2.1.1什么是模拟电路处理模拟信号的电路称作模拟电路。模拟信号的特点是信号是线性变化的,意思是信号变化是连续的。如经常使用的收音机、电视机和电话都是使用的模拟信号。常见的模拟电路有变压电路、放大电路。评估一个模拟电路常见的参数有放大率、信噪比和工作频率等。模拟电路是数字电路的基础,数字电路可以看做是模拟电路的一种特殊形式。2.1.2什么是数字电路数字电路顾名思义是处理数字信号的电路,通常数字电路具有逻辑运算和逻辑处理的功能。与模拟信号不同,数字信号使用电压的高低或者电流的有无表示逻辑上的1或0,因此数字电路可以方便地表示出二进制数。数字电路可以分成脉冲电路和逻辑电路两部分,脉冲电路负责对信号变换和测量;逻辑电路负责处理数字逻辑。与模拟电路不同,数字电路关心的是信号状态的变化。通过数字逻辑可以处理复杂的二进制信息,因此数字电路是计算机的基础。由于数字电路的工作特点,它具有电路结构简单、容易加工制造等优点,可以大批量的生产制造,成本也变得低廉。数字电路广泛应用在测量、科学计算、自动控制等领域。2.1.3数制转换计算机是由数字电路构成的,其内部数据的传输和处理都使用二进制方式。日常生活中普遍使用十进制方式表示数字,所以在使用计算机的时候需要用到数制转换。常见的有二进制到十进制的转换,从事嵌入式开发经常会用到十六进制,有的时候还会用到八进制。二进制的特点是“逢2进1”。如十进制的0对应二进制的0,十进制的1对应二进制的1,十进制的2对应二进制的10,以此类推。从这个推演规律中可以看出,二进制数从右往左每个位数都是2的位数次幂。举个例子,二进制数1010转换为十进制数:(1010)2=(23x1)+(22x0)+(21x1)+(20x0)=8+0+2+0=(10)102.1.3数制转换十六进制二进制00000100012001030011401005010160110701118100091001A1010B1011C1100D1101E1110F11112.2计算机组成原理现代计算机的构造越来越复杂,功能也日新月异。但是计算机的组成结构从本质来说仍然是相同的。一个计算机系统硬件是由中央处理器、存储系统、总线系统和输入输出系统几个基本部分组成的。本节从计算机系统结构发展的角度介绍计算机组成和工作原理。2.2.1计算机体系的发展计算机是由硬件系统和软件系统两大部分组成的。按照功能又可以划分为指令系统、存储系统、输入输出系统等。计算机体系结构简单的说就是研究计算机各系统和组成部分结构的一门学问。计算机的诞生到现在时间仅有半个世纪,但是计算机体系结构却有很大的发展,出现了许多的体系结构设计思想和设计方法。从存储结构来说可以把计算机体系分成冯诺依曼结构和哈佛结构。2.2.2中央处理器中央处理器英文全称是(CentralProcessUnit),简称CPU,是一个计算机系统的核心。CPU是由运算器、控制器、寄存器和内部总线组成的。在CPU之外再加入总线,存储设备输入输出设备就可以构成一个完整的计算机系统。CPU有几个重要的参数,包括工作频率、字长、指令集和缓存。工作频率通常是用户最多听到的参数,一个CPU的工作频率包括了主频和外频以及外部总线频率。主频是CPU的实际工作频率,外频是CPU工作的基准频率,还有一个是总线的工作频率。一般来说,工作频率越高的CPU执行指令的速度就越快,但是也不完全如此。2.2.3存储系统计算机在工作中需要从内部存储器中读取指令和数据,并且把计算的结果存入外部存储器。由于材料和价格因素的限制,计算机的存储器件在容量、速度等方面需要匹配。存储系统的作用就是设计一个让各种存储器相互配置达到最优性价比的方案。CPU高速缓存:Cache内部存储:RAM外部存储:硬盘、Flash速度容量价格快慢小大高低2.2.4总线系统总线是CPU连接外部设备的通道。通常包括数据总线(DataBus)、地址总线(AddressBus)和控制总线(ControlBus)。地址总线负责向外部设备发送地址信息;数据总线负责从外部设备读取或者写入信息;控制总线负责发送信号控制外部设备。计算机的总线系统是由总线和相应的控制器构成的。如嵌入式系统中常见的I2C总线和SPI总线,特点是控制简单,成本低廉,本书后面会做具体介绍。其他的还有PCI总线,支持复杂的功能和很高的系统吞吐量。总线的出现规范了CPU和外设之间的通信标准,简化了外部器件的设计。使用一些通用的总线可以有效降低开发成本。2.2.5输入输出系统输入输出系统由外部设备和输入输出控制器组成,是CPU与外部通信的系统。CPU通过总线与输入输出系统相连。由于外部设备的速度差异,CPU可以使用不同的方式控制外部设备的访问。常见的有轮询方式、中断控制方式和DMA方式。程序中断方式最简单,CPU通过不断的查询某个外部设备的状态,如果外部设备准备好,就可以向其发送数据或者读取数据。这种方式由于CPU不断查询总线,导致指令执行受到影响,效率非常低。2.3软件基础知识嵌入式系统的基础是硬件,软件是嵌入式系统的灵魂。离开了软件,一个系统的功能就无法发挥。因此软件设计开发是嵌入式系统开发的一个重要环节。本节介绍软件的基础知识,开发流程以及基本的技术。2.3.1什么是软件使用过计算机的读者都使用过各种各样的软件,例如最常见的Word文字处理软件,还有上网使用的浏览器等。严格的说,软件是由程序和文档构成的,程序是一组按照特定结构组织的指令和数据集合。通常软件可以分成系统软件和应用软件,以及目前兴起的介于二者之间的中间件软件。系统软件是使用计算机提供的基本功能,例如操作系统和数据库系统。它们都不是针对某种特殊需求,而是面向通用的领域。应用软件是针对某种特殊需求设计的,一般来说具有专门的功能。比如MP3播放软件就是针对播放音乐设计的。软件的另一个组成部分是文档。随着软件复杂程度的提高,文档也越来越重要。常见的软件文档有开发文档和用户文档,前者面向开发人员,后者面向最终用户。软件开发人员应该树立起编写文档的好习惯。2.3.2软件开发流程软件开发流程是软件在开发过

1 / 542
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功