ARM嵌入式开发技术.ppt
ARM嵌入式开发技术,电气学院 屈稳太,嵌入式系统介绍嵌入式系统的特点、应用嵌入式系统硬件基本结构嵌入式系统软件的层次结构嵌入式操作系统BOOTLoaderARM编程的基础知识ARM开发和调试流程ARM与操作系统,嵌入式系统介绍,嵌入式系统是指以应用为中心,以计算机技术为基础,软、硬件可裁减,适应应用系统对功能、成本、体积、功耗等要求的专用计算机系统.由嵌入式处理器,嵌入式软件和嵌入式应用软件组成。随着微电子技术与计算机技术的发展,微控制芯片的功能越来越强大,嵌入式系统的设备也越来越多的出现在人们的日常生活之中。,按计算机的嵌入式应用和非嵌入式应用将其分为通用计算机和嵌入式计算机。通用计算机具有一般计算机的基本标准形态,通过装配不同的应用软件,以基本雷同的面目出现并应用在社会的各个方面,其典型产品为PC。而嵌入式计算机,它是以作为嵌入式系统的核心部件的形式隐藏在各种装置、设备、产品和系统中。因此嵌入式计算机是计算机技术发展中的一种计算机存在的形式,是从计算机技术的发展中分离出来的。,嵌入式系统的特点,嵌入式系统具有“嵌入”、“专用性”、“计算机”的基本要素和特征。嵌入式系统是应用于特定环境下,针对特定用途来设计的“专用系统”,所以不同于通用计算机系统。它的硬件和软件都必须高效率地设计、“量体裁衣”、去除冗余,力争在较少的资源上实现更高的性能。它与通用的计算机系统相比具有以下显著特点:,嵌入式系统的特点,具有较长的生命周期;嵌入式系统的目标代码通常是固化在非易失性存储器(ROM,EPROM,EEPROM,FLASH)芯片中;嵌入式系统使用的操作系统一般是实时操作系统(RTOS),系统有实时约束;嵌入式系统需要专用开发工具和方法进行设计;嵌入式微处理器通常包含专用调试电路;嵌入式系统是技术密集、高度分散、不断创新的知识集成系统;,嵌入式系统的分类,嵌入式系统按表现形式及使用硬件种类分为:芯片级嵌入式系统:系统中使用含程序或算法的处理器的嵌入式系统 模块级嵌入式系统:系统中使用某个核心模块的嵌入式系统嵌入式系统按软件实时性需求分:非实时系统(如PDA);软实时系统(如消费类产品);硬实时系统(工业实时控制系统),嵌入式系统的应用范围,电话的发展,电话 无晶体管,BT DECT 1千万个晶体管3个处理器,诺基亚手机 超过7亿个晶体管(多数用于存储器)5-6个处理器,计算机的发展,+,=,Apple Macintosh 黑白显示器1 MIP 处理器,Acorn Archimedes彩色显示器10 MIP 处理器 RISC集,掌上电脑/彩色显示200 MIP 处理器/64MB 内存 袖珍型,航海仪器的发展,地图、时钟、指南针 印刷及磁技术无晶体管,Raytheon 船用航海仪器,GarminGPS定位器 约1亿个晶体管2-3个处理器+4个人造卫星!,日用电器的发展,Apple IPOD 100 张CDs袖珍型四处理器,HP 1315 照片质量彩色打印机双处理器,数码照相机,我们正步入一个崭新的“数字世界”,无线连接是“数字胶水”,嵌入式应用,嵌入式系统硬件基本结构,嵌入式系统的硬件架构如图下半部分所示,是以嵌入式处理器为中心,配置存储器、I/O设备、通信模块以及电源等必要的辅助接口组成。嵌入式系统是“量身定做”的“专用计算机应用系统”,又不同于普通计算机组成,在实际应用中的嵌入式系统硬件配置非常精简,除了微处理器和基本的外围电路以外,其余的电路都可以根据需要和成本进行“裁剪”、“定制化”(Customize),非常经济、可靠。,嵌入式系统硬件基本结构,嵌入式系统硬件核心是嵌入式微处理器,有时为了提高系统的信息处理能力,常常外接DSP和DSP协处理器(也可内部集成)完成高性能信号处理。随着纳米芯片加工工艺技术的发展,以微处理器为核心的集成多种功能的SoC系统芯片已成为嵌入式系统的核心,在嵌入式系统设计中,要尽可能的选择能满足系统功能接口的SoC芯片,这些SoC集成了大量的外围USB、UART、以太网、AD/DA、IIS等功能模块。,嵌入式系统硬件基本结构,可编程片上系统SOPC(System On Programmable Chip)结合了SoC和CPLD、FPGA各自的技术优点,使得系统具有可编程的功能,是可编程逻辑器件在嵌入式应用中的完美体现,极大的提高了系统的在线升级、换代能力。以SoC/SOPC为核心,可以用最少的外围部件和连接部件构成一个应用系统,满足系统的功能需求,也是嵌入式系统发展的一个方向现代嵌入式设计是以处理器/SoC/SOPC为核心,其外围接口包括存储设备、通信接口设备、扩展设备接口和辅助的机电设备(电源、连接器、传感器等)构成硬件系统。,嵌入式外围接口电路和设备接口,根据外围设备的功能可分为以下5类 存储器类型通信接口输入输出设备 设备扩展接口 电源及辅助设备,存储器类型,存储器是嵌入式系统中存储数据和程序的功能部件,目前常见的存储设备按使用的存储器类型分为:静态易失型存储器(RAM,SRAM);动态存储器(DRAM);非易失性存储器ROM(MASK ROMEPROM,EEPROM,FLASH);硬盘、软盘、CDROM等。,通信接口,目前存在的所有计算机通信接口在嵌入式领域中都有 其广泛的应用,应用最为广泛的接口设备包括 RS-232接口(串口UART)USB接口(通用串行总线接口)IrDA(Infra Red Data Association红外线接口)、SPI(串行外围设备接口)、I2C、CAN总线接口、蓝牙接口(Bluetooth)Ethernet(以太网接口)、IEEE1394接口和通用可编程接口GPIO。,输入输出设备,CRT、LCD和触摸屏等,构成了嵌入式系 统中重要的信息输入输出设备,应用广泛。触摸屏可以方便的实现鼠标和键盘功能。,设备扩展接口,简单的嵌入式系统如具有简单的记事本、备忘录以及日程计划等功能的PDA,它所需要存储的数据量并不需要很大的内存。目前一些高端的嵌入式系统都会预留可扩展存储设备接口,为日后用户有特别需求时,可购买符合扩展接口规格的装置直接接入系统使用。常用的扩展卡有各种CF卡、SD卡、Memory Stick等。目前高端的嵌入式系统都留有一定的扩展卡接口。,电源及辅助设备,嵌人式系统力求外观小型化、重量轻以及电源使用寿命长,例如移动电话或PDA,体积较大或者过重的机型已经被淘汰。目前发展的目标是体积小、易携带和外观设计新颖等。在便携式嵌入式系统的应用中,必须特别关注电源装置等辅助设备。,嵌入式系统软件的层次结构,计算机由硬件和软件两部分组成,当设计一个简单的应用程序时,可以不使用操作系统,但是当设计较复杂的程序时,可能就需要一个操作系统(OS)来管理、控制内存、多任务、周边资源等等。依据操作系统所提供的程序界面来编写应用程序,可大大减少应用程序的负担。对于使用操作系统的嵌入式系统来说,嵌入式系统软件结构一般包含四个层面:设备驱动层、实时操作系统(RTOS)、应用程序接口(API)层、实际应用程序层。由于硬件电路的可裁减性和嵌入式系统本身的特点,其软件部分也是可裁减的。对于功能简单仅包括应用程序的嵌入式系统,一般不使用操作系统,仅有应用程序和设备驱动程序。现代高性能嵌入式系统应用越来越广泛,操作系统使用成为必然发展趋势。,嵌入式操作系统,操作系统OS(Operating System)是配置在计算机硬件上的第一层软件,在计算机系统中占据了特殊重要的地位;操作系统可以补平硬件差异,让应用程序可以在上面运行。通过由操作系统统所提供出来的系统界面来写应用程序,无须考虑到不同硬件所造成的差异,让程序设计人员能够专注于所擅长领域的开发,嵌入式操作系统,从用户的观点看OS是用户与计算机硬件系统之间的接口,用户在OS的帮助下能够方便、快捷、安全、可靠地操纵计算机硬件和运行自己的程序;从资源管理观点可以把OS视为计算机系统资源的管理者。嵌入式操作系统就是支持嵌入式系统工作的操作系统。它在知识体系和技术本质上与通用操作系统没有太大的区别,一般用于比较复杂的嵌入式系统软件开发中。,嵌入式操作系统,嵌入式系统一般具有实时特点。所谓实时系统,是指一个优先等级高的任务能够获得立即的、没有延迟的服务,它不需要等候任何其它任务。而且在得到CPU的使用权后,它可以一直执行到工作结束或是有更高等级的进程出现为止。嵌入式操作系统是嵌入式系统的灵魂,它的出现大大提高了嵌入式系统开发的效率,减少了系统开发的总工作量,而且提高了嵌入式应用软件的可移植性。,嵌入式操作系统,嵌入式操作系统相对于一般操作系统而言,仅指操作系统的内核,其他的诸如窗口界面或是通讯协议等模块,可以另外选择,目前大多数的嵌入式操作系统必须提供以下管理功能:多任务管理 存储管理 周边资源管理 中断管理,嵌入式操作系统,固化在硬件里面的系统,比如手机、路由器等嵌入式系统中的OS.常见的嵌入式系统有:-基于与Windows兼容,如Linux,uClinux,WinCE;-工业与通信类,如VxWorks,pSOS,Nuleus;-单片机类eCos,uCOS-II-面向internet类,如PalmOS除了WinCE的实时性稍差外,大多数嵌入式操作系统的实时性都很强。,C/OS-II内核,C/OS-II是一个可裁减的、源码开放的、结构小巧的实时多任务内核,主要面向中小型嵌入式系统,具有执行效率高、占用空间小、可移植性强、实时性能优良和可扩展性强等特点。C/OS-II中最多可以支持64个任务,分别对应优先级063,其中0为最高优先级。实时内核在任何时候都是运行就绪了的最高优先级的任务。,C/OS-II内核,C/OS-II结构小巧,最小内核可编译至2k(这样的内核没有太大实用性),即使包含全部功能如信号量、消息邮箱、消息队列及相关函数等,编译后的C/OS-II内核也仅有610kb,所以它比较适用于小型控制系统。C/OS-II具有良好的扩展性能,比如系统本身不支持文件系统,但是如果需要的话也可自行加入文件系统的内容。,WinCE操作系统,Microsoft Windows CE是针对有限资源的平台而设计的多线程、完整优先权、多任务的操作系统,但它不是一个硬实时操作系统。WinCE操作系统的基本内核需要至少200K的ROM,它支持 Win32 API子集、多种用户界面硬件、多种的串行和网络通讯技术、COM/OLE和其他的进程间通讯的先进方法。,WinCE操作系统,Windows CE有五个主要的模块 内核模块:支持进程和线程处理及内存管理 等基 本服务;内核系统调用接口模块:允许应用软件访问操作系统提供的服务;文件系统模块:支持DOS等格式的文件系统;图形窗口和事件子系统模块:控制图形显示,并 提供Windows GUI界面;通讯模块:允许同其他的设备之间进行信息交换。,WinCE操作系统,Windows CE嵌入式操作系统最大的特点是能提供与PC机类似的图形界面和主要的应用程序。Windows CE嵌入式操作系统的界面显示大多数与Windows里出现的标准部件,包括桌面、任务栏、窗口、图标和控件等等。这样只要是对PC机上的Windows比较熟悉的用户,可以很快地使用基于Windows CE嵌入式操作系统的嵌入式设备。,Bootloader,OS启动加载程序,类似于PC机的BIOSBootloader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。Bootloader的作用就是用来加载操作系统,主要分为两类:1)启动加载模式2)下载更新模式,1)启动加载模式:这种模式也称为“自主”模式。也即BootLoader从目标机上的某个固态存储设备(FLASH,EEPROM)上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是BootLoader的正常工作模式,因此在嵌入式产品发布的时候,Bootloader必须工作在这种模式下。,2)下载模式在这种模式下,目标机上的Bootloader将通过串口连接或网络连接等通信手段从主机(主要指PC)下载文件程序。从主机下载的文件通常首先被Bootloader保存到目标机的RAM中,然后再被Bootloader写到目标机的FLASH类固态存储设备中。Bootloader的这种模式通常在第一次安装内核与根文件系统时被使用或产品出厂的程序烧制;此外,以后的系统更新也会使用Bootloader的这种工作模式。工作于这种模式下的Bootloader通常都会向它的终端用户提供一个简单的命令行接口或在PC上安装一个专用的下载更新软件。,启动程序BootLoader,系统的启动通常有两种方式,一种是可以直接从Flash启动,另一种是可以将压缩的内存映像文件从Flash中复制、解压到RAM,再从RAM启动(为提高速度)。当电源打开时,一般的系统会去执行ROM(应用较多的是Flash)里面的启动代码。这些代码是用汇编语言编写的,其主要作用在于初始化CPU和板上的必备硬件如内存、中断控制器等。有时候用户必须根据自己板子的硬件资源情况做适当的调整与修改。,嵌入式应用软件开发,嵌入式软件开发需要软硬件开发环境和工具 嵌入式软硬件必须协同设计 需要新的设计方法 开发过程完成后,系统应用程序代码需要固化到系统中进行功能、性能和可靠性测试 技术挑战:软件要求高,开发工作量和难度大,ARM与操作系统,是否加载RTOS开发环境有两种:基于裸机和基于RTOS。在基于裸机的环境下,用户可以完全控制处理器的硬件,一切程序完全由开发者完成。而在基于RTOS的环境下,开发者面对的是一个具有多任务操作系统内核的处理器。在进行程序设计的时候只要完成系统各task的设计,任务的调度、管理由操作系统内核完成。,ARM架构处理器,嵌入式系统中应用最广泛的处理器。Advanced RISC Machine-ARMARM公司是嵌入式RISC处理器的IP供应商,提供ARM架构的处理器内核,半导体厂商进行二次设计,生产出各种ARM处理器。生产ARM架构的厂商及ARM芯片ST:STR7,STR9Ateml:AT91,AT92Intel:SA-110(strong ARM core)SAMSUNG:2410,44b0(后续课程yao详细介绍),ARM开发和调试流程,开发工具软件:C/C+编译器、链接器硬件:示波器等开发流程,产品功能方案,产品设计文档,硬件原理图、PCB,软件任务分析,资源分配,定义数据结构,硬件最小系统调试,软、硬件联调,调试方法(基于JTAG)编程器语法差错合理使用watch窗口,反汇编窗口,memory窗口。设置断点,嵌入式技术现状与发展,从嵌入式软件的应用领域看,手机是中国嵌入式软件应用最大的一块领域,但增长速度逐年趋缓。该应用领域在嵌入式软件整体规模中的比重将呈现出平稳下滑态势。随着3C(Computer、Communication、Consumer Electronic三类电子产品)融合的进程加快,数字电视、数码相机以及汽车电子等细分领域对嵌入式软件的需求将迅速加大,成为最有增长潜力的领域。目前中国的嵌入式人才主要集中在几个大城市,上海、北京等,而且入门的门槛较高。整个嵌入式行业对技术人员的需求远远大于现有的人员供给。,未来嵌入式技术发展,未来嵌入式系统的发展趋势,