> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 硬件与软件接口

了解 MCU 如何与平台硬件以及用于控制它的软件栈交互。理解 QUP、GPIO、中断、QTIMER 和调试路径等关键接口的作用，以及它们如何映射到驱动、运行时服务和应用逻辑。

**6.1 硬件接口**

您可以按照下表所列的预期编程模型，对齐接口配置、驱动使用和事件处理。

**表 6-1 硬件接口角色**

| 接口 | 集成中的角色 | 典型软件接触点 |
| - | - | - |
| QUP 串行引擎 | ▪ UART 的控制器平面<br /> ▪ I2C <br />▪ I3C 事务 | ▪ 模式选择 <br />▪ 帧格式 <br />▪ 时序 <br />▪ 传输设置 <br />▪ 中断驱动 <br />▪ 基于 DMA 的操作。 |
| 通用外设接口（GPI） | 在选定 QUP 传输之下基于描述符或环的数据搬移 | ▪ 环设置 ▪ 所有权 ▪ 完成与错误中断 ▪ 中止与复位处理 |
| GPIO 与外部信号线 | ▪ 中断 <br />▪ 唤醒 <br />▪ 复位 <br />▪ 片选 <br />▪ 使能 <br />▪ 边带交互 | ▪ GPIO 设置 <br />▪ 中断路由 <br />▪ 唤醒源选择 <br />▪ 外设复位 <br />▪ 开发板移植。 |
| 中断输入 | 路由到 MCU ISR 处理的外部事件。 | ▪ IRQ 注册 <br />▪ 唤醒分类 <br />▪ ISR 到线程的移交 |
| QTIMER 与唤醒源 | 活动和低功耗运行的时间基准与唤醒调度 | ▪ 单次和周期性定时唤醒调度 <br />▪ 延迟测量 |
| 调试接口 | 移植和故障分析期间的可见性 | ▪ 内存检查 <br />▪ 跟踪捕获 <br />▪ 寄存器转储 <br />▪ 异常 <br />▪ 故障排查 |

**6.2 软件栈与编程模型**

**表 6-2 软件层角色**

| 层 | 角色 |
| - | - |
| 启动与平台初始化 | ▪ 复位入口 ▪ 异常向量 ▪ 缓存 ▪ 内存设置，以及早期开发板或平台初始化。 |
| Zephyr 运行时 | ▪ 线程 ▪ ISR ▪ 工作队列 ▪ 定时器 ▪ 信号量 ▪ 互斥锁、k\_poll ▪ 确定性时序服务 |
| 平台驱动 | ▪ 中断控制器 ▪ 定时器服务 ▪ 主机接口 ▪ 电源钩子 ▪ 看门狗 ▪ 错误处理 |
| 总线与外设驱动 | ▪ UART ▪ I2C ▪ I3C 路径，使用原生子系统 API 及其之下的平台绑定。 |
| 传输层 | ▪ QUP 编程，可选 GPI 或基于环的数据搬移。 |
| 应用层 | ▪ 传感器与事件处理 ▪ 策略处理、任务模式逻辑和主机升级上报。 |
| 诊断 | ▪ 日志 ▪ 故障捕获 ▪ 转储收集 ▪ 跟踪钩子 |

■ 对于中断上下文难以承担的工作，请使用线程和工作队列。

■ 保持 ISR 简短。确认事件、捕获最少状态，其余工作移交出去。

■ 仅在传输或工作项的活动期间保持电源、时钟和路径依赖有效。

■ 在交付的 Zephyr 环境中，UART、I2C 和 I3C 优先使用原生子系统 API。

■ 将 QUP 视为协议控制器，将 GPI 视为其之下可选的数据搬移层。
