第一章嵌入式系统概述嵌入式系统设计与应用开发了解嵌入式系统的基本组成了解嵌入式微处理器及ARM微处理器系列了解嵌入式操作系统掌握嵌入式系统设计的过程及方法1、嵌入式系统简介嵌入式系统的定义嵌入式系统体系结构应用领域和发展方向嵌入式系统定义嵌入式系统是以应用为中心,以计算机技术为基础,采用可剪裁软硬件,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。嵌入式计算机系统与通用计算机系统最本质的区别在于软硬件可裁剪、专用计算机系统。嵌入式系统是将一个计算机系统“嵌入”对象系统。这个对象可能是庞大的机器,也可能是小巧的手持设备。嵌入式系统的核心是嵌入式微处理器,该处理器都是RISC(ReduceInstructionSetComputing,精简指令集计算机)的处理器内核。嵌入式系统体系结构应用领域和发展方向信息电器移动计算设备网络设备工控、仿真、医疗仪器等2、嵌入式微处理器嵌入式处理器简介ARM微处理器ARM微处理器系列ARM处理器的选型S3C2410微处理器介绍嵌入式处理器简介嵌入式微处理器(EmbeddedMicroprocessorUnit,EMPU)嵌入式微控制器(MicrocontrollerUnit,MCU)嵌入式DSP处理器(EmbeddedDigitalSignalProcessor,EDSP)嵌入式片上系统(SystemOnChip)ARM微处理器ARM是(AdvancedRISCMachines,高级精简指令系统处理器)的缩写,它既是一种微处理器知识产权(IP)核,也是一个公司的名称。1991年公司成立于英国剑桥,其主要业务是设计16位和32位的嵌入式微处理器。ARM本身并不生产和销售芯片,而是采用技术授权的方式,由合作公司生产各具特色的芯片。世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。ARM微处理器的特点体积小、低功耗、低成本、高性能支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件大量使用寄存器,指令执行速度快大多数数据操作都在寄存器中完成寻址方式灵活简单,执行效率高采用固定长度的指令格式ARM微处理器系列ARM7系列:一般包括ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ几种内核.ARM7TDMI是目前使用最广泛的32位嵌入式RISC处理器之一,主要应用工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。TDMI的基本含义为:T:支持16为压缩指令集Thumb;D:支持片上Debug;M:内嵌硬件乘法器(Multiplier)I:嵌入式ICE,支持片上断点和调试点ARM微处理器系列ARM9系列:包含ARM920T、ARM922T和ARM940T三种类型,主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。其中S3C2410就是ARM9系列的ARM920T类型。ARM9具有以下特点:5级流水线,指令执行效率更高。提供1.1MIPS/MHz的哈佛结构。支持32位元ARM指令集和16位元Thumb指令集。支持32位元的高速AMBA汇流排界面。全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。支持数据Cache和指令Cache,具有更高的指令和数据处理能力。ARM9E系列:包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型。主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。ARM微处理器系列ARM10E系列:包含ARM1020E、ARM1022E和ARM1026EJ-S三种类型。主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。SecurCore系列:包含SecurCoreSC100、SecurCoreSC110、SecurCoreSC200和SecurCoreSC210四种类型,主要应用于一些对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。Intel的Xscale:Xscale处理器是基于ARMv5TE架构的解決方案,是一款全性能、高成本效益比、低功耗的处理器。它支持16位的Thumb指令和DSP指令集,已使用在许多移动电话、个人数字助理和网络产品等场合。ARM微处理器系列Intel的StrongARM:StrongARMSA-1100处理器是采用ARM架构高度整合的32位元RISC微处理器。它融合了Intel公司的设计和处理技术以及ARM架构的电源效率,采用在软件上相容ARMv4架构、同时采用具有Intel技术优点的架构。IntelStrongARM处理器是便携型通讯产品和消費类电子产品的理想选择,已成功应用于多家公司的掌上电脑系列。其中,ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用而设计。Intel的Xscale和StrongARM也是应用非常广泛的嵌入式处理器系列。ARM微处理器的选型1).ARM微处理器内核的选择如果使用WindowsCE或标准Linux等操作系统,就需要选择ARM720T以上带有MMU功能的ARM晶片。ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都带有MMU功能。而ARM7TDMI则沒有MMU,不支持WindowsCE和标准Linux,但目前有uCLinux等不需要MMU支持的操作系统可执行ARM7TDMI硬件平台。2).系统的工作频率系统的工作频率在很大程度上决定了ARM微处理器的处理能力。ARM7系列微处理器的典型处理速度为0.9MIPS/MHz,常见的ARM7晶片系统主时钟为20MHz-133MHz。ARM9系列微处理器的典型处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟为100MHz-233MHz,ARM10最高可以达到700MHz。3).晶片内部存储体的容量大多数的ARM微处理器晶片內部存储体的容量都不太大。如ATMEL的AT91F40162就具有最高2MB的晶片内部存储空间。4).晶片内部周围电路选择如USB接口、IIS接口、IIC接口、LCD控制器、键盘接口、RTC、ADC和DAC、DSP等,设计者应该分析系统的需求,尽可能采用晶片内部周围电路完成所需的功能,这样既可以简化系统的设计,同时提高系统的可靠性。S3C2410微处理器介绍3.S3C2410微处理器介绍S3C2410是三星电子开发的一种32位RISC微处理器,它是基于ARM920T内核开发的。S3C2410是面向低价格、低功耗和高性能的手持设备和小型设备而设计。S3C2410的具体特点:系统管理支持小端/大端方式地址空间:128M字节每一个Bank(总共1G字节)每个BANK可编程为8/16/32位数据总线BANK0到BANK6采用固定起始地址和大小BANK7具有可编程的BANK起始地址和大小共8个存储器BANK前6个存储器BANK用于ROM、SRAM和其他另外两个存储器BANK用于ROM、SRAM和同步DRAM支持等待信号用以延长总线周期支持掉电时的SDRAM自刷新模式支持不同类型的ROM引导(NOR/NANDFlash、EEPROM和其他)。S3C2410的SoC芯片集成单元内部1.8V,存储器3.3V,外部I/O3.3V,16KB数据CACHE,16KB指令CACHE,MMU内置外部存储器控制器(SDRAM控制和芯片选择逻辑)LCD控制器,一个LCD专用DMA4个带外部请求线的DMA3个通用异步串行端口(IrDA1.0,16-ByteTxFIFO,and16-ByteRxFIFO),2通道SPI一个多主I2C总线,一个I2S总线控制器SD主接口版本1.0和多媒体卡协议版本2.11兼容两个USBHOST,一个USBDEVICE(VER1.1)4个PWM定时器和一个内部定时器看门狗定时器117个通用I/O24个外部中断电源控制模式:标准、慢速、休眠、掉电8通道10位ADC和触摸屏接口带日历功能的实时时钟芯片内置PLL设计用于手持设备和通用嵌入式系统16/32位RISC体系结构,使用ARM920TCPU核的强大指令集带MMU的先进的体系结构支持WinCE、EPOC32、Linux指令缓存(CACHE)、数据缓存、写缓冲和物理地址TAGRAM,减小了对主存储器带宽和性能的影响ARM920TCPU核支持ARM调试的体系结构内部先进的位控制器总线(AMBA)(AMBA2.0,AHB/APB)3.嵌入式操作系统嵌入式操作系统简介各类嵌入式操作系统简介嵌入式Linux简介内存管理进程管理文件系统嵌入式操作系统简介操作系统可以有效管理越来越复杂的系统资源。操作系统可以把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来。操作系统可以提供库函数、驱动程序、工具集以及应用程序。各类嵌入式操作系统(1)嵌入式LinuxWindowsCESymbianAndroid各类嵌入式操作系统(2)uC/OS-IIVxWorks其他嵌入式操作系统–QNX–PalmOS–OS-9–LynxOS嵌入式Linux简介uCLinuxRT-Linux红旗嵌入式LinuxuCLinux是Lineo公司的产品,是开放源码的嵌入式Linux的典范之作。编译后目标文件可控制在几百KB数量级,并已经被成功地移植到很多平台上。uCLinux是专门针对没有MMU的处理器而设计的,即uCLinux无法使用处理器的虚拟内存管理技术。uCLinux采用实存储器管理策略,通过地址总线对物理内存进行直接访问。RT-Linux是美国新墨西哥州大学计算机科学系VictorYodaiken和MicaeBrannanov开发的嵌入式Linux操作系统。RT-Linux开发者并没有针对实时操作系统的特性而重写Linux的内核,而是通过在Linux内核与硬件中断之间增加一个精巧的可抢先的实时内核,把标准的Linux内核作为实时内核的一个进程与用户进程一起调度。红旗嵌入式Linux是由北京中科红旗软件技术有限公司的产品。–精简内核,适用于多种常见的嵌入式CPU–提供完善的嵌入式GUI和嵌入式X-Windows–提供嵌入式浏览器、邮件程序和多媒体播放程序–提供完善的开发工具和平台内存管理内存管理和MMU标准Linux的内存管理uCLinux的内存管理内存管理和MMU存储管理包含了地址映射、内存空间的分配,有时候还包括地址访问的限制(即保护机制);如果将I/O也放在内存地址空间中,则还要包括I/O地址的映射;另外,像代码段、数据段、堆栈段空间的分配等等都属于内存管理。MMU,即内存管理单元,其主要作用是两个方面:一是地址映射;二是对地址访问的保护和限制。标准Linux的内存管理标准Linux使用虚拟存储器技术,提供比计算机系统中实际使用的物理内存大得多的内存空间。–运行比内存还要大的程序–先加载部分程序运行,缩短了程序启动的时间–可以使多个程序同时驻留在内存中提高CPU的利用率–可以运行重定位程序–写机器无关的代码–减轻程序员分配和管理内存资源的负担–可以进行内存共享–提供内存保护uCLinux的内存管理uCLinux虽然不能使用处理器的虚拟内存管理技术,它仍然采用存储器的分页管理--实存储器管理(RealMemoryManagement)开发人员参与系统的内存管理–编译内核时,开发人员必须告诉系统这块开发板到底