第一部分嵌入式系统开发流程概述TX-2440A嵌入式视频教程主讲:相广超出品:天祥电子网址:第一讲嵌入式基础知识嵌入式系统的定义嵌入式系统的定义:以应用为中心,以计算机技术为基础,且软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗的严格要求的专用计算机系统嵌入式系统的定义广义的嵌入式系统凡是带有微处理器的专用系统都可以称为嵌入式系统。如单片机系统和带OS的ARM系统。各类单片机系统,在完成较为单一的专业功能时具有简洁高效的特点。但是由于他们没有操作系统,所以管理硬件和软件的能力有限,在实现复杂的多任务功能时往往困难重重,甚至无法实现。嵌入式系统的定义狭义的嵌入式系统是指那些使用嵌入式微处理器构成的独立系统,具有操作系统,完成特定功能,用于特定场合嵌入式系统的定义嵌入式系统的应用远远超过了各种通用计算机一台通用计算机的外部设备中就包含了5-10个嵌入式微处理器:键盘、鼠标、软驱、硬盘、显示卡、显示器、Modem、网卡、声卡、打印机、扫描仪、数字相机、USB集线器等均是由嵌入式处理器控制的在制造工业、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等方面均是嵌入式计算机的应用领域嵌入式系统的应用消费电子嵌入式应用信息家电智能玩具军事电子通信设备移动存贮工控设备智能仪表汽车电子网络设备工业军事国防电子商务网络嵌入式系统的组成总体上嵌入式系统可以划分成硬件和软件两部分硬件一般由高性能的微处理器和外围的接口电路组成软件一般由实时操作系统和其上运行的应用软件构成嵌入式系统的特点与PC机在硬件开发平台上对比设备名称嵌入式系统PCCPU嵌入式处理器(ARM,MIPS,Score+)CPU(Intel、AMD等)内存SDRAM芯片SDRAM或DDR内存条存储设备Flash芯片硬盘输入设备触摸屏,按键鼠标、键盘、麦克等输出设备LCD显示器其它设备音频芯片、USB芯片、网卡芯片等主板集成或外接卡嵌入式系统的特点与PC机在软件开发平台上对比名称嵌入式系统PC引导代码Bootloader引导,针对不同电路进行移植主板的BIOS引导,无须改动操作系统Linux、WinCE、VxWorks等,需要移植Windows、Linux等,无需移植驱动程序每个设备驱动针对电路板进行开发或移植,一般不能直接下载使用操作系统含有大多数驱动程序,或下载直接使用开发环境交叉编译本机编译协议栈需要移植操作系统或第三方提供嵌入式系统的特点系统内核小嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多专用性强嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植系统精简嵌入式系统一般不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于系统安全实时性操作系统这是嵌入式软件的基本要求,而且软件要求固化存储,以提高速度,软件代码要求高质量和高可靠性、实时性专用的开发工具和开发环境嵌入式系统的组成嵌入式系统的组成硬件部分:嵌入式微处理器外围硬件设备软件部分:嵌入式操作系统特定的应用程序嵌入式处理器嵌入式处理器是嵌入式系统的核心部件,与通用处理器的最大差异在于其大多工作在为特定用户群设计的系统中。嵌入式处理器通常把通用计算机中许多由板块完成的任务集成在芯片内部,从而有利于嵌入式系统趋于小型化,并具有高效率、高可靠性等特征。目前,市面上有1000多种嵌入式处理器芯片,包括ARM系列、MIPS系列、PowerPC系列等等。嵌入式处理器嵌入式片上系统(SOC)嵌入式微控制器(MCU)嵌入式微处理器(MPU)嵌入式DSP处理器(DSP)嵌入式处理器外围硬件设备外围设备是指在一个嵌入式系统当中,嵌入式处理器以外的完成存储、通信、调试、显示等辅助功能的其它部件,根据外围设备的功能可分为以下3类:存储器:SRAM、DRAM、NANDFLASH、NORFLASH等接口:并口、RS232串口、SPI串行接口、USB通用串行总线、以太网接口等人机接口:LCD、触摸屏、键盘等嵌入式操作系统用户的其它应用程序都建立在OS之上OS将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API,并根据各个任务的优先级,合理地在不同任务之间分配CPU时间主要功能:处理器管理存储器管理设备管理文件管理用户接口管理嵌入式操作系统单任务操作系统分时操作系统实时操作系统RTOS软实时OS硬实时OSDOS桌面OSWindowsLinuxUNIXPalmOSU/COSIIVxWorksRT-LinuxWindowsCE嵌入式Linux操作系统嵌入式操作系统1.嵌入式LinuxLinux本身所具备的源码开放、内核可裁减等种种特性使其成为一种重要的嵌入式操作系统随着嵌入式Linux技术的成熟,定制更加方便,同时支持更多的平台2.WinCEWinCE的缺点是体积庞大,价格昂贵,不完全开放源码。因此随着嵌入式操作系统领域日益激烈的竞争,微软不得不应付来自Linux等免费系统的冲击嵌入式操作系统3.VxWorksVxWorks是美国WindRiver公司专门为实时嵌入式系统设计开发的操作系统软件。VxWorks拥有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在实时嵌入式操作系统领域占据一席之地,但其昂贵的价格让不少厂商望而却步4.µC/OSµC/OS是一个典型的实时操作系统。它是研究和学习实时操作系统的重要选择。特点:源码公开、代码结构清晰、可移植性好、可裁减、可固化、内核属于抢占式,最多可以管理60个任务。嵌入式软件组成应用层:特定的应用程序文件系统/图形用户应用程序接口OS层:实时操作系统驱动层:设备驱动程序、HAL、BSP嵌入式开发分类硬件开发:电路设计驱动开发系统开发:Linux开发WINCE开发软件开发:应用程序图形界面