欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    (精品)2嵌入式软件体系结构综述.ppt

    • 资源ID:82693221       资源大小:1.14MB        全文页数:91页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    (精品)2嵌入式软件体系结构综述.ppt

    嵌入式软件嵌入式软件计算机与通信学院计算机与通信学院2.嵌入式软件体系结构综述嵌入式软件体系结构综述目录目录l l面向应用的软件结构面向应用的软件结构l l主要的嵌入式软件结构原型主要的嵌入式软件结构原型轮转轮转轮转轮转结构结构结构结构带有带有带有带有中断的轮转结构中断的轮转结构中断的轮转结构中断的轮转结构函数函数函数函数队列调度结构队列调度结构队列调度结构队列调度结构实时实时实时实时操作系统结构操作系统结构操作系统结构操作系统结构l l软件软件结构的选择结构的选择嵌入式软件系统的嵌入式软件系统的系统架构系统架构硬件硬件应用层应用层驱动层驱动层操作系统层操作系统层中间件层中间件层板级板级初始化初始化FLASH驱动驱动RTC/定定时器驱动时器驱动串口串口驱动驱动以太网以太网驱动驱动LCD驱动驱动键盘键盘驱动驱动其他其他驱动驱动内核内核TCP/IP网络系统网络系统文件文件系统系统嵌入式嵌入式GUI电源电源管理管理嵌入式嵌入式CORBA嵌入式嵌入式JAVA嵌入式嵌入式DCOM面向应用领域面向应用领域的中间件的中间件应用应用任务任务1应用应用任务任务2应用应用任务任务n嵌入式软件系统的嵌入式软件系统的系统架构系统架构l l驱动层驱动层 驱动层是直接与硬件打交道的一层,它对驱动层是直接与硬件打交道的一层,它对操作系统和应用提供所需的驱动的支持。操作系统和应用提供所需的驱动的支持。该层主要包括三种类型的程序。该层主要包括三种类型的程序。板级初始化程序板级初始化程序 这些程序在嵌入式系统上电后初始化系统硬件这些程序在嵌入式系统上电后初始化系统硬件环境,包括嵌入式微处理器、存储器、中断控环境,包括嵌入式微处理器、存储器、中断控制器、制器、DMA、定时器等的初始化。定时器等的初始化。与系统软件相关的驱动与系统软件相关的驱动与系统软件相关的驱动与系统软件相关的驱动 这类驱动是操作系统和中间件等系统软件这类驱动是操作系统和中间件等系统软件所需的驱动程序,它们的开发要按照系统所需的驱动程序,它们的开发要按照系统软件的要求进行。软件的要求进行。目前操作系统内核所需的硬件支持一般都目前操作系统内核所需的硬件支持一般都已集成在嵌入式微处理器中了,因此操作已集成在嵌入式微处理器中了,因此操作系统厂商提供的内核驱动一般不用修改。系统厂商提供的内核驱动一般不用修改。与应用软件相关的驱动与应用软件相关的驱动与应用软件相关的驱动与应用软件相关的驱动 与应用软件相关的驱动不一定需要与操作系统与应用软件相关的驱动不一定需要与操作系统连接,这些驱动的设计和开发由应用决定。连接,这些驱动的设计和开发由应用决定。嵌入式软件系统的嵌入式软件系统的系统架构系统架构l l操作系统层操作系统层操作系统层包括嵌入式内核、嵌入式操作系统层包括嵌入式内核、嵌入式TCP/IP网络系统、嵌入式文件系统、嵌网络系统、嵌入式文件系统、嵌入式入式GUI系统和电源管理等部分。系统和电源管理等部分。其中嵌入式内核是基础和必备的部分,其中嵌入式内核是基础和必备的部分,其他部分要根据嵌入式系统的需要来确其他部分要根据嵌入式系统的需要来确定。定。嵌入式软件系统的嵌入式软件系统的系统架构系统架构l l中间件层中间件层 目前在一些复杂的嵌入式系统中也开始目前在一些复杂的嵌入式系统中也开始采用中间件技术,主要包括嵌入式采用中间件技术,主要包括嵌入式CORBA、嵌入式嵌入式Java、嵌入式嵌入式DCOM和面向应用领域的中间件软件。和面向应用领域的中间件软件。如基于嵌入式如基于嵌入式CORBA的应用于软件无线的应用于软件无线电台的应用中间件电台的应用中间件SCA(Software Core Architecture)等。等。嵌入式软件系统的嵌入式软件系统的系统架构系统架构l l应用层应用层 应用层软件主要由多个相对独立的应用应用层软件主要由多个相对独立的应用任务组成任务组成每个应用任务完成特定的工作,如每个应用任务完成特定的工作,如I/O任任务、计算的任务、通信任务等,由操作务、计算的任务、通信任务等,由操作系统调度各个任务的运行。系统调度各个任务的运行。嵌入式软件运行流程嵌入式软件运行流程上电复位上电复位引导系统引导系统系统初始化系统初始化应用初始化应用初始化多任务应用多任务应用板级初始化板级初始化基于多任务操作系统基于多任务操作系统的嵌入的嵌入式软件的主要运行流程式软件的主要运行流程嵌入式软件运行流程嵌入式软件运行流程l l上电复位、板级初始化阶段上电复位、板级初始化阶段嵌入式系统上电复位后完成板级初始化工作。嵌入式系统上电复位后完成板级初始化工作。嵌入式系统上电复位后完成板级初始化工作。嵌入式系统上电复位后完成板级初始化工作。板级初始化程序具有完全的硬件特性,一般板级初始化程序具有完全的硬件特性,一般板级初始化程序具有完全的硬件特性,一般板级初始化程序具有完全的硬件特性,一般采用汇编语言实现。不同的嵌入式系统,板采用汇编语言实现。不同的嵌入式系统,板采用汇编语言实现。不同的嵌入式系统,板采用汇编语言实现。不同的嵌入式系统,板级初始化时要完成的工作具有一定的特殊性,级初始化时要完成的工作具有一定的特殊性,级初始化时要完成的工作具有一定的特殊性,级初始化时要完成的工作具有一定的特殊性,但以下工作一般是必须完成的:但以下工作一般是必须完成的:但以下工作一般是必须完成的:但以下工作一般是必须完成的:CPUCPU中堆栈指针寄存器的初始化。中堆栈指针寄存器的初始化。中堆栈指针寄存器的初始化。中堆栈指针寄存器的初始化。BSSBSS段(段(段(段(Block Storage SpaceBlock Storage Space表示未被表示未被表示未被表示未被初始化的数据)的初始化。初始化的数据)的初始化。初始化的数据)的初始化。初始化的数据)的初始化。CPUCPU芯片级的初始化:中断控制器、内存芯片级的初始化:中断控制器、内存芯片级的初始化:中断控制器、内存芯片级的初始化:中断控制器、内存等的初始化。等的初始化。等的初始化。等的初始化。嵌入式软件运行流程嵌入式软件运行流程l l系统引导阶段系统引导阶段系统引导有几种情况:系统引导有几种情况:系统引导有几种情况:系统引导有几种情况:将软件从将软件从将软件从将软件从NOR FlashNOR Flash中读取出来加载到中读取出来加载到中读取出来加载到中读取出来加载到RAMRAM中运行:这种方式可以解决成本及中运行:这种方式可以解决成本及中运行:这种方式可以解决成本及中运行:这种方式可以解决成本及FlashFlash速度比速度比速度比速度比RAMRAM慢的问题。软件可压缩存慢的问题。软件可压缩存慢的问题。软件可压缩存慢的问题。软件可压缩存储在储在储在储在FlashFlash中。中。中。中。不需将软件引导到不需将软件引导到不需将软件引导到不需将软件引导到RAMRAM中而是让其直接在中而是让其直接在中而是让其直接在中而是让其直接在NorFlashNorFlash上运行,进入系统初始化阶段。上运行,进入系统初始化阶段。上运行,进入系统初始化阶段。上运行,进入系统初始化阶段。将软件从外存(如将软件从外存(如将软件从外存(如将软件从外存(如NandFlashNandFlash、CFCF卡、卡、卡、卡、MMCMMC等)中读取出来加载到等)中读取出来加载到等)中读取出来加载到等)中读取出来加载到RAMRAM中运行:中运行:中运行:中运行:这种方式的成本更低。这种方式的成本更低。这种方式的成本更低。这种方式的成本更低。嵌入式软件运行流程嵌入式软件运行流程l l系统初始化阶段系统初始化阶段 在该阶段进行操作系统等系统软件各功能部分在该阶段进行操作系统等系统软件各功能部分在该阶段进行操作系统等系统软件各功能部分在该阶段进行操作系统等系统软件各功能部分必需的初始化工作,如根据系统配置初始化数必需的初始化工作,如根据系统配置初始化数必需的初始化工作,如根据系统配置初始化数必需的初始化工作,如根据系统配置初始化数据空间、初始化系统所需的接口和外设等。据空间、初始化系统所需的接口和外设等。据空间、初始化系统所需的接口和外设等。据空间、初始化系统所需的接口和外设等。系统初始化阶段需要按特定顺序进行,如首先系统初始化阶段需要按特定顺序进行,如首先系统初始化阶段需要按特定顺序进行,如首先系统初始化阶段需要按特定顺序进行,如首先完成完成完成完成内核的初始化内核的初始化内核的初始化内核的初始化,然后完成网络、文件系统,然后完成网络、文件系统,然后完成网络、文件系统,然后完成网络、文件系统等的初始化,最后完成中间件等的初始化工作。等的初始化,最后完成中间件等的初始化工作。等的初始化,最后完成中间件等的初始化工作。等的初始化,最后完成中间件等的初始化工作。嵌入式软件运行流程嵌入式软件运行流程l l应用初始化阶段应用初始化阶段在该阶段进行应用任务的创建,信号量、消在该阶段进行应用任务的创建,信号量、消息队列的创建和与应用相关的其它初始化工息队列的创建和与应用相关的其它初始化工作。作。l l多任务应用运行阶段多任务应用运行阶段各种初始化工作完成后,系统进入多任务状各种初始化工作完成后,系统进入多任务状态,操作系统按照已确定的算法进行任务的态,操作系统按照已确定的算法进行任务的调度,各应用任务分别完成特定的功能。调度,各应用任务分别完成特定的功能。主要的嵌入式软件结构原型主要的嵌入式软件结构原型1.1.轮转结构轮转结构2.2.带中断的轮转结构带中断的轮转结构3.3.函数队列调度结构函数队列调度结构4.4.实时操作系统实时操作系统 1.轮转结构轮转结构l l没有中断:采用查询没有中断:采用查询(polling)逐个检查每个逐个检查每个逐个检查每个逐个检查每个I/OI/O设备设备设备设备,如果需要服务如果需要服务如果需要服务如果需要服务,则为该则为该则为该则为该设备提供服务设备提供服务设备提供服务设备提供服务,如果没有请求则跳过如果没有请求则跳过如果没有请求则跳过如果没有请求则跳过,查询下一查询下一查询下一查询下一个设备个设备个设备个设备.voidmain(void)while(TRUE)if(/I/O设备设备A需要服务需要服务)/关注关注I/O设备设备A/处理输入处理输入I/O设备设备A或从或从I/O设备设备A输出的数据输出的数据if(/I/O设备设备B需要服务需要服务)/关注关注I/O设备设备B/处理输入处理输入I/O设备设备B或从或从I/O设备设备B输出的数据输出的数据etc.etc.if(/I/O设备设备Z需要服务需要服务)/关注关注I/O设备设备Z/处理输入处理输入I/O设备设备Z或从或从I/O设备设备Z输出的数据输出的数据1.轮转结构轮转结构(续续)l l数字万用电表数字万用电表功能功能功能功能:以欧姆、安培和伏特为单位测量电阻、以欧姆、安培和伏特为单位测量电阻、以欧姆、安培和伏特为单位测量电阻、以欧姆、安培和伏特为单位测量电阻、电流和电压。电流和电压。电流和电压。电流和电压。工作过程:用电表上的两个探针来接触被测量工作过程:用电表上的两个探针来接触被测量工作过程:用电表上的两个探针来接触被测量工作过程:用电表上的两个探针来接触被测量的电路两端,利用一个旋转开关选择所需要测的电路两端,利用一个旋转开关选择所需要测的电路两端,利用一个旋转开关选择所需要测的电路两端,利用一个旋转开关选择所需要测量的物理量和量程,通过一个数字显示屏显示量的物理量和量程,通过一个数字显示屏显示量的物理量和量程,通过一个数字显示屏显示量的物理量和量程,通过一个数字显示屏显示结果。结果。结果。结果。voidvDigitalMultiMeterMain(void)enumOHMS_1,OHMS_10,VOLTS_100eSwitchPosition;while(TRUE)eSwitchPosition=/读取开关的位置读取开关的位置switch(eSwitchPosition)caseOHMS_1:/读取硬件来测量欧姆值读取硬件来测量欧姆值/将结果格式化将结果格式化break;caseOHMS_10:/读取硬件来测量欧姆值读取硬件来测量欧姆值/将结果格式化将结果格式化break;VOLTS_100:/读取硬件来测量伏特值读取硬件来测量伏特值/将结果格式化将结果格式化break;/将结果写入显示设备将结果写入显示设备1.轮转结构轮转结构(续续)l l优点优点:l l缺点缺点:简单,公平简单,公平响应时间不能保证。由于响应时间不能保证。由于 不能抢占,不能抢占,没有优先级概念,容易导致某个慢速没有优先级概念,容易导致某个慢速任务会让要求快速的任务无法得到执任务会让要求快速的任务无法得到执行行2.带中断的轮转结构带中断的轮转结构BOOLfDeviceA=FALSE;BOOLfDeviceB=FALSE;BOOLfDeviceZ=FALSE;voidinterruptvHandleDeviceA(void)/关注关注I/O设备设备AfDeviceA=TRUE;voidinterruptvHandleDeviceB(void)/关注关注I/O设备设备BfDeviceB=TRUE;voidinterruptvHandleDeviceZ(void)/关注关注I/O设备设备ZfDeviceZ=TRUE;voidmain(void)while(TRUE)if(fDeviceA)fDeviceA=FALSE;/处理输入处理输入I/O设备设备A或从或从I/O设备设备A输出的数据输出的数据if(fDeviceB)fDeviceB=FALSE;/处理输入处理输入I/O设备设备B或从或从I/O设备设备B输出的数据输出的数据if(fDeviceZ)fDeviceZ=FALSE;/处理输入处理输入I/O设备设备Z或从或从I/O设备设备Z输出的数据输出的数据2.带中断的轮转结构带中断的轮转结构 1.1.引入了优先级的概念引入了优先级的概念2.2.中断服务程序优先级高于任务代码中断服务程序优先级高于任务代码在这种结构中在这种结构中在这种结构中在这种结构中,要求响应速度快的任务可设置要求响应速度快的任务可设置要求响应速度快的任务可设置要求响应速度快的任务可设置为高优先级为高优先级为高优先级为高优先级,当该任务有请求时当该任务有请求时当该任务有请求时当该任务有请求时,其他任务将其他任务将其他任务将其他任务将被中断被中断被中断被中断,处理器转向处理该任务处理器转向处理该任务处理器转向处理该任务处理器转向处理该任务.一个通信桥接器一个通信桥接器 l l工作模型工作模型-两条工作链路:两条工作链路:1.A1.A为明文传输为明文传输为明文传输为明文传输 2.2.B B为密文传输为密文传输为密文传输为密文传输l l桥接器的工作桥接器的工作从某端口取数据从某端口取数据从某端口取数据从某端口取数据加密加密加密加密/解密解密解密解密从另一个端口从另一个端口从另一个端口从另一个端口发出发出发出发出一个通信桥接器一个通信桥接器(续续)1.1.当一个通信链接上收到一个字符,会引发当一个通信链接上收到一个字符,会引发一个中断,微处理器必须在下一个字符到一个中断,微处理器必须在下一个字符到达前把该字符从达前把该字符从I/O硬件读走硬件读走2.2.微处理器在某时刻只能往微处理器在某时刻只能往I/O硬件上输出一硬件上输出一个字符个字符3.3.加密加密/解密程序一次能对一个字符进行处理解密程序一次能对一个字符进行处理4.4.存在一个程序,它们从队列读出或者向队存在一个程序,它们从队列读出或者向队列写入字符,并检查是否为空。列写入字符,并检查是否为空。一个通信桥接器一个通信桥接器(续续)l l桥接器可否采用纯粹的轮转结构吗桥接器可否采用纯粹的轮转结构吗?不能。不能。不能。不能。例如例如例如例如:A A有数据发送有数据发送有数据发送有数据发送,随后随后随后随后B B链路立即有数据达链路立即有数据达链路立即有数据达链路立即有数据达到到到到.按照轮询结构按照轮询结构按照轮询结构按照轮询结构,微处理器首先处理微处理器首先处理微处理器首先处理微处理器首先处理A A口口口口的数据的数据的数据的数据.它从它从它从它从A A口寄存器中读取数据口寄存器中读取数据口寄存器中读取数据口寄存器中读取数据,放到放到放到放到内部缓冲区内部缓冲区内部缓冲区内部缓冲区,然后加密然后加密然后加密然后加密,再将加密数据输出;再将加密数据输出;再将加密数据输出;再将加密数据输出;处理完后响应处理完后响应处理完后响应处理完后响应B B链路的数据处理。此时,链路的数据处理。此时,链路的数据处理。此时,链路的数据处理。此时,由于由于由于由于B B链路上数据得不到及时响应处理导致链路上数据得不到及时响应处理导致链路上数据得不到及时响应处理导致链路上数据得不到及时响应处理导致数据丢失。数据丢失。数据丢失。数据丢失。一个通信桥接器一个通信桥接器(续续)l l采用带中断的轮转结构采用带中断的轮转结构l l中断程序:接受字符并将它们写入队列中断程序:接受字符并将它们写入队列设置该中断程序比设置该中断程序比设置该中断程序比设置该中断程序比队列间移动字符队列间移动字符队列间移动字符队列间移动字符、加密加密加密加密/解解解解密密密密、传递数据传递数据传递数据传递数据等任务更高的优先级等任务更高的优先级等任务更高的优先级等任务更高的优先级l l通过此方式,即使加密通过此方式,即使加密/解密处理过程耗时,解密处理过程耗时,但是突然到达的大量字节也不会造成系统但是突然到达的大量字节也不会造成系统的过载而丢失。的过载而丢失。StaticBOOLfLinkAReadyToSend=TRUE;StaticBOOLfLinkBReadyToSend=TRUE;voidinterruptvGotCharacterOnLinkA(void)charch;ch=/从通信链路从通信链路A读取字符读取字符vQueueAdd(&qDataFromLinkA,ch);voidinterruptvSentCharacterOnLinkA(void)fLinkAReadyToSend=TRUE;voidinterruptvGotCharacterOnLinkB(void)charch;ch=/从通信链路从通信链路B读取字符读取字符vQueueAdd(&qDataFromLinkB,ch);voidinterruptvSentCharacterOnLinkB(void)fLinkBReadyToSend=TRUE;voidmain(void)while(TRUE)vEncrypt();vDecrypt();if(fLinkAReadyToSend&fQueueHasData(&qDataToLinkA)ch=chQueueGetData(&qDataToLinkA);disable();/将将ch送到链接送到链接AfLinkAReadyToSend=FALSE;enable();if(fLinkBReadyToSend&fQueueHasData(&qDataToLinkB)ch=chQueueGetData(&qDataToLinkB);disable();/将将ch送到链接送到链接BfLinkBReadyToSend=FALSE;enable();无线条形码扫描仪无线条形码扫描仪 l l工作过程:工作过程:激光扫描激光扫描激光扫描激光扫描获得条形码输入获得条形码输入获得条形码输入获得条形码输入 将条形码信息将条形码信息将条形码信息将条形码信息传递给主机传递给主机传递给主机传递给主机l l中断程序:中断程序:及时相应条码数据输入事件。及时相应条码数据输入事件。及时相应条码数据输入事件。及时相应条码数据输入事件。如果不及时相应,如果不及时相应,如果不及时相应,如果不及时相应,会造成数据丢失,从而导致扫描失败会造成数据丢失,从而导致扫描失败会造成数据丢失,从而导致扫描失败会造成数据丢失,从而导致扫描失败中断轮转结构特点中断轮转结构特点l l除了中断服务程序之外的所有任务都是以除了中断服务程序之外的所有任务都是以同样优先级来执行。同样优先级来执行。假设处理设备假设处理设备假设处理设备假设处理设备A A、B B、C C的任务代码(注意:不的任务代码(注意:不的任务代码(注意:不的任务代码(注意:不是中断服务程序)各需要执行是中断服务程序)各需要执行是中断服务程序)各需要执行是中断服务程序)各需要执行200200毫秒,并且毫秒,并且毫秒,并且毫秒,并且在微处理器执行循环起始部分时,在微处理器执行循环起始部分时,在微处理器执行循环起始部分时,在微处理器执行循环起始部分时,A A、B B、C C设设设设备同时发出中断信号,那么设备备同时发出中断信号,那么设备备同时发出中断信号,那么设备备同时发出中断信号,那么设备C C的任务代码的任务代码的任务代码的任务代码就需要等待就需要等待就需要等待就需要等待400400毫秒才能够被执行。毫秒才能够被执行。毫秒才能够被执行。毫秒才能够被执行。中断轮转结构特点中断轮转结构特点(续续)l l一种解决方法一种解决方法:将任务代码放到中断服务将任务代码放到中断服务程序中。程序中。在上面那个例子中,可以将在上面那个例子中,可以将在上面那个例子中,可以将在上面那个例子中,可以将C C设备的任务代码设备的任务代码设备的任务代码设备的任务代码放到放到放到放到C C设备的中断服务程序中。设备的中断服务程序中。设备的中断服务程序中。设备的中断服务程序中。不足之处:会导致与不足之处:会导致与不足之处:会导致与不足之处:会导致与C C设备相同优先级或者低设备相同优先级或者低设备相同优先级或者低设备相同优先级或者低优先级的其它设备中断响应时间增加。优先级的其它设备中断响应时间增加。优先级的其它设备中断响应时间增加。优先级的其它设备中断响应时间增加。中断轮转结构特点中断轮转结构特点(续续)l l另一种解决方法:让主循环按照一定顺序另一种解决方法:让主循环按照一定顺序测试设备的标记。测试设备的标记。对任务代码响应时间要求较高的设备,它在主对任务代码响应时间要求较高的设备,它在主对任务代码响应时间要求较高的设备,它在主对任务代码响应时间要求较高的设备,它在主循环中被测试的频率也要高一些。循环中被测试的频率也要高一些。循环中被测试的频率也要高一些。循环中被测试的频率也要高一些。在上面的例子中,如果在上面的例子中,如果在上面的例子中,如果在上面的例子中,如果C C设备要求任务代码响设备要求任务代码响设备要求任务代码响设备要求任务代码响应速度高,则可以提高检测应速度高,则可以提高检测应速度高,则可以提高检测应速度高,则可以提高检测C C设备标记的频率,设备标记的频率,设备标记的频率,设备标记的频率,例如例如例如例如A A,C C,B B,C C,D D,C C,E E,C.C.不足之处:对于在主循环中被检测频率非常低不足之处:对于在主循环中被检测频率非常低不足之处:对于在主循环中被检测频率非常低不足之处:对于在主循环中被检测频率非常低的设备,其最坏响应时间将非常长的设备,其最坏响应时间将非常长的设备,其最坏响应时间将非常长的设备,其最坏响应时间将非常长中断轮转结构特点中断轮转结构特点(续续)l l带中断的轮转结构的缺点使其具有局限性,带中断的轮转结构的缺点使其具有局限性,因而不太适合与某些系统。例如:因而不太适合与某些系统。例如:1.1.激光打印机激光打印机计算黑点出现的位置计算黑点出现的位置计算黑点出现的位置计算黑点出现的位置2.2.地下油罐监测器地下油罐监测器计算油罐中的剩余油量计算油罐中的剩余油量计算油罐中的剩余油量计算油罐中的剩余油量l l这些非常耗时处理放入中断程序中,将降这些非常耗时处理放入中断程序中,将降低其他设备任务的执行时间。低其他设备任务的执行时间。3.函数队列调度结构函数队列调度结构 l l中断服务程序:中断服务程序:对外部中断事件做出响应,添加一个对外部中断事件做出响应,添加一个对外部中断事件做出响应,添加一个对外部中断事件做出响应,添加一个函数指针函数指针函数指针函数指针放入到放入到放入到放入到函数指针队列函数指针队列函数指针队列函数指针队列中中中中l l主程序:主程序:从函数指针队列中读取下一个将被执行的函数从函数指针队列中读取下一个将被执行的函数从函数指针队列中读取下一个将被执行的函数从函数指针队列中读取下一个将被执行的函数指针,并执行该函数。指针,并执行该函数。指针,并执行该函数。指针,并执行该函数。/函数指针队列函数指针队列voidinterruptvHandleDeviceA(void)/关注关注I/O设备设备A/将将functionA放到函数指针队列中放到函数指针队列中voidinterruptvHandleDeviceB(void)/关注关注I/O设备设备B/将将functionB放到函数指针队列中放到函数指针队列中voidMain(void)while(TRUE)while(/函数指针队列为空函数指针队列为空)/调用队列中第一个函数调用队列中第一个函数voidfunctionA(void)/处理设备处理设备A请求请求voidfunctionB(void)/处理设备处理设备B请求请求3.函数队列调度结构特点函数队列调度结构特点l l优点:优点:没有规定没有规定没有规定没有规定mainmain必须按照中断程序发生的顺序必须按照中断程序发生的顺序必须按照中断程序发生的顺序必须按照中断程序发生的顺序来调度函数,来调度函数,来调度函数,来调度函数,mainmain可以根据任何达到目标的可以根据任何达到目标的可以根据任何达到目标的可以根据任何达到目标的优先级方案来调度函数优先级方案来调度函数优先级方案来调度函数优先级方案来调度函数在对函数指针进行排队程序中进行技巧性设计,在对函数指针进行排队程序中进行技巧性设计,在对函数指针进行排队程序中进行技巧性设计,在对函数指针进行排队程序中进行技巧性设计,可以更早地执行那些需要更快响应的任务代码。可以更早地执行那些需要更快响应的任务代码。可以更早地执行那些需要更快响应的任务代码。可以更早地执行那些需要更快响应的任务代码。3.函数队列调度结构特点函数队列调度结构特点l l缺点:缺点:1.1.1.1.如果高优先级的任务代码被频繁的调用,可如果高优先级的任务代码被频繁的调用,可如果高优先级的任务代码被频繁的调用,可如果高优先级的任务代码被频繁的调用,可以导致低优先级的代码永远没有可能被执行以导致低优先级的代码永远没有可能被执行以导致低优先级的代码永远没有可能被执行以导致低优先级的代码永远没有可能被执行的机会(类似于操作系统中的低优先级进程的机会(类似于操作系统中的低优先级进程的机会(类似于操作系统中的低优先级进程的机会(类似于操作系统中的低优先级进程饿死现象)饿死现象)饿死现象)饿死现象)2.2.2.2.较长的低优先级任务代码可能导致高优先级较长的低优先级任务代码可能导致高优先级较长的低优先级任务代码可能导致高优先级较长的低优先级任务代码可能导致高优先级任务无法得到及时的响应。这是因为:只能任务无法得到及时的响应。这是因为:只能任务无法得到及时的响应。这是因为:只能任务无法得到及时的响应。这是因为:只能中断能够抢占任务,而任务是不能抢占任务中断能够抢占任务,而任务是不能抢占任务中断能够抢占任务,而任务是不能抢占任务中断能够抢占任务,而任务是不能抢占任务的。的。的。的。l l低优先级任务代码较长时,如何使得高优低优先级任务代码较长时,如何使得高优先级任务能及时响应?先级任务能及时响应?将较长的低优先级程序分为若干小段。将较长的低优先级程序分为若干小段。在小段程序的最后,将下一段程序的入在小段程序的最后,将下一段程序的入口指针添加到函数队列中。口指针添加到函数队列中。4.实时操作系统实时操作系统voidinterruptvHandleDeviceA(void)/关注关注I/O设备设备A/设置信号设置信号XvoidinterruptvHandleDeviceB(void)/关注关注I/O设备设备B/设置信号设置信号YvoidTask1(void)while(TRUE)/等待信号等待信号X/处理输入处理输入I/O设备设备A或从或从I/O设备设备A输出的数据输出的数据voidTask2(void)while(TRUE)/等待信号等待信号Y/处理输入处理输入I/O设备设备B或从或从I/O设备设备B输出的数据输出的数据4.实时操作系统实时操作系统 l l中断程序和任务代码之间的必要信号是由中断程序和任务代码之间的必要信号是由实时操作系统处理的(各种信号量、消息实时操作系统处理的(各种信号量、消息队列、邮箱等等),而不是通过共享变量。队列、邮箱等等),而不是通过共享变量。l l在实时操作系统中,设备任务代码被声明在实时操作系统中,设备任务代码被声明为任务。任务管理由实时操作系统完成。为任务。任务管理由实时操作系统完成。l l代码中不存在一个主程序代码中不存在一个主程序循环循环来决定下一来决定下一步应该做什么,这项工作由实时操作系统步应该做什么,这项工作由实时操作系统完成。完成。l l与其他结构相比,由于不存在与其他结构相比,由于不存在主循环主循环,意,意味着任务的执行先后顺序与任务在代码中味着任务的执行先后顺序与任务在代码中摆放的位置无关。摆放的位置无关。l l实时操作系统可以在一个任务代码子程序实时操作系统可以在一个任务代码子程序的运行期间将其挂起,以便运行其它更紧的运行期间将其挂起,以便运行其它更紧急的任务代码。急的任务代码。这种这种这种这种“可抢占可抢占可抢占可抢占”的模型,使得高优先级任务的的模型,使得高优先级任务的的模型,使得高优先级任务的的模型,使得高优先级任务的执行请求总是能够得到尽快响应。即使存在代执行请求总是能够得到尽快响应。即使存在代执行请求总是能够得到尽快响应。即使存在代执行请求总是能够得到尽快响应。即使存在代码较长的低优先级任务,高优先级任务的响应码较长的低优先级任务,高优先级任务的响应码较长的低优先级任务,高优先级任务的响应码较长的低优先级任务,高优先级任务的响应时间也不会受到影响。时间也不会受到影响。时间也不会受到影响。时间也不会受到影响。l l为了节约资源,提高性能,实时操作系统为了节约资源,提高性能,实时操作系统通常没有太多的保护机制。例如,它不会通常没有太多的保护机制。例如,它不会对指针的合法性进行检查。对指针的合法性进行检查。l l实时操作系统中,没有必要终止出错的任实时操作系统中,没有必要终止出错的任务来保护整个系统,因为任何一个任务出务来保护整个系统,因为任何一个任务出现问题都将导致整个系统的重新启动。现问题都将导致整个系统的重新启动。l l实时操作系统实时操作系统具有可配置性具有可配置性,为了节省存,为了节省存储空间,避免不必要的资源开销,用户一储空间,避免不必要的资源开销,用户一般都对系统进行裁减和配置,仅保留所需般都对系统进行裁减和配置,仅保留所需要的功能和服务。要的功能和服务。l l在台式机操作系统中,尽管也允许用户对在台式机操作系统中,尽管也允许用户对系统进行一定的配置,但是仍然保留了大系统进行一定的配置,但是仍然保留了大量用户平时可能不会用到的功能。量用户平时可能不会用到的功能。实时操作系统的选择实时操作系统的选择l l自己编写不太现实自己编写不太现实在时间上在时间上在时间上在时间上成本上成本上成本上成本上性能和稳定性上性能和稳定性上性能和稳定性上性能和稳定性上l l市场中有许多可供选择的实时操作系统,市场中有许多可供选择的实时操作系统,免费的和收费的都有:免费的和收费的都有:VxWorksVxWorks,pSOSpSOS,LynxLynx,us/us/osos-II,Linux,-II,Linux,根据使用成本(是否免费),开发工具的易用根据使用成本(是否免费),开发工具的易用根据使用成本(是否免费),开发工具的易用根据使用成本(是否免费),开发工具的易用性,技术支持,系统使用的复杂度来选择。性,技术支持,系统使用的复杂度来选择。性,技术支持,系统使用的复杂度来选择。性,技术支持,系统使用的复杂度来选择。RTOS中的重要概念中的重要概念l l任务与任务状态任务与任务状态l l任务与数据任务与数据l l信号量和共享数据信号量和共享数据 1.任务与任务状态任务与任务状态l l什么是任务?什么是任务?实时操作系统中最基本的调度单元(类似于台实时操作系统中最基本的调度单元(类似于台实时操作系统中最基本的调度单元(类似于台实时操作系统中最基本的调度单元(类似于台式机操作系统中的进程)式机操作系统中的进程)式机操作系统中的进程)式机操作系统中的进程)任务状态任务状态1.1.运行运行a.a.表示微处理器正在执行组成该任务的指令。表示微处理器正在执行组成该任务的指令。表示微处理器正在执行组成该任务的指令。表示微处理器正在执行组成该任务的指令。b.b.在单处理器系统中,某一特定时刻,在单处理器系统中,某一特定时刻,在单处理器系统中,某一特定时刻,在单处理器系统中,某一特定时刻,只能有只能有只能有只能有一个任务一个任务一个任务一个任务处于运行状态处于运行状态处于运行状态处于运行状态2.2.就绪就绪a.a.表示任务正在等待被微处理器执行,但当前表示任务正在等待被微处理器执行,但当前表示任务正在等待被微处理器执行,但当前表示任务正在等待被微处理器执行,但当前微处理器正在处理其它任务。微处理器正在处理其它任务。微处理器正在处理其它任务。微处理器正在处理其它任务。b.b.当微处理器空闲时,该就绪的任务可能被执当微处理器空闲时,该就绪的任务可能被执当微处理器空闲时,该就绪的任务可能被执当微处理器空闲时,该就绪的任务可能被执行,但取决于任务调度器的调度结果。行,但取决于任务调度器的调度结果。行,但取决于任务调度器的调度结果。行,但取决于任务调度器的调度结果。任务状态任务状态3.3.阻塞阻塞a.a.表示任务正在等待它运行所需要的资源(事表示任务正在等待它运行所需要的资源(事表示任务正在等待它运行所需要的资源(事表示任务正在等待它运行所需要的资源(事件,消息,信号量,硬件资源等等)。件,消息,信号量,硬件资源等等)。件,消息,信号量,硬件资源等等)。件,消息,信号量,硬件资源等等)。b.b.即使微处理器处于空闲状态,该任务也无法即使微处理器处于空闲状态,该任务也无法即使微处理器处于空闲状态,该任务也无法即使微处理器处于空闲状态,该任务也无法被执行被执行被执行被执行l l复杂的实时操作系统中,可能还有其它状复杂的实时操作系统中,可能还有其它状态,如:暂停、挂起、等待、休眠和延迟态,如:暂停、挂起、等待、休眠和延迟等。等。任务状态迁移图任务状态迁移图任务状态迁移图任务状态迁移图任务状态及其迁移任务状态及其迁移任务调度任务调度l l实时操作系统中的调度程序记录每个任务实时操作系统中的调度程序记录每个任务的状态,决定哪个任务可以进入运行状态。的状态,决定哪个任务可以进入运行状态。l l执行基本操作:执行基本操作:根据不同的情况,将当前任务迁移到就绪状态根据不同的情况,将当前任务迁移到就绪状态根据不同的情况,将当前任务迁移到就绪状态根据不同的情况,将当前任务迁移到就绪状态或者阻塞状态;或者阻塞状态;或者阻塞状态;或者阻塞状态;检查处于阻塞状态中的任务是否能够离开阻塞检查处于阻塞状态中的任务是否能够离开阻塞检查处于阻塞状态中的任务是否能够离开阻塞检查处于阻塞状态中的任务是否能够离开阻塞状态;状态;状态;状态;将就绪状态中优先级最高的任务调度运行将就绪状态中优先级最高的任务调度运行将就绪状态中优先级最高的任务调度运行将就绪状态中优先级最高的任务调度运行调度基本原则调度基本原则l l当一个当一个任务阻塞任务阻塞时,它不能直接被调度运时,它不能直接被调度运行。它必须等待其它程序(中断服务程序行。它必须等待其它程序(中断服务程序或者其它任务代码)向它发送信号,使它或者其它任务代码)

    注意事项

    本文((精品)2嵌入式软件体系结构综述.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开