蓝牙面试题解析:在蓝牙数据传输中,如何利用 DMA 实现流控?
难度:⭐⭐⭐⭐ 较难 |场景:社招二面/三面、蓝牙驱动优化 |高频:🔥🔥🔥🔥
标准答案
DMA 与流控结合通过硬件流控(CTS/RTS)+ 软件缓冲状态 + DMA 暂停/恢复实现蓝牙数据流的平滑传输:
① DMA 在蓝牙数据流中的作用
// 蓝牙数据流典型路径(以 UART-HCI 为例)// 手机 ↔ 蓝牙 ↔ HCI(UART) ↔ DMA ↔ 协议栈缓冲区 ↔ 应用// ↑// DMA 在此处搬移数据// 减少 CPU 中断频率(每字节中断 → 每块中断)// 没有 DMA:每收到 1 字节都触发 UART 中断 → CPU 频繁进出 I