二、基本概念_第1页
二、基本概念_第2页
二、基本概念_第3页
二、基本概念_第4页
二、基本概念_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1嵌入式系统设计与实例开发嵌入式系统设计与实例开发ARMARM与与 C/OS-C/OS-第二讲第二讲 基本概念及设计方法基本概念及设计方法2本节提要本节提要关于课程与大作业的说明关于课程与大作业的说明嵌入式系统软硬件基础嵌入式系统软硬件基础嵌入式系统设计方法嵌入式系统设计方法一个嵌入式设计方法实例一个嵌入式设计方法实例3一、基于实验平台一、基于实验平台( ( C/OS+ARM)C/OS+ARM),完成一个嵌入式小游戏,如搬运工、贪,完成一个嵌入式小游戏,如搬运工、贪吃蛇等(难度等级:吃蛇等(难度等级:EASYEASY)。)。二、基于实验平台,完成二、基于实验平台,完成 C/OSC/OS到到AR

2、MARM的移植,并完成一个嵌入式游戏(的移植,并完成一个嵌入式游戏(难度等级:难度等级:MIDDLEMIDDLE)。)。三、基于实验平台,完成三、基于实验平台,完成 CLinuxCLinux到到ARMARM上的移植,并完成一个嵌入式应上的移植,并完成一个嵌入式应用程序(难度等级:用程序(难度等级:HARDHARD)。)。说明:以上说明:以上3 3个题目可根据自己个题目可根据自己TEAMTEAM的基础和条件选做,或者自己拟定题的基础和条件选做,或者自己拟定题目,但一定要先经过任课教师同意。目,但一定要先经过任课教师同意。大作业题目大作业题目4一、一、TEAMTEAM:3-43-4人一组,人一组,

3、1010月月2020日之前提交大作业任务计划书(格式自日之前提交大作业任务计划书(格式自拟),包括以下内容(题目,设计目标,提交物,开发进度,任务拟),包括以下内容(题目,设计目标,提交物,开发进度,任务分工);分工);二、选题:二、选题:要根据要根据TEAMTEAM的实际情况,结合兴趣,重质量不重难度;的实际情况,结合兴趣,重质量不重难度;三、提交:三、提交:1212月月2929日之前,提交设计说明书,包括代码、流程、演示结日之前,提交设计说明书,包括代码、流程、演示结果;果;四、评分标准:四、评分标准:完成质量完成质量-5-5、技术难度、技术难度-3-3、其他(进度、协作等)、其他(进度、

4、协作等)-2-2,评选评选3 3组优秀奖;组优秀奖;五、设备使用:五、设备使用:TEAMTEAM借用,保管完好,用后归还。借用,保管完好,用后归还。大作业的要求大作业的要求5关于本课程的说明关于本课程的说明一、一、期望值期望值l嵌入式系统是一类实用技术,本门课程以介绍实用开发技术为嵌入式系统是一类实用技术,本门课程以介绍实用开发技术为主,重点为动手实践,不会涉及到复杂的嵌入式系统建模、调主,重点为动手实践,不会涉及到复杂的嵌入式系统建模、调度算法等理论知识;度算法等理论知识;l由于只有由于只有3232个课时,而嵌入式系统涉及知识面又非常广,本门个课时,而嵌入式系统涉及知识面又非常广,本门课程的

5、目的是介绍大家课程的目的是介绍大家“入门入门”;l要想深入了解和学习,大家需要付出更多的时间和努力。要想深入了解和学习,大家需要付出更多的时间和努力。二、其他二、其他l嵌入式的应用领域非常广阔,即使我们目前的平台,也可以开嵌入式的应用领域非常广阔,即使我们目前的平台,也可以开发出各种应用:如游戏、发出各种应用:如游戏、MP3MP3、智能手机平台等;、智能手机平台等;l大家如果没有时间或没有兴趣完成大作业,建议退课;大家如果没有时间或没有兴趣完成大作业,建议退课;l完成大作业时,发扬完成大作业时,发扬TEAMTEAM的团队精神和协作精神,培养自已解的团队精神和协作精神,培养自已解决问题的能力。决

6、问题的能力。6课程与实验设置课程与实验设置课程设置(围绕完成大作业所需要的知识展开)课程设置(围绕完成大作业所需要的知识展开)l嵌入式软硬件开发环境简介(嵌入式软硬件开发环境简介(3 3)lARMARM微处理器体系结构与指令集(微处理器体系结构与指令集(6 6)l C /OSC /OS操作系统分析与移植(操作系统分析与移植(6 6)lARM+ ARM+ C /OSC /OS系统软硬应用设计(系统软硬应用设计(6 6)lLinuxLinux系统及其在系统及其在ARMARM上的移植(上的移植(6 6)实验设置实验设置l熟悉基本开发环境及软硬件平台熟悉基本开发环境及软硬件平台l C /OSC /OS

7、在在ARMARM上的移植实验上的移植实验l交通管制信号灯模拟实验交通管制信号灯模拟实验I/OI/O接口接口l模拟电子画板实验模拟电子画板实验触摸屏应用触摸屏应用lLinuxLinux开发环境实验开发环境实验7本节提要本节提要关于课程与大作业的说明关于课程与大作业的说明嵌入式系统软硬件基础嵌入式系统软硬件基础嵌入式系统设计方法嵌入式系统设计方法一个嵌入式设计方法实例一个嵌入式设计方法实例8嵌入式系统的软/硬件框架嵌入式嵌入式微处理器微处理器SDRAMSDRAMROMROMI/OI/OA/DA/DD/AD/A人机交互接口人机交互接口通用接口通用接口实时操作系统(实时操作系统(RTOS)RTOS)图

8、形用户图形用户接口接口BSP/HAL 硬件抽象层/板极支持包BSP/HAL 硬件抽象层/板极支持包任务管理任务管理文件系统文件系统应用程序应用程序嵌入式计算机系统嵌入式计算机系统硬件层硬件层软件层软件层中间层中间层功能层功能层9l冯冯诺依曼体系结构和哈佛体系结构诺依曼体系结构和哈佛体系结构lCISCCISC与与RISCRISClIP IP 核核l流水线流水线l存储器系统存储器系统嵌入式系统硬件基础嵌入式系统硬件基础10冯冯诺依曼体系结构模型诺依曼体系结构模型指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器存储器存储器程序程序指令指令0 0指令指令1 1指令指

9、令2 2指令指令3 3指令指令4 4数据数据数据数据0 0数据数据1 1数据数据2 211哈佛体系结构哈佛体系结构指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器程序存储器程序存储器指令指令0指令指令1指令指令2数据存储器数据存储器数据数据0数据数据1数据数据2地址地址指令指令地址地址数据数据12CISC和和RISCCISCCISC:复杂指令集(:复杂指令集(Complex Instruction Set ComputerComplex Instruction Set Computer)具有大量的指令和寻址方式;具有大量的指令和寻址方式;8/28/2原则:原

10、则:80%80%的程序只使用的程序只使用20%20%的指令;的指令;大多数程序只使用少量的指令就能够运行。大多数程序只使用少量的指令就能够运行。RISCRISC:精简指令集(:精简指令集(Reduced Instruction Set Computer)Reduced Instruction Set Computer)在通道中只包含最有用的指令;在通道中只包含最有用的指令;确保数据通道快速执行每一条指令;确保数据通道快速执行每一条指令;使使CPUCPU硬件结构设计变得更为简单。硬件结构设计变得更为简单。 13CISC与与RISC的数据通道的数据通道IFIDREGALUMEM开始退出IFIDAL

11、UMEMREG微操作通道开始退出单通数据通道14CISC与与RISC的对比的对比类别类别CISCCISCRISCRISC指令系统指令系统指令数量很多指令数量很多较少,通常少于较少,通常少于100100执行时间执行时间有些指令执行时间很长,如有些指令执行时间很长,如整块的存储器内容复制;或整块的存储器内容复制;或将多个寄存器的内容复制到将多个寄存器的内容复制到存贮器存贮器没有较长执行时间的指令没有较长执行时间的指令编码长度编码长度编码长度可变,编码长度可变,1-151-15字节字节编码长度固定,通常为编码长度固定,通常为4 4个字节个字节寻址方式寻址方式寻址方式多样寻址方式多样简单寻址简单寻址操

12、作操作可以对存储器和寄存器进行可以对存储器和寄存器进行算术和逻辑操作算术和逻辑操作只能对寄存器对行算术和逻辑只能对寄存器对行算术和逻辑操作,操作,Load/StoreLoad/Store体系结构体系结构编译编译难以用优化编译器生成高效难以用优化编译器生成高效的目标代码程序的目标代码程序 采用优化编译技术,生成高效采用优化编译技术,生成高效的目标代码程序的目标代码程序 15知识产权核(知识产权核(IP核核, intellectual property)l识产权知识产权识产权知识产权(IP) (IP) 电路或核是设计好并经过验证的集成电路功电路或核是设计好并经过验证的集成电路功能单元。能单元。lI

13、PIP复用意味着设计代价降低(时间,价格)。复用意味着设计代价降低(时间,价格)。 lIPIP核的类别核的类别: :l微处理器微处理器微处理器微处理器: ARM, PowerPC;: ARM, PowerPC;l存储器存储器存储器存储器: RAM, memory controller;: RAM, memory controller;l外设外设: PCI, DMA controller;: PCI, DMA controller;l多媒体处理多媒体处理: MPEG/JPEG ;: MPEG/JPEG ;lencoder/decoder ;encoder/decoder ;l数字信号处理器数字信

14、号处理器(DSP)(DSP); l通信通信: Ethernet controller, router: Ethernet controller, router。16IPIP核的种类核的种类lSoft Cores(Soft Cores(“codecode”) )(软核)(软核)lHDLHDL语言描述;语言描述;l灵活度高,可修改;灵活度高,可修改;l与工艺独立,可根据具体的加工工艺重新综合;与工艺独立,可根据具体的加工工艺重新综合;lIPIP很难保护。很难保护。lFirm cores(Firm cores(“code+structurecode+structure”)()(固核)固核)l逻辑综合

15、后的描述;逻辑综合后的描述;l与工艺相关。与工艺相关。lHard cores(Hard cores(“physicalphysical”)()(硬核)硬核)l物理综合后的描述;物理综合后的描述;l准备流片;准备流片;l包含工艺相关的布局和时序信息;包含工艺相关的布局和时序信息;lIPIP很容易保护。很容易保护。l多数的处理器和存储器多数的处理器和存储器17IPIP核的商业模型核的商业模型三种模式三种模式1.1.设设计者提供设计和工具的许可证计者提供设计和工具的许可证lDSP Group (Pine and Oak Cores), 3Soft, ARMDSP Group (Pine and Oa

16、k Cores), 3Soft, ARM。 l提供包括提供包括HDLHDL在内的模拟模型,工具或仿真器。在内的模拟模型,工具或仿真器。l使用者负责设计制造。使用者负责设计制造。2.2.核厂商设计并制造集成电路芯片核厂商设计并制造集成电路芯片lTI, Motorola, LucentTI, Motorola, Lucent。lVLSI, SSI, Cirrus, AdaptecVLSI, SSI, Cirrus, Adaptec。3.3.核厂商卖核核厂商卖核, , 负责为客户设计并制造芯片负责为客户设计并制造芯片lLSI logic, TI, LucentLSI logic, TI, Lucen

17、t。18IPIP核的市场构成核的市场构成l74% 74% 为硬件设计厂商。为硬件设计厂商。l26% 26% 将购买将购买IP IP 核。核。l40% hard, 68% soft, 32% firm40% hard, 68% soft, 32% firm。19ARM的的IP核核固化宏单元(硬核)固化宏单元(硬核)ARM920TARM7TDMIARM720TARM1022E可综合内核(软核)可综合内核(软核)ARM926EJ-SARM7TDMI-SARM1026EJ-S测试芯片测试芯片ARM10200E20流水线技术流水线技术流水线技术:几个指令可以并行执行。流水线技术:几个指令可以并行执行。提

18、高了提高了CPUCPU的运行效率。的运行效率。内部信息流要求通畅流动。内部信息流要求通畅流动。译码取指执行add译码取指执行sub译码取指执行cmp时间AddSubCmp21指令流水线指令流水线以以ARM为例为例l为增加处理器指令流的速度,为增加处理器指令流的速度,ARM7 ARM7 系列使用系列使用3 3级流水线。级流水线。允许多个操作同时处理,比逐条指令执行要快。允许多个操作同时处理,比逐条指令执行要快。l PCPC指向正被取指的指令,而非正在执行的指令。指向正被取指的指令,而非正在执行的指令。FetchDecodeExecute从存储器中读取指令解码指令寄存器读(从寄存器Bank)移位及

19、ALU操作寄存器写(到寄存器Bank )PCPCPC - 4PC-2PC - 8PC - 4ARMThumb22 最佳流水线最佳流水线l该例中用该例中用6 6个时钟周期执行了个时钟周期执行了6 6条指令。条指令。l所有的操作都在寄存器中(单周期执行)。所有的操作都在寄存器中(单周期执行)。l指令周期数指令周期数 (CPI) = 1(CPI) = 1。 操作操作周期周期 1 2 3 45 6 ADD SUB MOV AND ORR EOR CMP RSBFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecute

20、FetchDecodeExecuteDecodeExecuteFetchDecodeFetchFetch23 LDR 流水线举例流水线举例l该例中,用该例中,用6 6周期执行了周期执行了4 4条指令条指令l指令周期数指令周期数 (CPI) = 1.5 (CPI) = 1.5 周期周期 操作操作123456 ADD SUB LDR MOV AND ORRFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDataWritebackFetchDecodeExecuteFetchDecodeFetch24分支流水线举例分支流水线举例l流水线被阻

21、断。流水线被阻断。l注意注意: :内核运行在内核运行在ARMARM状态。状态。周期周期 1 2 3 4 5 0 x8000 BL 0 x8004 X0 x8008 XX0 x8FEC ADD0 x8FF0 SUB0 x8FF4 MOV地址地址 操作操作FetchDecodeExecuteFetchDecodeExecuteFetchDecodeFetchFetchDecodeExecuteLinkretAdjustFetchDecodeFetch25存储器系统存储器系统RAMRAM:随机存取存储器,:随机存取存储器, SRAMSRAM:静态随机存储器,:静态随机存储器, DRAMDRAM:动态

22、随机存储器。动态随机存储器。 SRAMSRAM比比DRAMDRAM快。快。 SRAMSRAM比比DRAMDRAM耗电多。耗电多。 DRAMDRAM存储密度比存储密度比SRAMSRAM高得多。高得多。 DRMDRM需要周期性刷新。需要周期性刷新。ROMROM:只读存储器。:只读存储器。FLASHFLASH:闪存。:闪存。26输入输出接口输入输出接口lI/OI/OlA/DA/D、D/AD/Al键盘键盘lLCDLCDl存储器接口存储器接口l设备接口设备接口27嵌入式系统软件基础嵌入式系统软件基础l操作系统的分类操作系统的分类l嵌入式实时操作系统嵌入式实时操作系统l前台与后台前台与后台l多任务,任务优

23、先级,调度多任务,任务优先级,调度l非占先式与占先式、可重入型函数非占先式与占先式、可重入型函数28操作系统的分类操作系统的分类(1 1)顺序执行系统:系统内只含有一个程序,独占)顺序执行系统:系统内只含有一个程序,独占CPUCPU的运行时间,按的运行时间,按语句顺序执行该程序,直至执行完毕,另一程序才能启动运行。如语句顺序执行该程序,直至执行完毕,另一程序才能启动运行。如DOSDOS操作系统。操作系统。(2 2)分时操作系统:系统内同时可以有多个程序运行,把)分时操作系统:系统内同时可以有多个程序运行,把CPUCPU的时间按的时间按顺序分成若干片,每个时间片内执行不同的程序,如顺序分成若干片

24、,每个时间片内执行不同的程序,如UNIXUNIX。(3 3)实时操作系统:系统内有多个程序运行,每个程序有不同的优先)实时操作系统:系统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任务才能占有级,只有最高优先级的任务才能占有CPUCPU的控制权。的控制权。29按实时性分类按实时性分类l强实时系统,其系统响应时间在毫秒或微秒级(数控机床)。强实时系统,其系统响应时间在毫秒或微秒级(数控机床)。l一般实时系统,其系统响应时间在毫秒到几秒的数量级上,其实时一般实时系统,其系统响应时间在毫秒到几秒的数量级上,其实时性的要求比强实时系统要差一些(媒体播放)。性的要求比强实时系统要差一些(媒

25、体播放)。l弱实时系统,其系统响应时间约为数十秒或更长。弱实时系统,其系统响应时间约为数十秒或更长。301.1.循环轮询系统:(循环轮询系统:(Polling LoopPolling Loop)最简单的软件结构是循环轮询,程序依次检查系统的每一个最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理。输入条件,一旦条件成立就进行相应的处理。Initialize()While(true) if(condition_1) action_1(); if(condition_2) action_2(); if(condition_n) acition_n();按软件

26、结构分类按软件结构分类312.2.事件驱动系统:(事件驱动系统:(Event-Driven systemEvent-Driven system)事件驱动系统是能对外部事件直接响应的系统。它包括前后台、事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。实时多任务、多处理器等,是嵌入式实时系统的主要形式。应用程序是一个无限的循环,循环中调用相应的函数完成相应的应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(操作,这部分可以看成后台行为(backgroundbackground)。中断服务程序处理)。中断

27、服务程序处理异步事件,这部分可以看成前台行为(异步事件,这部分可以看成前台行为(foreground)foreground)。后台也可以叫做。后台也可以叫做任务级,前台也叫中断级。例如,很多基于微处理器的产品采用前后任务级,前台也叫中断级。例如,很多基于微处理器的产品采用前后台系统设计,如台系统设计,如微波炉、微波炉、电话机、玩具等。从省电的角度出发,平时电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态,所有的事都靠中断服务来完成。微处理器处在停机状态,所有的事都靠中断服务来完成。32前后台系统(后台循环、前台中断)前后台系统(后台循环、前台中断)ISRISR后台后台 前台前台ISR

28、时间时间33l代码的临界区也称为临界区,指处理时不可分割的代码。一旦这部分代码的临界区也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打断。代码开始执行,则不允许任何中断打断。l在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断(在任务切换时,地址、指令、数据等寄存器堆栈保护)。(在任务切换时,地址、指令、数据等寄存器堆栈保护)。代码的临界区代码的临界区34多任务(任务、进程和线程)多任务(任务、进程和线程)CPUCPU寄存器寄存器任务任务控制控制块块1 1任务任务控制控制块块2 2任务任务控制

29、控制块块n n休眠、就绪、运行、挂起、被中断休眠、就绪、运行、挂起、被中断任务任务1 1任务任务2 2任务任务n nCPUCPU寄存器寄存器35一个任务,也称作一个线程,是一个简单的运行程序。每个任一个任务,也称作一个线程,是一个简单的运行程序。每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,务都是整个应用的某一部分,每个任务被赋予一定的优先级, 有它有它自己的一套自己的一套CPUCPU寄存器和自己的栈空间。寄存器和自己的栈空间。多任务运行的实现实际上是靠多任务运行的实现实际上是靠CPUCPU(中央处理单元)在许多任(中央处理单元)在许多任务之间转换、调度。务之间转换、调度。 CP

30、UCPU只有一个,轮番服务于一系列任务中的某一个。多任务运只有一个,轮番服务于一系列任务中的某一个。多任务运行使行使CPUCPU的利用率得到最大的发挥,并使应用程序模块化。的利用率得到最大的发挥,并使应用程序模块化。在实际应用中,多任务的最大特点是,开发人员可以将很复杂在实际应用中,多任务的最大特点是,开发人员可以将很复杂的应用程序层次化,如综合实验(时钟、位图、的应用程序层次化,如综合实验(时钟、位图、USBUSB、KEYKEY)。)。36任务的状态任务的状态R RU UN NN NI IN NG GR RE EA AD DY YO OS ST Ta as sk kC Cr re ea at

31、 te e( () )O OS ST Ta as sk kC Cr re ea at te eE Ex xt t( () )T Ta as sk k i is s P Pr re ee em mp pt te ed dO OS SM MB Bo ox xP Pe en nd d( () )O OS SQ QP Pe en nd d( () )O OS SS Se em mP Pe en nd d( () )O OS ST Ta as sk kS Su us sp pe en nd d( () )O OS ST Ti im me eD Dl ly y( () )O OS ST Ti im me

32、eD Dl ly yH HM MS SM M( () )O OS SM MB Bo ox xP Po os st t( () )O OS SQ QP Po os st t( () )O OS SQ QP Po os st tF Fr ro on nt t( () )O OS SS Se em mP Po os st t( () )O OS ST Ta as sk kR Re es su um me e( () )O OS ST Ti im me eD Dl ly yR Re es su um me e( () )O OS ST Ti im me eT Ti ic ck k( () )O OS

33、ST Ta as sk kD De el l( () )D DO OR RM MA AN NT TW WA AI IT TI IN NG GO OS SS St ta ar rt t( () )O OS SI In nt tE Ex xi it t( () )O OS S_ _T TA AS SK K_ _S SW W( () )O OS ST Ta as sk kD De el l( () )O OS ST Ta as sk kD De el l( () )I In nt te er rr ru up pt tO OS SI In nt tE Ex xi it t( () )I IS SR

34、R37系统内核(系统内核(Kernel)与调度(与调度(Scheduler)l多任务系统中,内核负责管理各个任务,或者说为每个任务分配多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPUCPU时间,并且负责任务之间的通信。时间,并且负责任务之间的通信。l内核(内核(Kernel)Kernel):提供的基本服务是任务切换。内核本身也增加了应提供的基本服务是任务切换。内核本身也增加了应用程序的额外负荷,代码空间增加用程序的额外负荷,代码空间增加ROMROM用量,内核本身数据结构增加用量,内核本身数据结构增加了了RAMRAM的用量。内核本身对的用量。内核本身对CPUCPU的占用时间一般在的

35、占用时间一般在2 2到到5 5个百分点之间。个百分点之间。l调度(调度(SchedulerScheduler):):是内核的主要职责之一,就是要决定该轮到哪是内核的主要职责之一,就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先级。基于优先级的调度法则,其重要程度的不同被赋予一定的优先级。基于优先级的调度法则,CPUCPU总是让处在就绪态的优先级最高的任务先运行。总是让处在就绪态的优先级最高的任务先运行。38非占先式与占先式非占先式与占先式非占先式非占先式(non-preem

36、ptivenon-preemptive)调度法也称作合作型多任调度法也称作合作型多任务(务(cooperative multitaskingcooperative multitasking),各个任务彼此合作共享一),各个任务彼此合作共享一个个CPUCPU。中断服务可以使一个高优先级的任务由挂起状态变为就绪中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃务,直到该任务主动放弃CPUCPU的使用权时,那个高优先级的任务的使用权时,那个高优先级的任务才能获得才能获得C

37、PUCPU的使用权。的使用权。非占先式内核的非占先式内核的一个特点一个特点是几乎不需要使用信号量保护共是几乎不需要使用信号量保护共享数据。运行着的任务占有享数据。运行着的任务占有CPUCPU,而不必担心被别的任务抢占。,而不必担心被别的任务抢占。非占先式内核的非占先式内核的最大缺陷最大缺陷在于其响应高优先级的任务慢,在于其响应高优先级的任务慢,任务已经进入就绪态,但还不能运行,也许要等很长时间,直任务已经进入就绪态,但还不能运行,也许要等很长时间,直到当前运行着的任务释放到当前运行着的任务释放CPUCPU。内核的任务级响应时间是不确定。内核的任务级响应时间是不确定的,不知道什么时候最高优先级的

38、任务才能拿到的,不知道什么时候最高优先级的任务才能拿到CPUCPU的控制权,的控制权,完全取决于应用程序什么时候释放完全取决于应用程序什么时候释放CPUCPU。39非占先式非占先式(Non-Preemptive)低优先级任务低优先级任务ISR高优先级任务高优先级任务(1)(2)(3)(4)(5)(6)(7)中断服务程序使中断服务程序使高优先级任务就绪高优先级任务就绪低优先级任务释放低优先级任务释放CPU使用权使用权TIME40当系统响应时间很重要时,要使用占先式(当系统响应时间很重要时,要使用占先式(preemptivepreemptive)内核。最高优先级的任务一旦就绪,总能得到内核。最高优

39、先级的任务一旦就绪,总能得到CPUCPU的控制权。的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的绪态,当前任务的CPUCPU使用权就被剥夺了,或者说被挂起了,那使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了个高优先级的任务立刻得到了CPUCPU的控制权。的控制权。使用占先式内核时,应用程序不应直接使用不可重入型函使用占先式内核时,应用程序不应直接使用不可重入型函数。如果调入可重入型函数时,低优先级的任务数。如果调入可重入型函数时,低优先级的任务CPUCPU的使用权被的使用权被高优先级任务剥夺,高优先

40、级任务剥夺,不可重入型函数中的数据有可能被破坏。不可重入型函数中的数据有可能被破坏。占先式(占先式(preemptive)41占先式占先式(Preemptive)低优先级任务低优先级任务ISR高优先级任务高优先级任务(1)(2)(3)(4)(5)(6)中断服务程序使中断服务程序使高优先级任务就绪高优先级任务就绪高优先级任务得到高优先级任务得到CPU使用权使用权TIME42可以被一个以上的任务调用,而不必担心数据的破坏。可重可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据

41、不会丢失。可重入型函数或者只使用局部变量,即变量保存应数据不会丢失。可重入型函数或者只使用局部变量,即变量保存在在CPUCPU寄存器中或堆栈中。寄存器中或堆栈中。一个不可重入型函数的例子一个不可重入型函数的例子int Temp;int Temp;Void swap (int Void swap (int * *x,intx,int* *y)y) Temp=Temp=* *x;x;* *X=X=* *Y;Y;* *y=Temp;y=Temp; 可重入型函数可重入型函数43一个可重入型函数的例子一个可重入型函数的例子Void swap (int *x,int*y)int Temp;Temp=*x;

42、*X=*Y;*y=Temp;44任务优先级任务优先级l静态优先级静态优先级 应用程序执行过程中诸任务优先级不变,则称之为静态优先应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的。译时是已知的。l动态优先级动态优先级 应用程序执行过程中,任务的优先级是可变的,则称之为动应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。实时内核应当避免出现优先级反转问题。态优先级。实时内核应当避免出现优先级反转问题。45优先级反转优先级反转Task 1 (H)Task 2 (

43、M)Task 3 (L)Priority InversionTask 3 Get SemaphoreTask 1 Preempts Task 3Task 1 Tries to get SemaphoreTask 2 Preempts Task 3Task 3 ResumesTask 3 Releases the Semaphore( (1 1) )( (2 2) )( (3 3) )( (4 4) )( (5 5) )( (6 6) )( (7 7) )( (8 8) )( (9 9) )( (1 10 0) )( (1 11 1) )( (1 12 2) )46本节提要本节提要关于课程与大作

44、业的说明关于课程与大作业的说明嵌入式系统软硬件基础嵌入式系统软硬件基础嵌入式系统设计方法嵌入式系统设计方法一个嵌入式设计方法实例一个嵌入式设计方法实例47嵌入式系统的开发嵌入式系统的开发流程流程确定产品需求选择主要芯片确定编程语言选择开发环境RTOS的使用选择开发方案选择开发方案设计与调试测试测试工具与其他辅助设备产品48嵌入式系统的开发嵌入式系统的开发设计与调试设计与调试设计生产编译器链接器调试器IDE操作系统软件测试评估板仿真器逻辑分析仪边界扫描测试仪编程器49开发环境开发环境什么是嵌入式开发环境:源程序编译器目标文件链接器可重定位程序定位器可执行文件编译器/汇编器/链接定位器调试器/仿真

45、器主机(Host)及其工作平台实时操作系统(可选)目标评估系统(可选)测试工具(软件/硬件/协议等,可选)其他辅助设备(可选) 典型的开发环境50ARM的编译器(1)ADS1.2ADS1.2lARMARM公司出品公司出品lIDEIDE环境,包括:环境,包括:ARM/ThumbARM/Thumb汇编器:汇编器:armasmarmasm。ANSI C ANSI C 编译器编译器 - - armccarmcc 和和 tcctcc。ISO / Embedded C+ ISO / Embedded C+ 编译器编译器 - - armcpparmcpp and and tcpptcpp。链接器链接器 ar

46、mlinkarmlink。Windows Windows 集成开发环境集成开发环境 CodeWarriorCodeWarrior。格式转换器格式转换器 fromelffromelf。库管理器库管理器 armararmar。调试器。调试器。模拟调试器:模拟调试器:ARMulatorARMulator。JTAGJTAG调试:调试:AXDAXD(与(与Multi-ICEMulti-ICE配合)。配合)。支持所有支持所有ARMARM内核,最新版本:内核,最新版本:RealView2.0RealView2.0。51ARM的编译器(2)lEW-ARMEW-ARM瑞典瑞典IRAIRA公司出品公司出品著名的嵌

47、入式工具提供商,以提供编译器著名的嵌入式工具提供商,以提供编译器/ /协议栈协议栈/ /统一建模工具著称。统一建模工具著称。主要产品:主要产品:Embeded WorkbenchEmbeded Workbench(EWEW)、Make APPMake APP、Visual StateVisual State等。等。EW-ARMEW-ARM:针对:针对ARMARM的集成开发环境:的集成开发环境:C/C+C/C+编译器。编译器。C-SPY C-SPY 模拟调试器。模拟调试器。ROM-MonitorROM-Monitor。多种级别代码优化方法,满足用户在速度、文件大小方面的要求。多种级别代码优化方法

48、,满足用户在速度、文件大小方面的要求。内建内建ARMARM特性优化器。特性优化器。支持多种断点模式。支持多种断点模式。支持支持Nucleus, VxWorksNucleus, VxWorks等等RTOSRTOS。lGreenhillsGreenhillslGNUGNU52嵌入式系统的调试(1)嵌入式系统的调试有四种基本方法:嵌入式系统的调试有四种基本方法: l模拟调试(模拟调试(Simulator)l软件调试(软件调试(Debugger)lBDM/JTAG调试(调试(BDM/JTAG Debugger)l全仿真调试(全仿真调试(Emulator)53嵌入式系统的调试(2)l模拟调试(模拟调试(

49、SimulatorSimulator) 调试工具和待调试的嵌入式软件都在主机上运行,由主机提供一调试工具和待调试的嵌入式软件都在主机上运行,由主机提供一个模拟的目标运行环境,可以进行语法和逻辑上的调试。个模拟的目标运行环境,可以进行语法和逻辑上的调试。l优点:优点:简单方便,不需要目标板,成本低。简单方便,不需要目标板,成本低。l缺点:缺点:功能非常有限,无法实时调试。功能非常有限,无法实时调试。 大多数调试工具都提供大多数调试工具都提供Simulator功能。功能。54嵌入式系统的调试(3)l软件调试(软件调试(DebuggerDebugger) 主机和目标板通过某种接口(通常是串口)连接,

50、主机上提供调试主机和目标板通过某种接口(通常是串口)连接,主机上提供调试界面,待调试软件下载到目标板上运行。界面,待调试软件下载到目标板上运行。 这种方式的先决条件是要在这种方式的先决条件是要在Host和和Target之间建立起通信联系(目之间建立起通信联系(目标板上称为监控程序标板上称为监控程序Monitor)l优点:优点:纯软件,价格较低,简单,软件调试能力较强。纯软件,价格较低,简单,软件调试能力较强。l缺点:缺点:需要事先烧制需要事先烧制Monitor(往往需多次试验才能成功)且目标板(往往需多次试验才能成功)且目标板工作正常,功能有限,特别是硬件调试能力较差。工作正常,功能有限,特别

51、是硬件调试能力较差。PCTargetMonitor串口55嵌入式系统的调试(4)lBDM/JTAGBDM/JTAG调试调试 这种方式有一个硬件调试体。该硬件调试体与目标板通过这种方式有一个硬件调试体。该硬件调试体与目标板通过BDM、JTAG等调试接口相连,与主机通过串口、并口、网口或等调试接口相连,与主机通过串口、并口、网口或USB口相连。待口相连。待调试软件通过调试软件通过BDM/JTAG调试器下载到目标板上运行。调试器下载到目标板上运行。l优点:优点:方便、简单,无须制作方便、简单,无须制作Monitor,软硬件均可调试。,软硬件均可调试。l缺点:缺点:需要目标板,且目标板工作基本正常(至

52、少需要目标板,且目标板工作基本正常(至少MCU工作正常),工作正常),仅适用于有调试接口的芯片。仅适用于有调试接口的芯片。TargetPC接口BDM/JTAG Debugger56嵌入式系统的调试(5)l全仿真调试全仿真调试(Emulator) 这种方式用仿真器完全取代目标板上的这种方式用仿真器完全取代目标板上的MCU,因而目标系统对开发,因而目标系统对开发者来说完全是透明的、可控的。仿真器与目标板通过仿真头连接,与主者来说完全是透明的、可控的。仿真器与目标板通过仿真头连接,与主机有串口、并口、网口或机有串口、并口、网口或USB口等连接方式。由于仿真器自成体系,调口等连接方式。由于仿真器自成体

53、系,调试时既可以连接目标板,也可以不连接目标板(试时既可以连接目标板,也可以不连接目标板(Stand alone)。)。l优点:优点:功能非常强大,软硬件均可做到完全实时在线调试。功能非常强大,软硬件均可做到完全实时在线调试。l缺点:缺点:价格昂贵。价格昂贵。57ARM的调试方式l模拟调试模拟调试SDT2.52: ARMulatorADS1.2:ARMulatorTrace32:SimulatorEW-ARM:C-spyl软件调试软件调试ADS1.2:Angel(串口)(串口)SDT2.52 Angel(串口)(串口)lJTAG调试调试ARM:Multi-ICE,简易型仿真器简易型仿真器Tra

54、ce32-ICD for ARMHitex:Tanto for ARMl全仿真调试全仿真调试Trace32-FIRE/ICE58ARM调试工具Multi-ICElARM公司出品公司出品l与与ADS配套使用配套使用l支持不同的支持不同的ARM内核内核l另有另有Multi-trace模块可选模块可选59选择实时操作系统RTOSl对于复杂的嵌入式系统应考虑使用对于复杂的嵌入式系统应考虑使用RTOSlRTOS的作用:的作用:提供提供API(应用应用编程接口)编程接口):操作系统为应用程序员提供可供调用的:操作系统为应用程序员提供可供调用的APIAPI,允许程序员致力于应用程序的开发。,允许程序员致力于

55、应用程序的开发。 简化系统设计简化系统设计:实时嵌入式系统比非实时系统更难设计:实时嵌入式系统比非实时系统更难设计. . 使用实时使用实时多任务的内核能简化系统设计,可将复杂的应用程序分为几个不同多任务的内核能简化系统设计,可将复杂的应用程序分为几个不同的任务,由内核去对他们协调处理。的任务,由内核去对他们协调处理。l实验平台实验平台支持支持ARM的实时操作系统的实时操作系统如下如下: C/OSLinux60嵌入式系统编程语言lData from Japan ITRON survey for new embedded systemsType of Processors0%10%20%30%40

56、%50%60%70%4-bits8-bits16-bits32-bits64-bitsSpecial1998-991999-002000-01Programming Languages0%10%20%30%40%50%60%70%80%90%AssemblelanguageC languageC+JavaOthers1998-991999-002000-0161嵌入式系统的测试新技术,新方法新技术,新方法l使用边界扫描测试技术可以有效地解决这些问题!使用边界扫描测试技术可以有效地解决这些问题!l边界扫描来源于边界扫描来源于IEEE Std 1149.1,是是由联合测试行动小组(由联合测试行动小

57、组(Joint Test Action Group) )制定的一种测试逻辑,所以又称制定的一种测试逻辑,所以又称JTAG标准。标准。lJTAG作为集成电路的一部分,可以完成以下功能:作为集成电路的一部分,可以完成以下功能: 测试器件间的相互连线;测试器件间的相互连线; 测试集成电路本身;测试集成电路本身; 在线编程在线编程CPLD、FPGA、FLASH; JTAG仿真调试。仿真调试。62嵌入式开发工具与开发环境嵌入式开发工具与开发环境63开发平台简介开发平台简介64开始新工程编辑源代码交叉编译连接仿真调试程序下载台式/笔记本式PC机并口JTAG仿真器网络接口JTAG接口USB接口串口0ARM3

58、00开发板串口USB接口以太网口ARMSDTDebugArmDvkARM7处理器执行监测结果超级终端ARM300开发板实验流程结束嵌入式软件开发流程嵌入式软件开发流程65开发平台简介开发平台简介网口JTAGUSB串口0扩展板接口ARM微处理器S3C44B0X扩展口2网卡JTAG仿真器ARM300开发板集成开发环境运行平台66本节提要本节提要关于课程与大作业的说明关于课程与大作业的说明嵌入式系统软硬件基础嵌入式系统软硬件基础嵌入式系统设计方法嵌入式系统设计方法一个嵌入式设计方法实例一个嵌入式设计方法实例67工程机械体系结构可靠设计环境分析成本计算芯片选择设计接口调试关键技术主要系统平地平地机机环

59、境可靠性实验装载装载机机搅拌搅拌机机挖掘挖掘机机 软件选择开发摊铺摊铺机机压路压路机机四、嵌入式设计方法实例四、嵌入式设计方法实例工程机械监控器工程机械监控器68l需求分析与评估需求分析与评估l功能定义与软硬件选型功能定义与软硬件选型l概要设计与软硬件划分概要设计与软硬件划分l软硬件协同详细设计软硬件协同详细设计l集成调试集成调试l维护与升级维护与升级设计步骤设计步骤69工程机械方面应用工程机械方面应用 工程机械六大市场领域,均符合国家经济发展四大战略所规定工程机械六大市场领域,均符合国家经济发展四大战略所规定的资金投向,的资金投向,500500亿投资,一个企业仅装载机销售亿投资,一个企业仅装

60、载机销售70007000台。台。发展国家基础设施建设发展国家基础设施建设 西部大开发西部大开发 发展城乡化发展城乡化 可持续发展可持续发展 交通运输交通运输 能源工业能源工业原材料工业原材料工业 农林水利农林水利 城乡建设城乡建设国防工程建设国防工程建设工工程程机机械械1. 1. 需求分析与评估需求分析与评估70沥青路面施工机群沥青路面施工机群71l资源配置不合理,施工过程施工过程质量、进度控制不到位;资源配置不合理,施工过程施工过程质量、进度控制不到位;l设备运行状况不能及时掌握,故障不能及时排除;设备运行状况不能及时掌握,故障不能及时排除;l分期付款控制技术;分期付款控制技术;l智能控制,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论