刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

阅读以下关于安全攸关嵌入式系统相关技术的描述,在答题纸上回答问题 1 至问题 3。

【说明】

某公司机电管理系列产品被广泛应用于飞行器后,现场事故频繁发生,轻则飞机座舱显示机电设备工作异常,重则系统预警,切入备份运行。这些事故给航空公司带来重大经济损失。

公司领导非常重视航空公司的问题反馈,责令公司王总带队到现场进行故障排查。经过一个多月的排查,故障现象始终未复现,同时,公司实验室内也在反复出现故障,结果未取得显著成效,但发现产品存在偶然丢失协议包的现象。随后,公司领导组织行业专家召开故障分析会。王总在会上对前期故障排查情况进行了说明,指出从外场现象看 CCDL 协议包丢失是引起系统报警、切换的主要原因。图 3-1 给出了机电管理产品的工作原理,机电管理系统主要承担了对飞行器的刹车、燃袖和环控等子系统进行监视与控制,它对飞行器而言是安全攸关系统,因此,从系统结构上采用了双余度计算机系统。具体工作流程简要说明如下:

1.机电管理系统由 1 号计算机和 2 号计算机组成,双机互为余度备份;

2.双机中分别驻留了一个 100ms 周期的 CCDL 任务,完成双机间的交叉对比和实时监控等工作。10ms 定时器作为任务的工作频率;

3.交叉对比协议包包含一组“AA55”报头、消息长度、数据和校验码;

4.2 号机将协议包通过 422 总线发送给 1 号机(422 总线接口芯片有 8 级缓冲);

5.1 号机通过中断方式将 422 总线数据接收到大环形缓冲区中(大小为 4096B);

6.100ms 的 CCDL 定时任务将大环形媛冲区的数据以 512B 为单位拷贝到小环形缓冲区中(大小 512B);

7.CCDL 任务按照协议包格式解析小环形缓冲的数据,如果校验错误,丢弃当前协议包;

8.在协议包格式正确的情况下,进行数据交叉比对,比对正确则输出;比对不正确,并连续不正确超过门限,则报警。

问题内容:

【问题 1】(12 分)

王总汇报时指出,在设计安全攸关系统软件时,往往不重视安全攸关软件设计方

法, 不遵守 C 语言安全编码规范,导致程序质量较差,代码中存在支全隐患。请简要说明表 3-1 给出的 C 语言代码是 C 语言安全编码标准中(如:MISARC 标准)不允许采用的代码结构的原因。

表 3-1 C 语言代码实例

【问题 2】(10 分)

请根据自己对图 3-1 所示机电管理系统工作原理的分析,用 300 字以内的文字说明本实例中可能存在哪三方面数据传输时丢失协议包现象,并简要说明原因。

【问题 3】(3 分)

针对以上分析出的三种丢包原因,请举例给出两种以上的修改丢包 bug 的可能的方法。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

【问题1】

(1)不允许。违背(建议)规则6.3

(2)不允许。违背(建议)规则6.3、(强制)规则15.3和强制规则15.5

(3)不允许。违背(建议)规则6.3

(4)不允许。违背(建议)规则6.3和(强制)规则8.1

(5)不允许。违背(建议)规则6.3和(强制)规则12.2

x=exp_1(&y)+exp_2(&2)应修改为:

x=exp_1(&y); x+=exp_2(&y)

(6)不允许。违背(建议)规则6.3和(强制)规则10.3,

(unsigned int *)s是危险的类型转换


【问题2】

(1)422总线传输速率可达10Mbps,4096缓冲区是环形缓冲区,若数据不断从2号机放过来,可能导致未及时处理的数据被覆盖,造成丢包。

(2)CCDL任务解析小环形缓冲的数据,若校验错误可能会导致丢包。

(3)CCDL任务做协议包文交叉比对时,发现数据不一致,可能会导致丢包


【问题3】

方案一、扩展4096B环形缓冲区容量,以减少缓冲区溢出现象。

方案二、将422总线升级为485总线,以提高传输可靠性。

解析:

对于问题一的解析需要参照具体的C语言安全编码规范来分析代码实例为何不符合规范。对于问题二需要分析机电管理系统的工作原理来推断可能出现丢包的原因。对于问题三则需要针对分析出的丢包原因提出具体的解决方案或修改建议。

创作类型:
原创

本文链接:阅读以下关于安全攸关嵌入式系统相关技术的描述,在答题纸上回答问题 1 至问题 3。 【说明】 某公司

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share