收藏 分销(赏)

嵌入式系统的特性及开发.ppt

上传人:天**** 文档编号:14664278 上传时间:2026-10-26 格式:PPT 页数:74 大小:2.71MB 下载积分:10 金币
下载 相关
嵌入式系统的特性及开发.ppt_第1页
第1页 / 共74页
嵌入式系统的特性及开发.ppt_第2页
第2页 / 共74页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,嵌入式系统的特性及开发,主要内容,1、为什么需要操作系统,2、为什么需要嵌入式操作系统,3、主流嵌入式操作系统及其用途,4、Linux,操作系统的特点,5、Linux,操作系统的应用,6、Linux,开发的主要任务,为什么需要操作系统,1、屏蔽硬件特性,标准化公用的使用特征。,2、提高系统运行的可靠性。,3、有效的资源管理。,4、提高开发效率和产品质量。,学习操作系统的目的,加深对使用的,OS,的理解,有利于充分利用操作系统提供的特性深入编程,编程时借鉴操作系统的设计思想和算法,选择购买操作系统设计操作系统或者修改现有的系统,为什么需要“嵌入式”操作系统,1、大量的电子设备的智能化水平和功能越来越强,需要操作系统的支撑才能实现。,2、嵌入式系统专业性强,稳定性要求高。,3、嵌入式操作系统代码量小,满足电子设备的存储和成本要求。,4、嵌入式操作系统可裁减性强,适应性好。,主流嵌入式操作系统,1、高实时类:,VxWorks、pSOS、Nucleas,用途:大型通讯设备、工业控制设备、火控设备等高实时领域。,2、,通用类:,Linux、WinCE、Symbin、,QNX,用途:消费电子(手机)、智能仪器等。,为什么Linux值得研究?,1、Linux完全开源,为学习操作系统提供了绝佳的平台。,2、Linux内核机制提供了现代操作系统的各种特性,满足大多数嵌入式应用的需要。,3、丰富的自由资源和外界支持,能够加快研发速度,降低研发成本。,4、能够掌握核心技术。,嵌入式系统系统的主要模块,1、进程管理:完成多任务和抢占调度模式,2、存储管理:完成虚拟内存和分页式管理,3、文件系统:采用日志文件系统:,jffs2,4、设备管理:提供高效、兼容性好的驱动模式,5、网络管理:完成相关的网络协议栈,嵌入式产品的开发流程,一、硬件开发。,二、软件开发,1、boot,程序开发。,2、操作系统平台搭建。,3、上层应用开发,PC与嵌入式硬件的比较,PC,硬件,功能模块固定,体积大小固定,外部接口规范,功耗控制简单,嵌入式系统硬件,没有必须支持的功能,没有固定的体积大小,没有必须提供的接口,功耗控制复杂,硬件的四大关键部分,Mcu,微控制器(,ARM,和,PowerPC),Dsp,数字信号处理器(,Ti、ADI,和专用,DSP),Fpge,可编程逻辑器件(,Altera、Xilinx),存储设备,Sram、Sdram,DOC、,微硬盘、,Eeprom,Flash,,硬件实例,二、嵌入式系统软件流程,1、Boot程序的开发,作用:完成硬件检查,调整硬件状态,实现操作系统的代码载入和启动。,u-boot:目前最为通用的boot开源项目。完成了主流CPU如arm、powerPC、MIPS等支持。能够实现以太网、USB以及存储设备分区功能。,开发工作:根据硬件特点和程序的载入的要求,实现方便生产、系统快速启动和便于开发调试。,2、Linux操作系统平台搭建,目的:,1)根据功能要求,选择操作系统特性,完成裁减。,2)根据硬件特点,完成驱动程序开发。,3)完成电源管理策略等嵌入式特性操作。,4)完成用户层需要的内核操作要求。,3、用户程序框架,总结,1、掌握嵌入式操作系统不但是新技术发展的需要,也是电子工程师职业发展的一个新的优势方向。,2、随着Linux的日渐成熟,越来越多的嵌入式产品会采用Linux。但Linux也存在诸多缺点,开发中也有很多困难。只有深入学习,才能够使Linux真正产生价值。,Linux是一个大的系统工程,学习和开发要做好计划合理分工,才能真正利用Linux的优点。,第一章嵌入式系统的硬件构成,1.1,、嵌入式处理器,A,、嵌入式微处理器,RISC,和,CISCZ,指令集,B,、嵌入式微控制器,即单片机,C,、嵌入式,DSP,处理器,D,、嵌入式片上系统,(System On Chip),2,、存储器,存储器的物理实质是一组或多组具备数据输入输出和数据存储功能的集成电路,用于充,当设备缓存或保存固定的程序及数据。存储器按存储信息的功能可分为只读存储器ROM,(Read Only Memory)和随机存储器RAM(Random Access Memory),存储设备的具体种类:,flash:Nor、NAND,硬盘:IDE、SCSI,内存:SDRAM DDRAM SRAM,存储卡:CF MD SD tf卡 记忆棒,3.1.1,液晶显示,液晶分为以下几类:段式(也称,8,字)、字符型和图形点阵,图形点阵式液晶:我们又将其分为,TN,、,STN,(,DSTN,)、,TFT,等几类,从色彩上分,,LCD,显示屏分为单色、灰度和彩色三种,价格由低到高,.,3.1.2,触摸屏,嵌入式系统中的触摸屏分为,电阻式.,电容式,电感式,其中电阻式触摸屏最为常用。,3.1.3其他输入、输出设备,语音输入输出技术,键盘,指纹识别、虹膜识别,传感器,4,、,电源转换与管理,1,、线性稳压电源,2,、开关稳压电源,3,、电荷泵电源。,4.2,电源,IC,的特点,(1)工作电压低,(2)工作电流不大,(3)封装尺寸小,(4)完善的保护措施,(5)耗电小及关闭电源功能,(6)有电源工作状态信号输出,(7)输出电压精度高,(8)新型组合式电源IC,4.3,电源,IC,选用指南,(1)优先考虑升压式DC/DC 变换器,(2)采用LDO 的最佳条件,(3)需负电源时尽量采用电荷泵,(4)不要追求高精度、功能全的最新器件,(5)不要“大马拉小车”,(6)输出电流大时应采用降压式DC/DC 变换器,(7)DC/DC 变换器中L、C、D 的选择,5,、,嵌入式系统硬件开发相关技术,嵌入式产品前面介绍的部分是最基本的硬件架构。但是一个嵌入式产品能够满足各种需要、能够成功的开发、调试和生产还需要各种相关的辅助技术。,5.1,接口技术,1,、并行接口,2,、串口,232,和,485,3,、,USB,4,、,PCMCIA,和,CF,5,、红外线接口,6,、总线,7,、,I2C,总线,8,、,SPI,总线,9,、,CAN,总线,5.2,嵌入式系统开发常用的硬件调试和编程技术,1,、微代码支持的串口调试,2,、编程技术,3,、,JATG,与,IEEE1149,协议简介,(pdf 30,页,),5.3 3.3V,和,5V,装置的互连,(,1,),5V TTL,装置驱动,3.3V TTL,装置。,5V TTL,和,3.3V LVC,的逻辑电平是相同的。因为,5V,容忍度的装置可以经受住,6.5V,的直流输入,所以,5V TTL,连接,3.3V,且容忍度为,5V,的装置时,可以不需要额外的元器件。,TI,的,CBT,(,crossbar technology,)开关可以用来从,5V TTL,向,3.3V,且容忍度不为,5V,的装置传送信号。该开关通过使用一个外部的产生,0.7V,压降的二极管和,CBT,(门极到源极的压降为,1V,),从而产生,3.3V,的电平。,(,2,),3V TTL,装置(,LVC,)驱动,5V TTL,装置。两者逻辑电平是相同的,连接可以不需要外部电路或装置。,(,3,),5V COMS,装置驱动,3.3V TTL,装置。两个不同的逻辑电平连接在一起,进一步分析,5VCOMS,装置的,VOH,和,VOL,与,3.3V LVC,装置的,VIH,和,VIL,电平,虽然存在不一致的地方,但有,5V,容忍度的,3.3V,装置可以在,5V CMOS,电平输入下工作。使用,5V,容忍度的,LVC,装置,,5V CMOS,驱动,3.3V LVC,是可能的。,(,4,),3.3V TTL,装置驱动,5V CMOS,装置。,3.3V LVC,的,VOH,是,2.4V,(输出电平可达,3.3,V,),而,5V CMOS,装置的最小,VIH,要求是,3.5V,。因此,用,3.3V LVC,或其他,3.3V,标,准的装置驱动,5V CMOS,装置是不可能的。解决该问题就需要用到专用芯片,如,TI,的,SN74ALVC164245,和,SN74LVC4245,等。这些芯片一边采用,3.3V,电平供电,另一,边采用,5V,电平供电,可以使,3.3V,逻辑部分驱动,5V CMOS,装置。,第二章操作系统,2.1.,基础知识,2.1.1.,操作系统功能,程序运行,I/O,设备访问,文件访问,系统访问,错误检测和反馈,系统使用纪录,程序开发,2.1.2.,操作系统发展史,1,、串行处理系统,2,、简单批处理系统,3,、多道程序设计批处理系统,4,、分时系统,5,、现代操作系统,(,1,)进程及进程管理,,(,2,)内存及虚拟管理,,(,3,)信息保护和安全,,(,4,)调度和资源管理,,(,5,)模块化系统化设计。,2.1.3.Linux,与嵌入式,Linux,Linux,是一个多用户多任务操作系统,支持分时处理和软实时处理,并带有微内核特征(如模块加载,/,卸载机制),具有很好的定制特性。,由于它是开放源码的,全世界很多科学技术人员在不断对它完善的同时,还增加了越来越多的新功能,比如说支持硬实时任务处理等。,Linux,在嵌入式系统应用方面尤其显示出其优越性。,Linux,的强大的网络功能将赋予嵌入式系统对网络天然的亲和力,从而为嵌入式系统的网络互连和功能扩展准备了广阔的发展空间。,2.2.,操作系统内核,2.2.1.,内存管理,2.2.1.1.,内存管理功能,2.2.1.2.,内存分割,2.2.1.3.,虚拟内存,2.2.1.3.,虚拟内存,(,1,)系统是否需要虚拟内存支持;,(,2,)系统对内存分割机制的选择问题;,(,3,)内存管理算法的选择问题。,分页的取放,分页的替换,驻留部分管理,加载控制,2.2.2.,进程与中断管理,基本任务之一就是进程管理。,操作系统需要为进程分配资源;实现进程间共享和交换信息;保护进程资源;以及实现进程间同步,为此,操作系统需要为每一个进程维护一个特定的数据结构用于描述该进程的状态和资源占用情况,从而实现对进程的管理和控制。,引入进程带来得问题,单处理器多道程序设计系统中,多个进程是交替执行的,一个多处理器系统中,多个进程不仅可以在某个处理器上交替执行,而且还可以在多个处理器上被并行处理。不管是交替方式还是并行处理都会导致进程并发现象。,进程管理因为线程的引入变得更加复杂。在一个多线程系统中,进程成了资源管理器,而线程成为程序的基本执行单元。,中断是现代计算机系统普遍采用和支持的技术。,2.2.2.1.,进程描述与控制,进程状态,五值模型的各个状态转移情况,(1),无 创建一个新的进程被创建用于执行一个程序。,(2),创建 就绪,(3),就绪 运行,(4),运行 退出当某个进程已经完成自身的任务或者因为某种原因终止了的话,操作系统会将其状态从运行状态转换为退出状态。,(5),运行 就绪,(6),运行 阻塞当一个正在运行中的进程需要某个事件发生后才能继续运行时,操作系统将其状态从运行状态转换为阻塞状态。这样操作系统可以运行其它进程。,(7),阻塞 就绪,进程描述,1),进程位置,某个进程和一段程序以及和这段程序相关的数据联系起来;同时,操作系统执行该进程时需要维持一个或多个堆栈用于跟踪过程调用以及过程间参数调用;最后,操作系统为了控制和管理该进程需要维护一系列与该进程相关的信息。操作系统所维护的这些信息通常被称为进程控制块(,Process Control Block,)。与进程相关的程序、数据、堆栈和进程控制块信息统称为进程映像。,操作系统会在物理内存中维护一个主进程表,其中的各个条目包含一个指向一个进程映像的指针,从而标明进程位置。,进程描述,2)进程标识,3)进程状态信息,4)进程控制信息,进程控制,1、对进程创建过程的控制而且还包括对进程状态切换的控制。,2、出于对操作系统某些关键数据如进程控制模块等的保护,进程的执行模式分为两种,即拥有更高权限的内核执行模式和拥有较低权限的用户执行模式。从而进程控制就增加了对进程执行模式切换的控制。,进程和线程,1,、进程就只是一个单纯的资源管理器,它管理着与进程相关的资源如进程映像、各类访问权限等等;,2,、线程成为操作系统的基本执行单元,受操作系统调度和控制。当然,线程也常常被称为轻量级进程,而这个时候的进程也常常被称作任务。,2.2.2.5.Linux,的进程与中断管理机制,Linux,进程状态有五种分别为运行态,可唤醒阻塞态、不可唤醒阻塞态、僵死状态和停滞状态,Linux,进程控制块,(,1,)进程状态:(,2,)调度信息:(,3,)进程标识:(,4,)进程间通讯:,Linux,支持的进程间通讯机制不仅包括传统,Unix,系统中的信号、管道和信号量机制,也支持,Unix System V,进程间通讯的共享内存、信号量和消息队列机制;,(,5,)进程间关联:(,6,)时间和定时器:进程需要维护其创建时间,从而决定分配给它的处理器时间片的消耗情况;另外,进程在发送信号等方面需要和定时器打交道,因此需要维护与进程相关的内部定时器;,(,7,)文件系统:(,8,)虚拟内存:(,9,)处理器相关信息:各个寄存器的内容等。,Linux,内核同步机制,1),非抢占,2),原子操作,3),中断禁止,4),内核信号量。信号量可以引起进程睡眠。,5),自旋锁。,用于,多处理器系统中,Linux,进程间通讯,信号(Signal),管道(Pipe and Named Pipe),信号量(Semaphore),消息队列(MessageQueue),共享内存(Shared Memory),Linux,中断与定时服务,bottom half,Tasklet,softirq,2.2.3.,调度机制,实时操作系统特点,其任务处理的确定性、响应灵敏度、用户参与控制、可靠性以及故障保护措施上。,衡量系统的确定性有一个比较好的指标,就是系统从接到要求处理的中断和对应的处理任务启动这两个事件发生的时间间隔。一般操作系统这个时间参数很大,而且可能会有几个数量级的变动。而在实时操作系统中,它应当很小,并且比较稳定,有一个上限值。,2.2.4.I/O,设备,一、是效率问题,因为,I/O,设备是系统性能的瓶颈所在,效率就尤显重要;,二、是抽象程度问题,我们总是希望所有的,I/O,设备都能有一个统一的接口便于上层系统和应用的操作,因此,需要对各,I/O,设备进行某种程度甚至是多个层次的抽象以便统一管理和操作。,2.2.4.4.I/O,缓冲技术,(1)单缓冲,(2)双缓冲,(3)循环缓冲,2.3.3.Linux,下的用户界面,2.3.3.1.X Window,简介,2.3.3.2.X,服务器,第三章嵌入式,Linux,嵌入式Linux 主要可以分为两类:第一类是在利用Linux 强大功能的前提下,使它尽可能的小,以满足许多嵌入式系统对体积的要求,如uClinux;,第二类是将Linux 开发成实时系统尤其是硬(firm)实时系统,应用于一些关键的控制场合,如RTLinux,3.1.2 uCLinux,1,、标准的,Linux,内核采用虚拟内存管理技术来提高系统运行效率,这种设计在硬件上需要有微处理器内嵌的内存管理单元(,MMU,)的支持。,是为微控制领域量身定做的,Linux,版本。,uCLinux,的设计思想就是通过对标准,Linux,内核的裁减,去除虚拟内存管理部分代码,并且对内存分配进行优化,从而达到提高系统运行效率的目的。它经过各方面的小型化改造,形成了一个高度优化的、代码紧凑的嵌入式,Linux,,虽然它的体积很小,但是仍然保留了,Linux,的大多数的优点:稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持、以及标准丰富的,API,。,ucLinux特性,(1),通用,Linux API,(2),内核体积,512 KB,(3),内核,+,文件系统,900 KB,(4),完整的,TCP/IP,协议栈,(5),支持大量其它的网络协议,(6),支持各种文件系统,包括,NFS,、,ext2,、,ROMfs and JFFS,、,MS-DOS,和,FAT16/32,3.1.2.1 uClinux,的内存管理,由于去除了与,MMU,相关的代码,,uClinux,可以生成精简的内核与应用程序,这一特点对于嵌入式系统来说优势是非常显著的,同时也使得,uClinux,与标准,Linux,有了本质的区别。在,uClinux,下开发应用程序与标准,Linux,没有太大区别。,由于没有对,MMU,的支持,,uClinux,缺乏内存保护机制和虚拟内存模块,这是,uClinux,与标准,Linux,最本质的区别所在。由此一些底层的系统调用也有不同程度的变化。,3.1.2.3,内存保护,运行没有虚拟内存模块的,Linux,,有三个主要问题是需要特别注意的:,(1),必须保证由内核载入的进程能够在各自独立的内存空间中运行。保证这一点的一,种方法是在程序载入内存以前就确定进程将占据的地址范围。另一种方法是在程序代码生成时只使用相对地址,uClinux,对这两种方法都有支持。,(2),内存的分配和释放都是直接在一维的内存映像中进行的,非常频繁的动态内存分配会在系统内存中产生很多碎片,从而导致系统内存不足。因而,为了改进采用动态内存分配方式的应用程序的执行性能,,uClinux,通过改写,malloc(),系统调用,使内存在一个内存块区的池中进行预分配。,(3)uClinux,不支持虚拟内存,系统无法保证不同内存页面载入到相同的地址,因此无法实现内存页面的换入与换出。因而在嵌入式系统中,一般而言,那些内存需求比系统实际具有的物理内存大的程序无法运行。,3.1.2.4,编程接口的改变,1、fork(),2、vfork(),3、exec(),3.1.2.6 uCLinux,内核运行方式,uCLinux,的内核有两种可选的运行方式:可以在,flash,上直接运行,也可以加载到内存中运行。后者可以减少内存需要。,Flash,运行方式,(XIP),:把内核的可执行映像烧写到,flash,上,系统启动时从,flash,的某个地址开始逐句执行。这种方法实际上是很多嵌入式系统采用的方法。,内核加载方式:把内核的压缩文件存放在,flash,上,系统启动时读取压缩文件在内存里解压,然后开始执行,这种方式相对复杂一些,但是运行速度可能更快(,RAM,的存取速率要比,Flash,高)。,3.2.,嵌入式设备的文件系统,第二版扩展文件系统,Ext2fs,临时文件系统,tmpfs,日志闪存文件系统版本,2,JFFS2,1,、调电数据保护。,2,、损耗均衡性。,3.3,嵌入式用户界面,Xfree86 4.X,(带帧缓冲区支持的,X11R6.4,),Microwindows,Qt/Embedded,MicroWindows,MiniGUI,第四章交叉编译,要想让计算机源程序运行就必须通过编译器把这个源程序编译生成相应计算机上的目标代码才能够运行,而编译的前提是必须要有一个机器语言组成的可以直接运行的编译器。第一个编译器只能使用机器语言编写,而现在就不需要这样了。如果想编写某种特定语言的编译器,可以直接利用已经有编译器的其它语言来编写,然后利用已有的编译器来编译,从而得到一种新的可以直接运行的编译器。,通常而言,一个编译器所编译生成的目标代码一般是这个编译器所在的机器上的机器语言编码。但是,也有例外的情况,这种情况常常在嵌入式系统开发中遇到,就是利用运行在某机器上的编译器编译某个源程序生成在另外一台机器上运行的目标代码,这种编译器即所谓的交叉编译器(,Cross Compiler,),4.2.,交叉编译技术,随着硬件平台和操作系统的多样化,软件向不同平台移植的工作变得越来越繁复。交叉编译技术的引入为软件的不同平台移植创造了便利条件。在交叉编译技术中有两种比较典型的实现。,一个我们称之为Java 模式,即Java 的字节码编译技术;,另外一个我们称之为GNU GCC 模式,即通常所讲的Cross GCC 技术。,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服