阅读以下关于安全攸关嵌入式系统相关技术的描述,在答题纸上回答问题 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 的可能的方法。



