TriCore Class4,Tin3 Trap调试笔记
问题描述在一个基于 TC397(TriCore)板子的代码功能合并中,观察到以下现象:单独运行 a 功能或 b 功能时,系统均表现正常,无异常发生。然而,当尝试将这两个功能合并运行时,系统出现异常,触发 Class4,Tin3 陷阱。尽管栈回溯还原的现场显示正常,但异常仍在访问一个正常的结构体变量后发生。让我们正在深入分析这一合并运行时的异常行为。
调试与步骤首先,根据手册描述,DAE 陷阱通常发生在内存系统报告的错误无法立即与当前执行的指令相关联时,这通常涉及外设或外部存储器返回的错误。触发 DAE 陷阱的情况包括数据存储操作导致的总线错误、高速缓存管理指令错误以及高速缓存行回写错误。
为了更精确地确定错误源,我们需要参考 AURIX TC3xx 的用户手册,其中提到了 DATR 寄存器。这个寄存器作为 DAE 陷阱的状态标志寄存器,为我们提供了关于 DAE 陷阱原因的信息。因此,在分析 a 和 b 功能合并运行时触发的 Class4,Tin3 陷阱时,我们需要重点检查 DATR 寄存器的状态,以进一步确定导致异常的具体原因。通过解读 DATR 寄存器的值,我们可以更好地理解这一异 ...
AUTOSAR CP 编译器抽象层
本文章所参考的 AUTOSAR 标准为 4.4.0 版本
简介
AUTOSAR CP Wdg协议栈详解
本文章所参考的 AUTOSAR 标准为 4.4.0 版本
Watchdog 基本功能Watchdog,即看门狗,其主要功能是在设备无人值守时,自动复位系统,确保系统持续稳定运行。这一功能对于关键安全系统至关重要,同时对于非关键安全系统也具有重要意义。
在实际应用中,由于硬件老化、外部电磁干扰等因素,软件在运行过程中可能出现不可预测的行为。若无看门狗机制,这些问题可能导致设备故障,特别是在恶劣环境如沙漠地带,将显著增加不必要的维护成本。
对于汽车而言,ECU 中的软件同样可能受到电磁干扰、高温等环境因素的影响,从而引发程序异常。然而,正是看门狗机制的存在,在关键时刻能够触发系统复位,及时将设备恢复到正常工作状态,有效防止潜在风险。
看门狗的实现方式主要有硬件看门狗和软件看门狗两种。硬件看门狗依赖硬件机制,通过定时器原理实现,软件仅负责启动定时器;而软件看门狗则完全由软件控制定时器的启动和更新。
硬件看门狗如上所述,硬件看门狗主要依赖自身的定时器来实现其功能,因此被俗称为“硬狗”。常见的硬件看门狗形式包括 MCU 内部自带的看门狗、PMIC 中内嵌的看门狗,以及外部的独立看门狗等。
在 ...
AUTOSAR CP Watchdog Driver模块详解
本文章所参考的 AUTOSAR 标准为 4.4.0 版本
简介该模块具备初始化硬件看门狗、调整操作模式以及设定触发喂狗机制等功能。看门狗可根据其位置分为内部与外部两种类型,其中,内置于芯片内的称为内部看门狗,而外置的则称为外部看门狗。
无论是内部还是外部看门狗,Watchdog Driver 所使用的 API 都应保持统一。内部看门狗驱动属于 MCAL 层,而外部看门狗则属于 ECU 硬件抽象层。对于外部看门狗,其驱动需依赖 MCAL 中的其他驱动,如 GPIO、IIC 或 SPI 等,以执行喂狗操作。
内部看门狗内部看门狗作为芯片内置的硬件监控机制,其驱动通常由芯片厂商提供。在使用前,务必确认其复位动作类型,避免冷复位或复位不完全等情形,以确保其能有效实现安全监控。然而,由于内部看门狗与芯片硬件紧密相关,若芯片本身存在硬件故障,可能会导致内部看门狗失效,从而陷入自保困境。因此,在关键安全系统中,单纯依赖内部看门狗可能不足以确保功能安全,此时需结合外部看门狗来共同保障系统的稳定运行。
外部看门狗外部看门狗独立于受保护的芯片,可以是专门的硬件看门狗设备,通常达到 QM 等级。另一种类 ...
AUTOSAR CP Watchdog Interface模块详解
本文章所参考的 AUTOSAR 标准为 4.4.0 版本
简介Watchdog Interface(简称 Watchdog If)模块作为底层 Watchdog Driver 的抽象层,旨在实现底层硬件与上层软件之间的解耦。它的核心功能是提供一个统一的接口,使得上层 Watchdog Manager 能够与底层看门狗驱动进行交互,而无需关心底层驱动的具体实现细节。
Watchdog If 模块并不负责底层看门狗驱动的特性设置,如窗口控制、时间周期等。这些特性的配置和管理仍然由底层的 Watchdog Driver 负责。Watchdog If 仅作为中介,确保上层 Manager 与底层 Driver 之间的通信顺畅。
当多个看门狗驱动被上层 Watchdog Manager 管理时,Watchdog If 模块通过 DeviceIndex 来区分和识别不同的驱动。如果在交互过程中出现错误,Watchdog If 模块将负责及时上报,确保系统能够作出相应的响应和处理。
总之,Watchdog If 模块在 AUTOSAR 架构的 Watchdog 协议栈中扮演着关键角色,它确保了底 ...