您的位置:首页 > 娱乐 > 八卦 > 深圳外贸网站怎么建_哈尔滨网站制作方案_营销活动策划方案_aso优化技术

深圳外贸网站怎么建_哈尔滨网站制作方案_营销活动策划方案_aso优化技术

2024/10/7 2:32:26 来源:https://blog.csdn.net/zhangxiaio1/article/details/142353303  浏览:    关键词:深圳外贸网站怎么建_哈尔滨网站制作方案_营销活动策划方案_aso优化技术
深圳外贸网站怎么建_哈尔滨网站制作方案_营销活动策划方案_aso优化技术

7.2 Error Handling

    • 7.2.1 Classification(错误分类)
    • 7.2.2 开发错误
      • 7.2.2.1 概述
      • 7.2.2.2 文档
      • 7.2.2.3 配置
      • 7.2.2.4 报告
      • 7.2.2.5 其他注意事项
    • 7.2.3 运行时错误
      • 7.2.3.1 概述
      • 7.2.3.2 文档
      • 7.2.3.3 配置
      • 7.2.3.4 报告
    • 7.2.4 瞬时错误(Transient Faults)
      • 7.2.4.1 概述
      • 7.2.4.2 文档
      • 7.2.4.3 配置
      • 7.2.4.4 报告
      • 7.2.4.5 示例
    • 7.2.5 生产错误(Production Errors)
      • 7.2.5.1 概述
      • 7.2.5.2 文档
      • 7.2.5.3 配置
      • 7.2.5.4 报告
    • 7.2.6 安全事件(Security Events)
      • 7.2.6.1 概述
      • 7.2.6.2 文档
      • 7.2.6.3 配置
      • 7.2.6.4 报告
      • 7.2.6.5 示例
    • 7.2.7 错误管理策略

7.2.1 Classification(错误分类)

AUTOSAR 中的错误处理机制将错误分为不同类别,以帮助开发人员和系统有效地处理这些错误。错误的分类基于它们的发生时间、性质和影响。主要错误类型包括:

  • Development Errors(开发错误):这些错误通常发生在软件开发和测试阶段。它们可能是由于不正确的代码实现或不正确的模块配置引起的。开发错误应通过严格的测试、代码审查和静态代码分析工具来检测。

  • Runtime Errors(运行时错误):这类错误发生在系统运行时,可能由硬件故障、外部输入错误或内部逻辑问题引起。运行时错误需要实时检测和处理,以防止系统崩溃或关键功能失效。

  • Transient Faults(瞬时故障):这些是短暂的错误,可能是由于硬件或环境条件的临时变化(如电磁干扰)导致的。瞬时故障通常是短期的,但可能对系统的实时性能产生影响。

  • Production Errors(生产错误):这些错误发生在系统部署到生产环境后,通常是由于硬件老化或生产过程中引入的缺陷引起。生产错误需要通过生产监控和测试工具进行检测。

  • Security Events(安全事件):这些与系统的安全性相关的错误涉及到未授权访问、数据泄露或恶意攻击。安全事件需要特别关注,通常通过实时监控和安全措施来应对。

7.2.2 开发错误

7.2.2.1 概述

开发错误主要是指在软件开发过程中出现的软件缺陷。根据 SRS_BSW_00337 的详细规范,这些错误包括但不限于尝试使用未初始化的软件等。开发错误被报告给 BSW 模块 Det(默认错误追踪器),通过接口 Det_ReportError,这反映了此类错误的事件驱动特性。开发错误一旦发生,相应的错误监视器会立即发出信号。

7.2.2.2 文档

根据 SRS_BSW_00337 的分类,SWS 应在第 7 章中列出开发错误。开发错误值的类型为 uint8

7.2.2.3 配置

  • 开发错误的激活:通过 C 预处理器开关来激活或禁用模块的所有开发错误检测。开关 <Ma>DevErrorDetect 用于此目的。
  • API 参数检查:如果 <Ma>DevErrorDetect 开关被启用,则 API 参数检查也会被启用。检测到的错误的详细描述可以在相应模块 SWS 的第 7 章和第 8 章中找到。
  • 开发错误的检测:开发错误的检测和报告仅在设置了检测开发错误的配置参数时才进行。这允许对相应的 BSW 模块进行扩展的调试能力。例如,EEPROM 驱动程序提供了 API 参数的内部检查,该检查仅在首次软件集成测试(“开发构建”)时激活,之后(“部署构建”)禁用。
  • 默认配置值:开发错误的检测和报告应可配置,且默认配置值应为禁用此错误类型。

7.2.2.4 报告

如果配置了开发错误的检测(参见 SWS_BSW_00042),则任何检测到的错误都应报告给 Det。BSW 模块应使用 Det_ReportError 服务将检测到的开发错误报告给默认错误追踪器(Det),并附带模块标识符以进行标识。

示例

实现代码中包含编译器开关,这些开关实现错误检测的配置。例如,在网络管理器的实现中,如果 NM_DEV_ERROR_DETECT 被定义为 STD_ON,则会检测开发错误。

7.2.2.5 其他注意事项

  • 如果 BSW 模块未初始化,除了 <Mip>_GetVersionInfo<Mip>_Init 和调度函数外,调用任何函数都将引发开发错误 <Mip>_E_UNINIT
  • 开发错误的特点是它们的行为类似于断言,即它们的出现会中止或重置整个 ECU 的正常控制流,这是 SRS_BSW_00337 所要求的。与运行时错误不同,开发错误不能通过配置参数来关闭。

7.2.3 运行时错误

7.2.3.1 概述

运行时错误被指定为系统性故障,这些故障不一定影响系统的整体行为。例如,错误的构建后配置或错误分配的 PDU-ID(协议数据单元标识符)是导致运行时错误的常见原因。与开发错误类似,运行时错误也会报告给 BSW 模块 Det,特别是通过接口 Det_ReportRuntimeError 进行报告。就像开发错误一样,运行时错误也最终会发生,并导致相应的错误监视器立即发出信号。

然而,与开发错误不同的是,运行时错误不会导致断言,即执行的控制流将继续。相反,运行时错误的发生会触发相应错误处理器的执行。这个错误处理器可以由特定 ECU 的集成商在 Det 中作为 callout(回调)实现,并且可能只包括将相应的错误事件存储到内存中、调用 Dem 模块或执行简短且合理的操作。

Det 模块提供了一个可选的 callout 接口来处理运行时错误。如果配置了此接口,服务 Det_ReportRuntimeError 将调用此 callout 函数。不论具体实现如何,服务 Det_ReportRuntimeError 总是向其调用者返回 E_OK。专门用于检测运行时错误的监视器可能保留在部署构建(生产代码)中。

7.2.3.2 文档

SWS(系统工作说明书)应在其第 7 章中根据 SRS_BSW_00452 的分类列出运行时错误。[SWS_BSW_00219] 运行时错误类型 ⌈运行时错误值应为 uint8 类型。⌋

7.2.3.3 配置

运行时错误不能通过配置参数(如开发错误那样)来切换关闭。

如果 Det 通过 callout 函数实现了运行时错误的处理,则必须通过 DetReportRuntimeErrorCallout 配置 Det 的特定 callout 函数名称。[ECUC_Det_00010]

7.2.3.4 报告

任何检测到的运行时错误都应报告给 Det:[SWS_BSW_00222] 将检测到的运行时错误报告给 Det ⌈BSW 模块应使用服务 Det_ReportRuntimeErrors 将检测到的运行时错误报告给默认错误跟踪器(Det)。⌋ 注意,报告的运行时错误值必须为 uint8 类型,以符合 Det_ReportRuntimeError 的签名。有关 Det_ReportRuntimeError 服务的更多信息,请参阅 Det 的规范。

7.2.4 瞬时错误(Transient Faults)

7.2.4.1 概述

瞬时错误是由硬件功能障碍引起的。这些错误发生在热噪声或粒子辐射等外部因素影响了硬件功能,从而影响到与之相关的软件功能。瞬时错误的特点是它们可能会自愈,因为引发错误的原因可能会消失。例如,CAN 控制器可能会因控制寄存器中的位翻转(由粒子辐射引起)而离线,但这种位翻转可能是暂时的,一旦辐射源消失,CAN 控制器可能会恢复正常。

7.2.4.2 文档

系统、软件或子系统规范(SWS)应在其第 7 章中根据 SRS_BSW_00473 的分类列出瞬时错误。

7.2.4.3 配置

瞬时错误的检测不能被关闭,除非模块 SWS 描述了配置参数或其他条件,这些条件定义了某些瞬时错误的激活。如果 Det 模块通过 callout 函数实现瞬时错误的处理,则必须通过 DetReportTransientFaultCallout[ECUC_Det_00011] 配置 Det 的特定 callout 函数名。

7.2.4.4 报告

BSW 模块应将检测到的瞬时错误报告给默认的错误追踪器(Det),使用 Det_ReportTransientFaults 服务。需要注意的是,报告的运行时错误值必须是 uint8 类型,以符合 Det_ReportTransientFaults 的签名。监控瞬时错误的专门监控器必须保留在部署构建(生产代码)中。

瞬时错误不会导致软件的执行控制流被中断。监控器可以继续其监控工作,并且瞬时错误在一定时间后可能会自愈。

7.2.4.5 示例

在 CAN 驱动程序中,瞬时错误可能表现为暂时的通信中断。这可能是由于硬件的瞬时故障(例如,由于辐射引起的位翻转)导致 CAN 控制器短暂无法发送或接收消息。一旦错误发生,驱动程序将调用 Det_ReportTransientFault 来记录该错误,而系统继续运行等待 CAN 控制器恢复。CAN 驱动程序还可以定期检查控制器的状态并尝试恢复通信。

7.2.5 生产错误(Production Errors)

7.2.5.1 概述

生产错误是在系统部署到最终产品中后出现的。这些错误通常由硬件故障、环境条件(如温度、湿度等)或系统老化引起。生产错误可能与软件缺陷无关,但它们会影响系统的正常运行。生产错误通常通过系统中的诊断功能来检测,报告给 Diagnostic Event Manager(Dem)模块,并采取适当的故障处理措施。

7.2.5.2 文档

生产错误的记录方式应该遵循系统或子系统的规范(SWS),并在第 7 章中列出生产错误。

7.2.5.3 配置

生产错误检测通常与硬件诊断相关联,不能轻易通过软件配置来关闭。例如,如果某个传感器的工作温度超过其最大额定值,则该错误将自动触发并报告为生产错误。监控此类错误的机制通常是硬件和软件的联合实现。

7.2.5.4 报告

生产错误的报告机制通常涉及将错误信息发送到 Diagnostic Event Manager(Dem)模块。与开发和运行时错误不同,生产错误的报告和处理更侧重于系统运行的长时间监控和故障恢复。例如,当 ECU 进入降级模式时,BSW 模块应记录此生产错误并将其报告给 Dem 模块,以便在后续的诊断会话中进一步分析。

7.2.6 安全事件(Security Events)

7.2.6.1 概述

随着汽车电子系统的复杂性增加,安全事件成为了一个重要的考虑因素。安全事件指的是系统可能受到的安全威胁,如网络攻击、恶意软件注入或未经授权的访问。这类错误与软件或硬件的功能故障无关,但可能会对系统的机密性、完整性和可用性造成威胁。

7.2.6.2 文档

SWS 应根据 SRS_BSW_00560 分类列出安全事件。在文档中,应明确哪些模块负责监控和响应安全事件,哪些安全措施应被激活。

7.2.6.3 配置

安全事件的监控和检测功能通常由特定的安全模块(如 HSM,硬件安全模块)或软件安全功能实现。通过安全配置参数,可以定义系统在检测到安全事件时应采取的措施。例如,检测到异常的 CAN 消息流量可能触发 HSM 进入安全模式并禁用部分 ECU 功能。

7.2.6.4 报告

安全事件的报告通常涉及专门的安全监控系统(如 Intrusion Detection System, IDS)。一旦系统检测到安全事件,应立即将事件报告给系统管理员或相应的安全监控模块,以便采取进一步措施。由于安全事件的敏感性,系统通常会采取防御性编程策略,例如禁用未授权的网络接口、触发报警或进入隔离模式。

7.2.6.5 示例

例如,当检测到网络攻击时,BSW 模块可以调用 Sec_ReportEvent 来报告该安全事件,并采取预定义的应对策略,如限制网络访问、记录事件日志或通过蜂窝网络向外部安全服务器发送警报。

7.2.7 错误管理策略

为了确保系统能够正确处理各种错误,AUTOSAR 定义了不同类型的错误处理机制和策略。这些策略可分为两大类:

  1. 被动错误处理:系统检测到错误后,会记录该错误,但不会立即采取纠正措施。相反,系统等待错误自我修复或在下次诊断时再处理。这种策略适用于瞬时错误或影响较小的错误。

  2. 主动错误处理:当系统检测到错误时,会立即采取措施以减轻或纠正该错误的影响。例如,系统可以进入降级模式、重启特定模块或通知用户采取进一步行动。主动错误处理适用于生产错误和安全事件等严重的错误。

不同类型的错误可能需要不同的管理策略。例如,开发错误和瞬时错误通常可以通过被动策略处理,而运行时错误、生产错误和安全事件则需要主动处理策略。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com