Felix’s Micro Space
English
友情链接
往期整理
历史归档
文章分类
文章标签
felixfixit | 创新嵌入式电子科技
0
09|常见坑、异常路径与调试验证:别把 DMA 写成玄学
Words
2690
Read Time≈
7
min
2026-4-21
你好!我是
felixfixit
🎉 STP_RTOS教程已上线🎉
-- 感谢您的支持 ---
👏欢迎更新体验👏
操作手册
更新记录
联系我们
了解更多
Catalog
这一章解决什么问题
先打掉一个幻想:happy path 从来不够
高频症状 → 高频根因
四类问题怎么区分
1. 可见性问题
2. 顺序问题
3. ownership 问题
4. 生命周期 / 回收问题
DMA 溢出:最蠢、也最致命的事故之一
最小防线
另外三类特别高频、但常被低估的工程故障
1. dma_mapping_error() 不是形式校验
2. dma_alloc_coherent() 失败时别只会重试
3. 32 位设备 + 高地址内存,是典型能力错配
timeout:不是等久一点,而是宣布系统进入异常分支
timeout 到来时必须回答三件事
一个最小 timeout 策略
reset:DMA 驱动的地狱入口
一个比较靠谱的 reset 思路
close / release:别假装用户态总会善终
remove:检验你是不是只会写 happy path
中断完成路径里一个常被漏掉的点:posted write / 刷状态
先把调试能力打开,再谈优雅排障
推荐打开的配置
这些配置能帮你看到什么
运行时观测入口
一组最值得打印的日志
1. 状态迁移日志
2. 关键时序日志
3. 异常路径日志
4. 映射与地址日志
trace 和 debug 该怎么上
优先追踪这些点
优先关联这些字段
压测和故障注入建议
压测不要只测 happy path
故障注入要观察什么
一个实战排障顺序
本章结论
排障时该回看哪些章节
下一章要干什么
交流频道
去知识星球参与更多讨论
点击加入知识星球
Latest posts
多核异构核间通信:RPMsg 控制面与共享内存数据面设计
2026-10-26
Linux 驱动专题 - PCI/PCIe 驱动
2026-10-23
Linux 驱动专题 - IIC 驱动
2026-10-22
Linux 驱动专题 - 网络设备驱动
2026-10-19
Linux 驱动专题 - V4L2 驱动
2026-10-8
开发框架11-在线 IAP 升级应用
2026-9-22
实用教程
25
设备驱动
18
Linux
17
motor
10
protocol
10
推荐
9
ROS
9
ArduPilot
9
必看精选
8
OOP
7
C++
6
ArduSub
5
CPP
5
GPIO
4
UART
4
Open-Source-Lib
4
python
4
Docker
4
APM
4
BootLoader
4
嵌入式Linux开发
4
Driver
4
DMA
3
CLion
3
FOC
3
IIC
3
中断
3
ESP32
3
面试
3
嵌入式硬件
3
固件升级
3
Buildroot
3
MAVLink
2
PosControl
2
ARMv7
2
设备树
2
DevOps
2
IDE
2
GNU C
2
compiler
2
signal
2
process
2
vscode
2
rootfs
2
uboot
2
can
2
pinctrl
2
WSL
2
ESP-IDF
2
micro-ROS
2
EKF
2
开发框架
2
设计模式
2
电机控制技术
2
控制器
2
TCP
2
网络协议
2
u-boot
2
Memory Management
2
可靠性
2
文章数:
122
建站天数:
1259 天
访问量:
访客数: