# 调试常见系统问题

一些常见的系统问题是看门狗超时、总线挂起、超时错误和硬件重置。以下部分提供了有关如何识别和调试此类系统问题的信息。

## 调试看门狗超时问题

看门狗 (WD) 是固定长度的计数器，用于从硬件或软件严重故障恢复系统。除非系统定期投喂看门狗定时器，否则系统会判定发生严重故障，并根据触发的看门狗重置子系统或整个系统。

以下是不同类型的看门狗实现方式：

> 
> 
> - 硬件看门狗
> - 软件看门狗
> - Bark
> - Bite

下表总结了不同类型的看门狗实现。

表：看门狗实现

| 看门狗类型 | 超时持续时间（以秒为单位） | 所有者 | 超时后 | 结果 |
| --- | --- | --- | --- | --- |
| 非安全看门狗 Bark | 11 | HLOS | IRQ 至 Qualcomm TEE | HLOS 归为 panic |
| 非安全看门狗 Bite | 12 | HLOS | 快速中断请求 (FIQ) 至 Qualcomm TEE | Qualcomm TEE 断言 PS\_HOLD |
| 安全看门狗 Bark | 6 | Qualcomm TEE | FIQ 至 Qualcomm TEE | Qualcomm TEE 只投喂安全看门狗 |
| 安全看门狗 Bite | 22 | Qualcomm TEE | 将 PS\_HOLD 置为有效 | PMIC 复位系统 |

系统同时使用硬件和软件看门狗。例如，modem DSP (mDSP) 实现软件和硬件看门狗。硬件看门狗模块可确保处理器处于活动状态，包含一个从预设值开始倒计时的定时器。如果相应的 CPU 核心未重置该定时器，定时器最终会计数到 0（零）并触发看门狗超时。

### 应用处理器 CPU 的看门狗

**非安全硬件看门狗**

- HLOS 每 10 秒触发一次定时器事件来投喂非安全硬件看门狗。如果 HLOS 持续 11 秒未投喂非安全看门狗，则非安全看门狗 bark 会触发，HLOS 必须对此进行处理。如果 HLOS 无法处理它，HLOS 会陷入 panic。
- 如果 HLOS 无法处理非安全看门狗 bark，则会触发非安全看门狗 bite，并将其发送给 Qualcomm TEE，从而导致 Qualcomm TEE 陷入致命错误。
- 您可以使用内核配置选项自定义看门狗的投喂和 bark 时间。例如，以下配置会将 bark 时间设置为 13 秒，pet 时间设置为 11 秒。

CONFIG_QCOM_WATCHDOG_BARK_TIME=13000
        Copy to clipboard

CONFIG_QCOM_WATCHDOG_PET_TIME=11000
        Copy to clipboard

**安全硬件看门狗**

- Qualcomm TEE 每 6 秒以快速中断请求 (FIQ) 的形式触发一次安全看门狗 bark。Qualcomm TEE 中的 FIQ 处理程序会投喂安全硬件看门狗。此问题不是错误或致命问题。
- 如果 Qualcomm TEE 无法在 22 秒内处理安全看门狗 bark，则安全看门狗 bite 将超时。随后，PMIC 会断言 PS\_HOLD 引脚，并最终复位整个系统。

此功能的完整功能可供具有授权访问权限的许可开发人员使用。有关调试看门狗问题的更多信息，请参阅 [Qualcomm Linux Debug Guide - Addendum](https://docs.qualcomm.com/bundle/resource/topics/80-70020-12A/general_system_debugging.html#watchdog_timeout)。

## 总线 hang 和超时问题

SNoC、CNoC、xPU、TBU、AHB 是设备上的系统基础架构组件，负责如下操作：

- 总线事务
- 地址翻译
- 内存保护

这些组件上的某些故障或超时可能会导致系统错误，系统会将这些错误报告给 Qualcomm TEE。

此功能可供具有授权访问权限的许可开发者使用。有关调试总线挂起和超时错误的更多信息，请参阅 [Qualcomm Linux Debug Guide - Addendum](https://docs.qualcomm.com/bundle/resource/topics/80-70020-12A/general_system_debugging.html#erroneous_transaction_on_bus_error_and_timeout)。

## 确定硬件复位的原因

安全看门狗、温度传感器 (TSENS) 或 PMIC 问题可能导致硬件复位。硬件复位问题的调试方法取决于硬件复位的原因。因此，确定硬件重置的原因至关重要。

此功能可供具有授权访问权限的许可开发者使用。有关调试硬件重置问题的更多信息，请参阅 [Qualcomm Linux Debug Guide - Addendum](https://docs.qualcomm.com/bundle/resource/topics/80-70020-12A/general_system_debugging.html#reset_hardware)。

Last Published: Jul 24, 2025

[Previous Topic
调试 Linux 内核空间问题](https://docs.qualcomm.com/bundle/publicresource/80-70020-12SC/topics/debugging_linux_kernel.md) [Next Topic
调试 non-HLOS](https://docs.qualcomm.com/bundle/publicresource/80-70020-12SC/topics/debug-non-hlos-subsystems.md)