功能 #3382
由 稚媛 黄 更新于 3 个月 之前
参考软件“DR-003701-707966 Software Loops”
需求描述
本设计规则支持 RQT-003701-705377《软件设计最佳实践》,适用于包含以下类型软件的所有电子控制模块:非AUTOSAR操作系统(Non-AUTOSAR OS),AUTOSAR Classic 平台,AUTOSAR Adaptive 平台,第三方软件并作为该RQT的合规性实施方法。
.除构成最高层级控制结构的循环(如调度循环、主事件循环)及需强制复位的场景外,所有循环必须提供独立于执行监控器(execution supervisor)的备用退出机制。
技术规范
陷入软件循环可能导致程序呈现甚至实际停止运行的异常状态。除顶层循环控制结构外,所有次级循环必须配置终止/退出机制(如:循环不变式的谓词判断、外部计时器等),确保退出该控制结构的途径不唯一依赖系统执行监管器(execution executive)。需说明:专门等待执行监管器触发的循环虽常用于异常处理等场景且未被明令禁止,但仍建议采用下述替代机制实现系统级操作。
强制复位的非循环实现方法
在不使用循环的情况下强制微控制器复位的核准方法如下(若需采用其他方法,须按"分析/讨论"章节规定的例外流程审批):
. 触发执行监控器(如:看门狗超时)
. 使用SWI(软件中断):在SWI中断处理程序中强制执行复位
. 采用福特提供的部件功能规范中定义的复位机制
. 执行微控制器专用指令或特定指令序列
作为微控制器(MCU)复位流程的必要组成部分,所有电源模块及MCU外部外设必须重新初始化为上电(Power-On)状态。
分析/讨论
本设计规则支持 RQT-003701-705377《软件设计最佳实践》,适用于所有含软件实现的电子控制模块,并作为以下两项的合规性实施方法:
1.RQT规范要求
2.DR-003701-707968 ECU健康监控参数标识符(PID)D700(十六进制)
设计规则闭合机制
设计规则的闭合以完成软件技术设计评审(Technical Design Review, TDR)为标志,具体通过"SWQA通用TDR检查单"中的下列问题项落实:
系统中是否存在使用「自旋锁」(Spin-Lock)实现的无限循环?若存在,其退出机制如何实现?
返回