# 调试常见系统问题

Source: [https://docs.qualcomm.com/doc/80-70014-12Y/topic/general_system_debugging.html](https://docs.qualcomm.com/doc/80-70014-12Y/topic/general_system_debugging.html)

看门狗超时、总线 hang、超时错误和硬件复位是一些常见的系统问题。此信息介绍了如何识别和调试此类系统问题。

## 看门狗问题

Source: [https://docs.qualcomm.com/doc/80-70014-12Y/topic/general_system_debugging.html](https://docs.qualcomm.com/doc/80-70014-12Y/topic/general_system_debugging.html)

看门狗 (WD) 是固定长度的计数器，用于从硬件或软件严重故障恢复系统。除非系统定期投喂看门狗定时器，否则看门狗定时器会发生灾难，对应的看门狗来复位子系统或整个系统。

看门狗有多种实现，如硬件看门狗和软件看门狗、Bark 和 Bite 等。下表总结了各种类型的看门狗： 

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

系统同时使用软件和硬件看门狗。例如，mDSP 同时实现软件和硬件看门狗。硬件看门狗模块是用于确保处理器处于活动状态的组件，包含一个可从预定义时间倒计时的定时器。如果定时器未被相应的 CPU 内核复位，则定时器最终计数到 0（零）并触发看门狗超时。

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

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

- HLOS 上每 10 秒会触发一个定时器事件以投喂非安全硬件看门狗。如果 HLOS 持续 11 秒未投喂非安全看门狗，则非安全看门狗 Bark 会触发，HLOS 必须对此进行处理。如果 HLOS 不能处理，则 HLOS 陷入 panic。
- 如果 HLOS 无法处理非安全看门狗，则会触发非安全看门狗 Bark 并发送通知到 TrustZone。随后，TrustZone 会陷入致命错误。
- 您可以使用内核配置定制看门狗的投喂和 Bark 时间。例如，以下配置会将 Bark 时间设置为 13 秒，投喂时间设置为 11 秒。

        CONFIG_QCOM_WATCHDOG_BARK_TIME=13000Copy to clipboard

        CONFIG_QCOM_WATCHDOG_PET_TIME=11000Copy to clipboard

**安全硬件看门狗**

- TrustZone 每 6 秒会触发一次安全看门狗 Bark，作为快速中断请求 (FIQ)。TrustZone 中的 FIQ 处理程序会投喂安全硬件看门狗。这不属于错误或致命问题。
- 如果 TrustZone 持续 22 秒无法处理安全看门狗 Bark，则安全看门狗 Bite 到期。随后，PS\_HOLD 引脚在 PMIC 上置为有效，最终复位整个系统。

此功能的完整版本目前适用于对随 Qualcomm Linux 一同发布的专有软件具有完全访问权限的用户。有关调试看门狗问题的更多信息，参见 [Qualcomm Linux Debug Guide - Addendum](https://docs.qualcomm.com/bundle/resource/topics/80-70014-12A/general_system_debugging.html#watchdog_timeout)。

## 总线 hang 和超时错误

Source: [https://docs.qualcomm.com/doc/80-70014-12Y/topic/general_system_debugging.html](https://docs.qualcomm.com/doc/80-70014-12Y/topic/general_system_debugging.html)

SNoC、CNoC、xPU、TBU 和 AHB 是设备内的系统基础架构组件，负责总线事务、地址转换和内存保护等操作。这些组件上的一些故障或超时会导致系统错误，相关故障或超时会上报给 TrustZone。

此功能目前适用于对随 Qualcomm Linux 一同发布的专有软件具有完全访问权限的用户。有关调试总线 hang 和超时错误的更多信息，参见 [Qualcomm Linux Debug Guide - Addendum](https://docs.qualcomm.com/bundle/resource/topics/80-70014-12A/general_system_debugging.html#erroneous_transaction_on_bus_error_and_timeout)。

## 硬件复位

Source: [https://docs.qualcomm.com/doc/80-70014-12Y/topic/general_system_debugging.html](https://docs.qualcomm.com/doc/80-70014-12Y/topic/general_system_debugging.html)

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

此功能目前适用于对随 Qualcomm Linux 一同发布的专有软件具有完全访问权限的用户。有关调试硬件复位问题的更多信息，参见 [Qualcomm Linux Debug Guide - Addendum](https://docs.qualcomm.com/bundle/resource/topics/80-70014-12A/general_system_debugging.html#reset_hardware)。

Last Published: Aug 22, 2024

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