未分类题

某水电站根据安全监控需要决定采用嵌入式工控微机进行实时多任务安全监测。该系统有32路模拟量输入、96路开关量、16路脉冲量输入和水位落差量输入,产生显示信息、报警信号、监测报表和水位传感器控制信号等输出。该水电站安全监测系统具有以下几个特点:对各种模拟量、开关量、脉冲量、水位落差量等数据量监测,事实上只是周期性地重复执行相应各个任务模块。
监视对象比较固定,系统硬件规模相对固定不变。尽可能允许把所有软件都固化在EPROM中。人机交互作用内容固定,即由操作人员通过键盘去调用此系统中所存入相应应用程序,不会去修改应用程序。基于以上安全监测系统特点,该水电站技术研发部门准备选用现有工业控制机系统及现成各种模板等硬件,由本部门开发人员自行开发软件。
所开发软件主要包括:应用程序,即按各类输入/输出量采集、处理、显示、报警和制表等功能分别作为若干任务块,由这些任务组成应用程序。多任务嵌入式实时操作系统,用来协调各任务资源分配与管理,管理任务之间联系与多任务操作。
[问题1]根据以上安全监测系统特点,技术研发人员郭工程师提出了一个自行编制简化“多任务嵌入式实时操作系统”方案,以适应于协调管理硬件资源和监测对象实际需求,其中只保留了标准多任务实时操作系统核心功能,例如CPU管理、中断管理和外设管理等。请在200字以内简要说明郭工程师提出简化“多任务嵌入式实时操作系统”可能具有哪些优点。
[问题2]设计简化多任务嵌入式实时操作系统时,由于多个任务均可能要求占用CPU这个关键资源,因此CPU任务管理是一个非常重要设计内容。在该嵌入式实时操作系统中,作为占用资源基本单位,任务总共有五个状态,分别是休眠状态、就绪状态、运行状态、等待状态和延时等待状态。在任何时候,一个任务只会处于其中某一个状态。请根据图6-8中已给出信息将(1)~(5)空缺处填写完整。
中级嵌入式系统设计师,章节练习,基础复习,中级嵌入式系统设计师练习
[问题3]在该水电站安全监测系统中,数据采集任务(Collect_task)把所采集数据送入一单缓冲区,计算任务(Calculate_task)从该单缓冲区中取出数据进行计算。以下是利用信号量机制实现两个任务共享单缓冲区C语言形式化描述程序。请将程序代码中(6)~(9)空缺处以及(10)空缺处内容填写完整。int sr=0'int (6) :main(){cobeginCollect_task();Calculate_task();coend}Collect_task(){ While(采集工作未完成){ 采集一个数据, P(se), 将数据送入缓冲区中: (7) ,}}Calculate_task(){While(计算工作未完成){(8) ,从缓冲区中取出数据:(9)进行数据计算送入缓冲区中,}}如果以上程序中“int sf=0;”语句不小心被改写成“ints{=-1;”,那么系统运行时将会进入(10)状态。

【参考答案】

问题1:①可加快该操作系统开发周期,并使其更易于维护,②减少操作系统占有内存容量,便于固化,③减少操作系统运行开销(例如......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

未分类题
某公司承接了一个控制系统项目,由王工负责系统方案设计。王工设计方案如图1所示。该方案是基于VME总线多机并行处理系统,由主控制模块作为VME总线主设备,即总线控制器,负责整个系统控制与管理;3个数据处理模块作为从设备,负责数据处理与计算;1个I O模块也作为从设备,负责系统与外部接口之间高速数据通信。同时,为了简化设计,该系统5个模块均采用同一款VME协议芯片,实现内总线和VME总线连接。该系统中每个模块相关信息见表1所示。1、王工设计采用共享存储器方式,进行多机之间通信。VME共享存储器地址空间映射,分为输出窗口和输入窗口两部分。输出窗口实现处理器本地地址空间到VME总线地址空间映射,输入窗口实现VME总线地址空间到处理器本地地址空间映射。 输出窗口空间设置说明:为了每个模块能访问到其他4个模块,在每个模块处理器本地地址空间中开辟5M空间,映射到VME总线上5M地址空间。映射关系见表2。输入窗口空间设置说明:每个模块分配1MVME地址空间,并将这1M空间映射到处理器本地RAM区域中,专门用于VME通信数据缓冲区。映射关系见表3。VME总线驱动中,按照上述方式对寄存器进行设置,实现了VME总线共享存储器工作方式,将对其他模块操作转化为对处理器本地地址空间访问操作相似读写操作,并且都采用总线远程写,总线本地读方式。 数据处理模块1发送消息到数据处理模块2,它们之间采用1M数据缓冲区第一个32位作为握手标志。则数据处理模块1访问标志区总线地址为______,数据处理模块2访问标志区总线地址为______。 I O模块向主控制模块发送控制命令,它们之间采用1M数据缓冲区偏移0x100处作为命令缓冲区。则I O模块访问命令区总线地址为______,主控制模块访问命令区总线地址为______。2、如表1所示,该系统中采用处理器有大端和小端两种工作模式。王工设计VME总线上传输数据全部采用小端方式,那么当处理器通过VME总线发送数据时,需要根据自己工作模式,对数据进行必要转换,以符合协议要求。 当I O模块向主控制模块发送控制命令0xAABBCCDD,那么它写入V=ME总线实际数据是______,当主控制模块向数据处理模块3和I O模块发送控制命令0x12345678,那么它写入VME总线实际数据是______和______。3、为了提高数据通信性能,在进行大数据量通信时,王工设计采用DMA方式。DMA通信方式能够满足高速VME设备需求,也有利于发挥CPU效率。该VME协议芯片有两种DMA工作方式:一种是直接方式(Direct mode),一种是链方式(Linked list mode)。在直接方式下,在每次数据传输前,需要驱动程序对DMA控制寄存器进行设置,然后进行DMA传输,并等待传输完成,或者异常错误。直接方式是一种软件和硬件同步工作方式。在链方式下,驱动程序只需要设置命令包。在通信过程中,硬件根据命令包内容完成传输,并根据链中下一个命令包,继续传输,直到所有命令包完成或者异常错误。链方式是一种软件和硬件异步工作方式。 图2是DMA直接方式流程图,请补全流程图。
未分类题
阅读以下关于某嵌入式系统多路数据采集说明,回答下列问题。 [说明] 某嵌入式系统中,存在16路数据采集通道,为了提高数据采集可靠性,对16路采集通道均采用双余度设计,为了监控采集通道是否发生故障,对各路双余度通道采集值进行比较,只有当该通道两个余度设备采集值均不小于45时,才表示该路通道正常。设计人员设计函数num_of_passer用于统计无故障通道数目,在该函数设计中考虑了如下因素: 9采用如下数据结构存储通道号及采集值: Struct value {unsigned int No; 通道号,1到16 unsigned short Value1; 余度1采集值 unsigned short Value2; 余度2采集值 } 10当输入参数异常时,函数返回-1; 11若正确统计了无故障通道数目,则返回该数目; 12该函数需要两个输入参数,第一个参数是用于存储通道号及余度采集值数组,第二个参数为通道总数目。开发人员根据上述要求使用ANSI C对代码实现如下(代码中第一个数字代表行号): 1)unsigned int num_of_passer(struct value array[], unsigned int num) { 2)unsigned int n=0; 循环变量 3)unsigned int counter; 无故障通道数目 4)if((array=NULL)||(num==0)||(num>16)) 5)return-1; 当输入参数异常时,函数返回-1 6)for(n=0; nimage.png=num; n++) { 7)if((array[n].Value1>45) && ((array[n].Value2>45))) 8)counter=counter+1; } 9)return counter; }1、嵌入式软件中通常使用圈复杂度来衡量程序可维护性(一般要求圈复杂度不大于10),请计算函数num_of_passer圈复杂度。2、作为测试人员,请参照表1序号1方式使用代码审查方法找出该程序中所包含至少3处错误。3、覆盖率是度量测试完整性一个手段,也是度量测试有效性一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC DC覆盖率作为度量指标,请指出对函数num_of_passer达到100%语句覆盖、100%分支(DC.覆盖和100%MC DC覆盖所需最少测试用例数目,如表2所示。