(精品)2嵌入式软件体系结构综述.ppt
《(精品)2嵌入式软件体系结构综述.ppt》由会员分享,可在线阅读,更多相关《(精品)2嵌入式软件体系结构综述.ppt(91页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式软件嵌入式软件计算机与通信学院计算机与通信学院2.嵌入式软件体系结构综述嵌入式软件体系结构综述目录目录l l面向应用的软件结构面向应用的软件结构l l主要的嵌入式软件结构原型主要的嵌入式软件结构原型轮转轮转轮转轮转结构结构结构结构带有带有带有带有中断的轮转结构中断的轮转结构中断的轮转结构中断的轮转结构函数函数函数函数队列调度结构队列调度结构队列调度结构队列调度结构实时实时实时实时操作系统结构操作系统结构操作系统结构操作系统结构l l软件软件结构的选择结构的选择嵌入式软件系统的嵌入式软件系统的系统架构系统架构硬件硬件应用层应用层驱动层驱动层操作系统层操作系统层中间件层中间件层板级板级初始化
2、初始化FLASH驱动驱动RTC/定定时器驱动时器驱动串口串口驱动驱动以太网以太网驱动驱动LCD驱动驱动键盘键盘驱动驱动其他其他驱动驱动内核内核TCP/IP网络系统网络系统文件文件系统系统嵌入式嵌入式GUI电源电源管理管理嵌入式嵌入式CORBA嵌入式嵌入式JAVA嵌入式嵌入式DCOM面向应用领域面向应用领域的中间件的中间件应用应用任务任务1应用应用任务任务2应用应用任务任务n嵌入式软件系统的嵌入式软件系统的系统架构系统架构l l驱动层驱动层 驱动层是直接与硬件打交道的一层,它对驱动层是直接与硬件打交道的一层,它对操作系统和应用提供所需的驱动的支持。操作系统和应用提供所需的驱动的支持。该层主要包括
3、三种类型的程序。该层主要包括三种类型的程序。板级初始化程序板级初始化程序 这些程序在嵌入式系统上电后初始化系统硬件这些程序在嵌入式系统上电后初始化系统硬件环境,包括嵌入式微处理器、存储器、中断控环境,包括嵌入式微处理器、存储器、中断控制器、制器、DMA、定时器等的初始化。定时器等的初始化。与系统软件相关的驱动与系统软件相关的驱动与系统软件相关的驱动与系统软件相关的驱动 这类驱动是操作系统和中间件等系统软件这类驱动是操作系统和中间件等系统软件所需的驱动程序,它们的开发要按照系统所需的驱动程序,它们的开发要按照系统软件的要求进行。软件的要求进行。目前操作系统内核所需的硬件支持一般都目前操作系统内核
4、所需的硬件支持一般都已集成在嵌入式微处理器中了,因此操作已集成在嵌入式微处理器中了,因此操作系统厂商提供的内核驱动一般不用修改。系统厂商提供的内核驱动一般不用修改。与应用软件相关的驱动与应用软件相关的驱动与应用软件相关的驱动与应用软件相关的驱动 与应用软件相关的驱动不一定需要与操作系统与应用软件相关的驱动不一定需要与操作系统连接,这些驱动的设计和开发由应用决定。连接,这些驱动的设计和开发由应用决定。嵌入式软件系统的嵌入式软件系统的系统架构系统架构l l操作系统层操作系统层操作系统层包括嵌入式内核、嵌入式操作系统层包括嵌入式内核、嵌入式TCP/IP网络系统、嵌入式文件系统、嵌网络系统、嵌入式文件
5、系统、嵌入式入式GUI系统和电源管理等部分。系统和电源管理等部分。其中嵌入式内核是基础和必备的部分,其中嵌入式内核是基础和必备的部分,其他部分要根据嵌入式系统的需要来确其他部分要根据嵌入式系统的需要来确定。定。嵌入式软件系统的嵌入式软件系统的系统架构系统架构l l中间件层中间件层 目前在一些复杂的嵌入式系统中也开始目前在一些复杂的嵌入式系统中也开始采用中间件技术,主要包括嵌入式采用中间件技术,主要包括嵌入式CORBA、嵌入式嵌入式Java、嵌入式嵌入式DCOM和面向应用领域的中间件软件。和面向应用领域的中间件软件。如基于嵌入式如基于嵌入式CORBA的应用于软件无线的应用于软件无线电台的应用中间
6、件电台的应用中间件SCA(Software Core Architecture)等。等。嵌入式软件系统的嵌入式软件系统的系统架构系统架构l l应用层应用层 应用层软件主要由多个相对独立的应用应用层软件主要由多个相对独立的应用任务组成任务组成每个应用任务完成特定的工作,如每个应用任务完成特定的工作,如I/O任任务、计算的任务、通信任务等,由操作务、计算的任务、通信任务等,由操作系统调度各个任务的运行。系统调度各个任务的运行。嵌入式软件运行流程嵌入式软件运行流程上电复位上电复位引导系统引导系统系统初始化系统初始化应用初始化应用初始化多任务应用多任务应用板级初始化板级初始化基于多任务操作系统基于多任
7、务操作系统的嵌入的嵌入式软件的主要运行流程式软件的主要运行流程嵌入式软件运行流程嵌入式软件运行流程l l上电复位、板级初始化阶段上电复位、板级初始化阶段嵌入式系统上电复位后完成板级初始化工作。嵌入式系统上电复位后完成板级初始化工作。嵌入式系统上电复位后完成板级初始化工作。嵌入式系统上电复位后完成板级初始化工作。板级初始化程序具有完全的硬件特性,一般板级初始化程序具有完全的硬件特性,一般板级初始化程序具有完全的硬件特性,一般板级初始化程序具有完全的硬件特性,一般采用汇编语言实现。不同的嵌入式系统,板采用汇编语言实现。不同的嵌入式系统,板采用汇编语言实现。不同的嵌入式系统,板采用汇编语言实现。不同
8、的嵌入式系统,板级初始化时要完成的工作具有一定的特殊性,级初始化时要完成的工作具有一定的特殊性,级初始化时要完成的工作具有一定的特殊性,级初始化时要完成的工作具有一定的特殊性,但以下工作一般是必须完成的:但以下工作一般是必须完成的:但以下工作一般是必须完成的:但以下工作一般是必须完成的:CPUCPU中堆栈指针寄存器的初始化。中堆栈指针寄存器的初始化。中堆栈指针寄存器的初始化。中堆栈指针寄存器的初始化。BSSBSS段(段(段(段(Block Storage SpaceBlock Storage Space表示未被表示未被表示未被表示未被初始化的数据)的初始化。初始化的数据)的初始化。初始化的数据
9、)的初始化。初始化的数据)的初始化。CPUCPU芯片级的初始化:中断控制器、内存芯片级的初始化:中断控制器、内存芯片级的初始化:中断控制器、内存芯片级的初始化:中断控制器、内存等的初始化。等的初始化。等的初始化。等的初始化。嵌入式软件运行流程嵌入式软件运行流程l l系统引导阶段系统引导阶段系统引导有几种情况:系统引导有几种情况:系统引导有几种情况:系统引导有几种情况:将软件从将软件从将软件从将软件从NOR FlashNOR Flash中读取出来加载到中读取出来加载到中读取出来加载到中读取出来加载到RAMRAM中运行:这种方式可以解决成本及中运行:这种方式可以解决成本及中运行:这种方式可以解决成
10、本及中运行:这种方式可以解决成本及FlashFlash速度比速度比速度比速度比RAMRAM慢的问题。软件可压缩存慢的问题。软件可压缩存慢的问题。软件可压缩存慢的问题。软件可压缩存储在储在储在储在FlashFlash中。中。中。中。不需将软件引导到不需将软件引导到不需将软件引导到不需将软件引导到RAMRAM中而是让其直接在中而是让其直接在中而是让其直接在中而是让其直接在NorFlashNorFlash上运行,进入系统初始化阶段。上运行,进入系统初始化阶段。上运行,进入系统初始化阶段。上运行,进入系统初始化阶段。将软件从外存(如将软件从外存(如将软件从外存(如将软件从外存(如NandFlashNa
11、ndFlash、CFCF卡、卡、卡、卡、MMCMMC等)中读取出来加载到等)中读取出来加载到等)中读取出来加载到等)中读取出来加载到RAMRAM中运行:中运行:中运行:中运行:这种方式的成本更低。这种方式的成本更低。这种方式的成本更低。这种方式的成本更低。嵌入式软件运行流程嵌入式软件运行流程l l系统初始化阶段系统初始化阶段 在该阶段进行操作系统等系统软件各功能部分在该阶段进行操作系统等系统软件各功能部分在该阶段进行操作系统等系统软件各功能部分在该阶段进行操作系统等系统软件各功能部分必需的初始化工作,如根据系统配置初始化数必需的初始化工作,如根据系统配置初始化数必需的初始化工作,如根据系统配置
12、初始化数必需的初始化工作,如根据系统配置初始化数据空间、初始化系统所需的接口和外设等。据空间、初始化系统所需的接口和外设等。据空间、初始化系统所需的接口和外设等。据空间、初始化系统所需的接口和外设等。系统初始化阶段需要按特定顺序进行,如首先系统初始化阶段需要按特定顺序进行,如首先系统初始化阶段需要按特定顺序进行,如首先系统初始化阶段需要按特定顺序进行,如首先完成完成完成完成内核的初始化内核的初始化内核的初始化内核的初始化,然后完成网络、文件系统,然后完成网络、文件系统,然后完成网络、文件系统,然后完成网络、文件系统等的初始化,最后完成中间件等的初始化工作。等的初始化,最后完成中间件等的初始化工
13、作。等的初始化,最后完成中间件等的初始化工作。等的初始化,最后完成中间件等的初始化工作。嵌入式软件运行流程嵌入式软件运行流程l l应用初始化阶段应用初始化阶段在该阶段进行应用任务的创建,信号量、消在该阶段进行应用任务的创建,信号量、消息队列的创建和与应用相关的其它初始化工息队列的创建和与应用相关的其它初始化工作。作。l l多任务应用运行阶段多任务应用运行阶段各种初始化工作完成后,系统进入多任务状各种初始化工作完成后,系统进入多任务状态,操作系统按照已确定的算法进行任务的态,操作系统按照已确定的算法进行任务的调度,各应用任务分别完成特定的功能。调度,各应用任务分别完成特定的功能。主要的嵌入式软件
14、结构原型主要的嵌入式软件结构原型1.1.轮转结构轮转结构2.2.带中断的轮转结构带中断的轮转结构3.3.函数队列调度结构函数队列调度结构4.4.实时操作系统实时操作系统 1.轮转结构轮转结构l l没有中断:采用查询没有中断:采用查询(polling)逐个检查每个逐个检查每个逐个检查每个逐个检查每个I/OI/O设备设备设备设备,如果需要服务如果需要服务如果需要服务如果需要服务,则为该则为该则为该则为该设备提供服务设备提供服务设备提供服务设备提供服务,如果没有请求则跳过如果没有请求则跳过如果没有请求则跳过如果没有请求则跳过,查询下一查询下一查询下一查询下一个设备个设备个设备个设备.voidmain
15、(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数字万用电表数字万用电表功能功能功能功能:以欧姆、安培和伏特为单位测量电阻、以
16、欧姆、安培和伏特为单位测量电阻、以欧姆、安培和伏特为单位测量电阻、以欧姆、安培和伏特为单位测量电阻、电流和电压。电流和电压。电流和电压。电流和电压。工作过程:用电表上的两个探针来接触被测量工作过程:用电表上的两个探针来接触被测量工作过程:用电表上的两个探针来接触被测量工作过程:用电表上的两个探针来接触被测量的电路两端,利用一个旋转开关选择所需要测的电路两端,利用一个旋转开关选择所需要测的电路两端,利用一个旋转开关选择所需要测的电路两端,利用一个旋转开关选择所需要测量的物理量和量程,通过一个数字显示屏显示量的物理量和量程,通过一个数字显示屏显示量的物理量和量程,通过一个数字显示屏显示量的物理量和
17、量程,通过一个数字显示屏显示结果。结果。结果。结果。voidvDigitalMultiMeterMain(void)enumOHMS_1,OHMS_10,VOLTS_100eSwitchPosition;while(TRUE)eSwitchPosition=/读取开关的位置读取开关的位置switch(eSwitchPosition)caseOHMS_1:/读取硬件来测量欧姆值读取硬件来测量欧姆值/将结果格式化将结果格式化break;caseOHMS_10:/读取硬件来测量欧姆值读取硬件来测量欧姆值/将结果格式化将结果格式化break;VOLTS_100:/读取硬件来测量伏特值读取硬件来测量伏特
18、值/将结果格式化将结果格式化break;/将结果写入显示设备将结果写入显示设备1.轮转结构轮转结构(续续)l l优点优点:l l缺点缺点:简单,公平简单,公平响应时间不能保证。由于响应时间不能保证。由于 不能抢占,不能抢占,没有优先级概念,容易导致某个慢速没有优先级概念,容易导致某个慢速任务会让要求快速的任务无法得到执任务会让要求快速的任务无法得到执行行2.带中断的轮转结构带中断的轮转结构BOOLfDeviceA=FALSE;BOOLfDeviceB=FALSE;BOOLfDeviceZ=FALSE;voidinterruptvHandleDeviceA(void)/关注关注I/O设备设备Af
19、DeviceA=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(fDevice
20、Z)fDeviceZ=FALSE;/处理输入处理输入I/O设备设备Z或从或从I/O设备设备Z输出的数据输出的数据2.带中断的轮转结构带中断的轮转结构 1.1.引入了优先级的概念引入了优先级的概念2.2.中断服务程序优先级高于任务代码中断服务程序优先级高于任务代码在这种结构中在这种结构中在这种结构中在这种结构中,要求响应速度快的任务可设置要求响应速度快的任务可设置要求响应速度快的任务可设置要求响应速度快的任务可设置为高优先级为高优先级为高优先级为高优先级,当该任务有请求时当该任务有请求时当该任务有请求时当该任务有请求时,其他任务将其他任务将其他任务将其他任务将被中断被中断被中断被中断,处理器转向
21、处理该任务处理器转向处理该任务处理器转向处理该任务处理器转向处理该任务.一个通信桥接器一个通信桥接器 l l工作模型工作模型-两条工作链路:两条工作链路:1.A1.A为明文传输为明文传输为明文传输为明文传输 2.2.B B为密文传输为密文传输为密文传输为密文传输l l桥接器的工作桥接器的工作从某端口取数据从某端口取数据从某端口取数据从某端口取数据加密加密加密加密/解密解密解密解密从另一个端口从另一个端口从另一个端口从另一个端口发出发出发出发出一个通信桥接器一个通信桥接器(续续)1.1.当一个通信链接上收到一个字符,会引发当一个通信链接上收到一个字符,会引发一个中断,微处理器必须在下一个字符到一
22、个中断,微处理器必须在下一个字符到达前把该字符从达前把该字符从I/O硬件读走硬件读走2.2.微处理器在某时刻只能往微处理器在某时刻只能往I/O硬件上输出一硬件上输出一个字符个字符3.3.加密加密/解密程序一次能对一个字符进行处理解密程序一次能对一个字符进行处理4.4.存在一个程序,它们从队列读出或者向队存在一个程序,它们从队列读出或者向队列写入字符,并检查是否为空。列写入字符,并检查是否为空。一个通信桥接器一个通信桥接器(续续)l l桥接器可否采用纯粹的轮转结构吗桥接器可否采用纯粹的轮转结构吗?不能。不能。不能。不能。例如例如例如例如:A A有数据发送有数据发送有数据发送有数据发送,随后随后随
23、后随后B B链路立即有数据达链路立即有数据达链路立即有数据达链路立即有数据达到到到到.按照轮询结构按照轮询结构按照轮询结构按照轮询结构,微处理器首先处理微处理器首先处理微处理器首先处理微处理器首先处理A A口口口口的数据的数据的数据的数据.它从它从它从它从A A口寄存器中读取数据口寄存器中读取数据口寄存器中读取数据口寄存器中读取数据,放到放到放到放到内部缓冲区内部缓冲区内部缓冲区内部缓冲区,然后加密然后加密然后加密然后加密,再将加密数据输出;再将加密数据输出;再将加密数据输出;再将加密数据输出;处理完后响应处理完后响应处理完后响应处理完后响应B B链路的数据处理。此时,链路的数据处理。此时,链
24、路的数据处理。此时,链路的数据处理。此时,由于由于由于由于B B链路上数据得不到及时响应处理导致链路上数据得不到及时响应处理导致链路上数据得不到及时响应处理导致链路上数据得不到及时响应处理导致数据丢失。数据丢失。数据丢失。数据丢失。一个通信桥接器一个通信桥接器(续续)l l采用带中断的轮转结构采用带中断的轮转结构l l中断程序:接受字符并将它们写入队列中断程序:接受字符并将它们写入队列设置该中断程序比设置该中断程序比设置该中断程序比设置该中断程序比队列间移动字符队列间移动字符队列间移动字符队列间移动字符、加密加密加密加密/解解解解密密密密、传递数据传递数据传递数据传递数据等任务更高的优先级等任
25、务更高的优先级等任务更高的优先级等任务更高的优先级l l通过此方式,即使加密通过此方式,即使加密/解密处理过程耗时,解密处理过程耗时,但是突然到达的大量字节也不会造成系统但是突然到达的大量字节也不会造成系统的过载而丢失。的过载而丢失。StaticBOOLfLinkAReadyToSend=TRUE;StaticBOOLfLinkBReadyToSend=TRUE;voidinterruptvGotCharacterOnLinkA(void)charch;ch=/从通信链路从通信链路A读取字符读取字符vQueueAdd(&qDataFromLinkA,ch);voidinterruptvSent
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 嵌入式 软件 体系结构 综述
限制150内