嵌入式系统设计 (2).ppt

上传人:wj 文档编号:14288690 上传时间:2023-06-22 格式:PPT 页数:56 大小:1.81MB
下载 相关 举报
嵌入式系统设计 (2).ppt_第1页
第1页 / 共56页
嵌入式系统设计 (2).ppt_第2页
第2页 / 共56页
嵌入式系统设计 (2).ppt_第3页
第3页 / 共56页
嵌入式系统设计 (2).ppt_第4页
第4页 / 共56页
嵌入式系统设计 (2).ppt_第5页
第5页 / 共56页
嵌入式系统设计 (2).ppt_第6页
第6页 / 共56页
嵌入式系统设计 (2).ppt_第7页
第7页 / 共56页
嵌入式系统设计 (2).ppt_第8页
第8页 / 共56页
嵌入式系统设计 (2).ppt_第9页
第9页 / 共56页
嵌入式系统设计 (2).ppt_第10页
第10页 / 共56页
嵌入式系统设计 (2).ppt_第11页
第11页 / 共56页
嵌入式系统设计 (2).ppt_第12页
第12页 / 共56页
嵌入式系统设计 (2).ppt_第13页
第13页 / 共56页
嵌入式系统设计 (2).ppt_第14页
第14页 / 共56页
嵌入式系统设计 (2).ppt_第15页
第15页 / 共56页
嵌入式系统设计 (2).ppt_第16页
第16页 / 共56页
嵌入式系统设计 (2).ppt_第17页
第17页 / 共56页
嵌入式系统设计 (2).ppt_第18页
第18页 / 共56页
嵌入式系统设计 (2).ppt_第19页
第19页 / 共56页
嵌入式系统设计 (2).ppt_第20页
第20页 / 共56页
亲,该文档总共56页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

嵌入式系统设计 (2).ppt

《嵌入式系统设计 (2).ppt》由会员分享,可在线阅读,更多相关《嵌入式系统设计 (2).ppt(56页珍藏版)》请在冰点文库上搜索。

嵌入式系统设计 (2).ppt

1,8.1嵌入式系统简介,嵌入式系统:

嵌入到各种控制应用系统、各类电子系统和电子产品中,实现嵌入式应用的计算机系统嵌入式系统是以应用为核心,以计算机技术为基础,软硬件可剪裁,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统Embeddedsystemisdevicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplantsIEEE嵌入式系统的主要特征面向控制对象,对多种不同的控制对象能灵活地进行实时控制嵌入到应用系统中在工业现场环境中可靠地运行,2,嵌入式系统的主要特点,软件硬件协同并行开发多种多样的微处理器实时操作系统的多样性(RTOS)与台式机相比,可利用系统资源有限应用支持很少要求特殊的开发工具代码固化运行调试手段有限软件硬件的鲁棒性(健壮性,Robust)嵌入式系统的体积和功耗,3,8.2设计方法及设计流程,嵌入式系统要解决的主要问题需要用什么样的系统结构来实现?

如何满足时限要求,如何处理多项功能在时间上的协调一致关系?

如何保证系统可靠地工作?

如何满足系统接口要求,嵌入式应用直接和系统接口输入输出信息?

如何降低系统的功耗?

如何使系统可升级?

4,设计流程自顶向下或自底向上设计,自顶向下设计,自底向上设计,5,单片机系统的开发流程,用户需求,开发结束,整个系统测试,按照设计的硬件平台编写软件,软件测试通过,选择处理器设计硬件平台,否,是,遇到硬件问题,修改硬件平台,否,是,6,嵌入式系统开发流程,用户需求,开发结束,整个系统测试,选择合适的嵌入式操作系统,在操作系统上开发应用程序,应用程序测试通过,选择嵌入式处理器及硬件平台,否,是,7,需求分析,作用使用户和设计者有效交流、沟通,明确设计目标设计者设计什么?

有哪些要求?

用户将得到的系统是什么样的?

目标形成需求文档内容功能性需求做什么?

输入,输出,功能,非功能性需求其他属性可靠性,速度,功耗,成本,大小,重量,设计时间,,8,评价标准,正确性无二义性完整性可检验性一致性可修改性可追踪性,9,例:

GPS移动地图的需求,10,设计规格说明,规格说明与需求的比较需求的提炼,需求的精确描述是可用来创建体系结构的关于系统的更详尽、更精确、更一致的描述目标形成规格说明书内容包含系统体系结构设计的足够信息统一描述系统的硬件和软件,11,例:

GPS系统的规格说明,从GPS卫星接收到的数据。

地图数据。

用户界面。

必须执行的满足客户需求的操作。

保持系统运行所需的后备动作,如操纵GPS接收机。

12,系统结构设计,作用实现系统的蓝图,系统整体结构的一个计划目标形成结构设计文档内容系统分析系统软硬件整体结构的设计软硬件划分标准构件和自行设计构件的确定,13,系统结构设计,系统如何实现设计说明书描述的功能基于组件的系统结构软件/硬件划分嵌入式系统中软件和硬件协同完成系统的功能软件硬件划分通常由速度、灵活性以及开销来决策,硬件单片机,X86,PowerPC,ARM,MIPS,板级支持程序,嵌入式操作系统,应用软件,监控程序,14,嵌入式系统硬件组成,15,例:

GPS系统的硬件体系结构,16,嵌入式系统软件的特征,操作系统功能任务调度资源管理设备驱动协议栈TCPIP应用软件框架软件要求固态化存储软件代码高质量、高可靠性系统软件(OS)的高实时性是基本要求多任务操作系统是知识集成的平台和走向工业标准化道路的基础,17,例:

GPS系统的软、硬件,18,标准构件和自行设计构件,构件的实现选择标准自行设计标准构件?

现成构件已经产品化形成规模生产标准构件自行设计构件用户系统构件包括了硬件构件和软件构件构件本身可以是层次性的,可以由子构件组成,19,构件,标准硬构件标准ICCPU,DSP,RAM,ROM,接口控制器,ASIC,标准IPCPU核,标准模块GPRS模块,GSM模块,蓝牙模块,显示模块,标准计算平台基于PC104的嵌入式计算机基于CompactPCI的嵌入式计算机SOC,20,构件,标准软构件OS/RTOS协议栈TCP/IP路由协议H.323图形开发包VxWorks的ZINK驱动程序,21,构件,自研硬构件内容逻辑电路,专用加速器,实现方式PCB:

IC:

PLDFPGAASIC,EDA设计工具板级:

原理图设计工具PCB设计工具IC硬件描述语言:

VHDL,Verilog原理图描述工具综合仿真工具布线器,自研软构件BSP驱动程序应用程序,22,8.3嵌入式处理器,嵌入式处理器种类嵌入式微处理器(MPU):

由通用计算机中的CPU演变而来intelx86、IBMPowerPC、motorola68K/coldfire、MIPS、ARM、HitachiSuperH等系列嵌入式微控制器(MCU):

即单片机,芯片内部集成ROM/EPROM,总线,总线逻辑,定时器,I/O单元,串口,A/D,D/A,flash等intel8051,P51XA,MCS系列,motorola68300等嵌入式DSP处理器TexasInstruments公司的TMS320系列和Motorola的DSP56000系列嵌入式片上系统(SoC),23,典型的嵌入式系统组成,处理器,MMU,GPIO,USB,LCD,CAN,DMA,以太网,LCD/触摸屏/鼠标,FlashSDRAMSRAM,看门狗复位电路,电源管理,驱动层,OS,应用,BSP/driver/HAL,Linux、u/COS、Wince,文件系统/GUI/API,软件,硬件,输入输出,24,嵌入式系统手机的一般组成,25,8.4嵌入式软件,简单的嵌入式应用若嵌入式系统的功能需求比较简单,如电动玩具、空调、冰箱等,则嵌入式系统软件只需完成较简单的功能,就不需要嵌入式操作系统的支持。

如:

基于8051的应用儿童玩具、汽车系统等等复杂的嵌入式应用若功能比较复杂,需要网络功能、存储器管理、进程/线程管理等,则通过嵌入式操作系统的帮助,可以加快嵌入式系统软件的开发进度和可靠性,26,简单的嵌入式系统软件开发,简单的嵌入式应用不需要使用操作系统当系统上电后,main函数将被调用,首先初始化,然后进入循环直到系统停电或者出现重大错误。

超级循环voidmain(void)/prepareforfunctionXX_init();While

(1)X();简单的嵌入式应用的开发过程在个人电脑上配置交叉开发环境、安装仿真器,编写程序,交叉编译,在仿真器上运行测试并修改直到软件满足需求;利用面包板开发和调试软、硬件利用编程器将软件烧到开发好的系统中进行现场运行测试,27,8.4.1嵌入式软件系统的一般结构,28,8.4.2嵌入式软件工作流程,上电复位、板级初始化阶段系统引导,软件加载系统初始化应用初始化多任务应用,29,8.4.3嵌入式操作系统,30,8.4.3嵌入式操作系统,嵌入式实时操作系统RTlinux及其他嵌入式实时LinuxuC/OSIIwindriversystems公司的VxworksQNXsoftwaresystems公司的QNX。

pSOSOS/9VRTXeCOSThreadX嵌入式非实时操作系统Microsoft公司的windowsCE、EmbeddedwindowsxpPalm公司的PalmOSsymbian公司的EPOC一些嵌入式linux系统,31,8.4.6常用的嵌入式实时操作系统,1.VxWorks嵌入式实时操作系统风河(WindRiver)公司开发的一款商用硬实时操作系统,不公开源码支持主流的32位CPU,包括x86、68K、PowerPC、MIPS、ARM等基于微内核结构,由400多个相对独立的,短小精悍的目标模块组成,可裁剪性和可配置性相当出色为追求系统的实时性而设计的,并不是以通用OS为设计目标任务调度采用的是基于优先级的抢占式任务调度模式,优先级分256级(0-255)Vxworks的基本构成模块包括以下部分:

高效实时微内核wind:

Vxworks实时微内核wind以灵活性和可配置性为设计目标,它主要包括基于优先级的任务调度任务同步和通信中断处理定时器内存管理兼容POSIX(PortableOperatingSystemInterfaceStandard)实时系统标准,32,1.VxWorks嵌入式实时操作系统,Vxworks的基本构成模块:

I/O处理系统:

Vxworks提供与ANSIC兼容的I/O处理系统,主要包括UNIX缓冲I/O处理系统面向实时的异步I/O处理系统本机文件系统网络处理模块:

Vxworks网络处理模块能与许多运行其他协议的网络进行通信,如TCP/IP、NFS、UDP、SNMP、FTP等虚拟内存模块VxVMI:

VxVMI主要用于对指定内存区的保护,如内存块只读等共享内存模块VxMP:

主要用于多处理器行运行任务之间的共享信号量、消息队列、内存块管理板级支持包BSP:

提供各种硬件的初始化、中断的建立、定时器、内存映象,33,3.uC/OSII,免费的公开源码实时操作系统内核提供任务调度和管理、时钟管理、任务间同步与通信、内存管理和中断服务等功能最多支持64个任务,分别对应优先级063,其中0为最高优先级可剥夺实时多任务内核调度工作的内容分为两部分:

最高优先级任务的寻找和任务切换内核是针对实时系统的要求来设计实现的,相对比较简单,可以满足较高的实时性要求但是没有网络功能和文件系统,对于像媒体播放、需要网络和图形界面支持的应用就比较差,34,4.WindowsCE,主要用于PDA,smartphone等个人手持终端上支持多线程支持多种软硬件最大的特点就是能提供与PC机类似的图形界面和主要的应用程序商业化操作系统主要模块内核模块:

支持进程和线程处理及内存管理等基本服务内核系统调用接口模块:

运行应用程序访问操作系统提供的服务文件系统模块:

支持dos,fat等格式的文件系统图形窗口和事件子系统模块:

控制图形显示,并提供windowsGUI界面通信模块:

运行同其他设备进行信息交换,35,更强的功能,微软的移动平台,36,8.5LINUX嵌入式操作系统,Linux是一个类似Unix(Unix-like)的操作系统,在1991年发行了它的第一个版本在不同的语境下,“Linux”具有不同的内涵Linux内核、Linux系统或Linux开发套件等术语。

严格来说,Linux指的是LinuxTorvalds维护的(及通过主要和镜像网站发布的)内核。

GNU/LinuxGNU/Linux的拥护者们认为,Linux仅仅是指Linux内核,而整个Linux系统的大部分都建立在GNU软件之上Linux是免费的、源代码开放的、符合POSIX(PortableOperatingSystemInterfaceStandard)标准规范的操作系统,37,LINUX发展历史,1991年11月,芬兰赫尔辛基大学的学生LinusTorvalds写了个小程序,取名为Linux,放在互联网上。

他表达了一个愿望,希望借此搞出一个操作系统的“内核”来,这完全是一个偶然事件1993,在一批高水平黑客的参与下,诞生了Linux1.0版1994年,Linux的第一个商业发行版Slackware问世1996年,美国国家标准技术局的计算机系统实验室确认Linux版本1.2.13(由OpenLinux公司打包)符合POSIX标准2001年,Linux2.4版内核发布2003年,Linux2.6版内核发布Linux内核版本号由3位数字组成,r.x.y,第1位数字r为主版本号,第2位数字x为说明版本类型的次版本号,如果x为偶数,则表示为产品化版本,为奇数时表示为实验版本,第3位数字y为修改号,表示错误修补的次数,38,几种流行的Linux发行版本,39,8.5.1嵌入式LINUX操作系统,什么是嵌入式Linux嵌入式Linux内核为特殊的硬件配置、或为了支持特别的应用而经过特别的裁剪的修改过的Linux内核通常具有不同于工作站与服务器的内核配置嵌入式Linux系统基于Linux内核的嵌入式系统嵌入式Linux发行套件开发嵌入式Linux系统的平台各种为了在嵌入式系统中使用而剪裁过的应用软件基于Linux的嵌入式操作系统uCLinuxARMLinuxRT-Linux/RTAIEmbedixBlueCatLinuxHardHatLinux等等,40,嵌入式Linux的典型应用,41,8.5.2嵌入式LINUX的移植,Bootloader移植引导加载程序bootloader是系统加电后运行的第一段代码,功能类似pc机的BIOS位于地址0x00000000实现初始化硬件设备,建立内存空间映射图为调用操作系统内核和用户应用程序准备好正确的环境Bootloader的启动可分为两个阶段stage1用汇编编写,依赖于体系结构,完成CPU及存储设备相关的初始化如初始化CPU运行的时钟频率,初始化Flash和内存的数据宽度、读/写访问周期和刷新周期,初始化中断系统,初始化系统中各种片内片外设备和I/O口,初始化系统各种运行模式下的寄存器和堆栈,跳转到stage2的C程序入口点等stage2用C语言编写,实现对板级驱动的支持如初始化要用到的内核映像和文件系统映像,并将PC指针指向操作系统内核的入口处,为操作系统的运行作好准备,42,Bootloader的stage1的初始化过程,43,Bootloader的stage1设计,1.在RAM中建立一个二级中断向量表,起始地址为0x33ffff00,加快中断响应#define_ISR_STARTADDRESS(SDRAM_END-0x100)/0x33ffff00definepISR_RESET(*(unsigned*)(_ISR_STARTADDRESS+0x0)/x33ffff00#definepISR_UNDEF(*(unsigned*)(_ISR_STARTADDRESS+0x4)/x33ffff04,44,Bootloader的stage1设计,2.拷贝Stage2至RAM的最顶部1MB开始的空间,RAM的起始地址为0x30000000/*计算stage2在flash中的位置,假设该映像不超过64K,自行可修改该值*/Adrr0,_startAddr2,r0,#(64*1024)Addr0,r0,#0x1000Ldrr1,BLOB_START/*开始复制stage2到RAM,R0=源起始地址,R1=目的地址,r2源结束地址*/copy_loop:

ldmiar0!

r3-r10stmiar1!

r3-r10cmpr0,r2blecopy_loopldrr0,BLOB_START/复制完跳转到RAM执行由此入口进入stage2,45,Bootloader的stage1设计,3.设置堆栈指针系统堆栈初始化取决于用户使用了哪些中断,以及系统需要处理哪些错误类型。

一般情况下,管理模式堆栈必须设置,如果使用了IRQ中断,则IRQ堆栈也必须设置,下面以IRQ堆栈为例进行设置。

IRQMode堆栈orrr1,r0,#IRQMODE|NOINTmsrcpsr_cxsf,r1;IRQModeldrsp,IRQStack,46,Bootloader的stage2设计,1.可执行映像stage2的入口编译和链接Bootloader的c程序时不能使用glibc库支持的函数,所以直接把main()函数的起始地址作为第二阶段的入口点用汇编编写一段trampoline(弹簧床)小程序用CPU跳转指令跳到main()函数去执行,当mian()函数返回时会再次回到trampoline程序,具体汇编代码如下:

getreadtocallcfunctionsldrspDW_STACK_STARTsetupstackpointermovfp,#0nopreviousframe,sofp=0mova2,#0setargvtoNULLblmaincallmainmovpc,#FLASH_BASEotherwise,reboot如果正常不出错就不会再回到trampoline程序,否则就会回到最后一条语句重起系统,47,Bootloader的stage2设计,2.内存影射若配置的SDRSAM大小为64M,则物理地址范围是0x300000000x33FFFFFF,由于1个Section的大小是1M,所以该物理空间可以被分成64个物理段,48,虚拟地址到物理地址的映射代码,voidmem_mapping_linear(void)unsignedlongdescriptor_index,section_base,sdram_base,sdram_size;sdram_base=0x30000000;sdram_size=0x4000000;for(section_base=sdram_base,descriptor_index=section_base20;section_base20)|MMU_OTHER_SECDESC;,49,Bootloader的stage2设计,3装载内核映像和根文件系统映像像ARM这样的嵌入式CPU通常都是在统一的内存地址空间中寻址Flash等固态存储设备的,因此从Flash上读取数据与从RAM单元中读取数据用一个简单的循环就可以完成从Flash设备上拷贝映像的工作:

其中count为根文件系统映像的大小或内核映像的大小。

While(count)*dest+=*src+;/src为fash中的地址,dest为RAM中的地址count-=4;,50,Bootloader的stage2设计,4置内核的启动参数内核启动可以从NandFlash或NorFlash中启动运行linux,需要修改启动命令如下:

#ifdefCONFIG_S3C2410_NAND_BOOTCharLinux_cmd=“noinitroot=/dev/bon/2init=/Linuxrcconsole=tty0console=ttys0”;#elseCharLinux_cmd=“CharLinux_cmd=”noinitroot=/dev/bon/3init=/Linuxrcconsole=tty0console=ttys0”;其中noinitrd不使用ramdisk。

root根文件系统所在MTD分区。

Init内核运行入口命令文件。

console内核信息控制台,ttys0表示串行口0。

tty0表示虚拟终端LCD启动参数一般都包括root、init和console,51,嵌入式LINUX内核移植,内核启动方式非压缩,非XIP(eXecuteInPlace):

内核以非压缩方式存放在Flash中,启动时由Bootloader加载到内存后运行非压缩,XIP:

内核以非压缩格式存放在ROM/Flash中,不需要加载到内存,由Bootloader直接跳转到其存放地址执行RAM自解压:

内核以压缩格式存放于ROM/Flash中,只能以非XIP方式运行;由开头的一段自解压代码和压缩内核数据组成Bootloader启动后加载到内存中的临时空间跳转到压缩内核入口地址执行自解压代码内核被解压到最终的目的地址,然后运行ROM自解压:

压缩内核存放在ROM/Flash中,不需要加载到内存就能运行;解压缩代码也能够以XIP的方式在ROM/Flash中运行Bootloader直接跳转到自解压代码的存放地址处执行将压缩内核解压到最终的目的地址并运行,52,内核启动地址的确定,arch/armnommu/boot/Makefile定义自解压代码的起始地址ZTEXTADDR和内核启动地址ZRELADDR自解压代码将内核解压到ZRELADDR后运行内核最先执行的文件head-armv.S,包括内核入口ENTRY到start_kernel间的初始化代码主要作用是检查CPUID,ArchitectureType,初始化BSS等操作,并跳到start_kernel在执行前,处理器应满足以下状态:

r0-shouldbe0r1-uniquearchitecturenumberMMU-offI-cache-onoroffD-cacheoff,53,内核入口部分源代码分析,ENTRY(stext)movr0,#F_BIT|I_BIT|MODE_SVCmakesuresvcmode;禁止FIQ、IRQ,设定SVC模式msrcpsr_c,r0andallirqsdisabled;置当前程序状态寄存器/*判断CPU类型,查找运行的CPUID值与Linux编译支持的ID值是否支持*/bl_lookup_processor_typeteqr10,#0invalidprocessor?

moveqr0,#pyes,errorpbeq_error;跳到_error/*判断体系类型,查看R1寄存器的ArchitectureType值是否支持*/bl_lookup_architecture_typeteqr7,#0invalidarchitecture?

moveqr0,#ayes,errorabeq_error;不支持,跳到出错/*创建核心页表*/bl_create_page_tablesadrlr,_retreturnaddressaddpc,r10,#12initialiseprocessorbstart_kernel;跳转到start_kernel函数内核分析,54,8.6嵌入式系统的测试,单元测试硬件测试:

硬件电路的功能和指标的测试可靠性测试和电磁兼容性测试软件测试测试实例或测试序列功能测试和覆盖测试找出哪个函数没有被功能测试完全覆盖;找出各函数的哪一段没有被执行;找出需要哪一个附加覆盖测试;运行附加测试;重复以上步骤,55,测试方法,功能测试称为黑盒测试:

测试实例在设计时不引用程序的实际代码极限情况测试边界测试异常测试性能测试随机测试覆盖测试称为白盒测试:

尽可能使每条代码语句、判定点或判定路径都最少被执行一次语句测试判定或分支覆盖条件覆盖灰盒测试:

仅仅知道程序内部细节的测试方法,灰盒测试与错误猜测结合,覆盖代码中的特定部分,56,习题,P3148.1;8.3;8.4;8.6;8.8;8.10;8.12,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2