问题复盘
从现场症状、错误判断和证据链出发,保留根因、修复动作与验证边界
查看踩坑记录
RECENT WRITING · 2026
21 篇近期文章,沿问题复盘、架构选择、板端验证与工程交付四条主线展开。
为什么 FP16 容易理解错、DMA-BUF 后 CPU 仍高,以及 atlas/layout 合同是怎样修正的。
<a class="article-card" href="/uav/vins-direct-grayscale-dmabuf">
<span class="article-index">02 / VIO</span>
<h3>VINS 直连灰度 DMA-BUF</h3>
<p>直接消费 NV12 Y 平面,移除 ROS 图像复制,并补齐跨进程 buffer 所有权。</p>
<span class="article-meta">10 min · VINS / DMA-BUF</span>
</a>
<a class="article-card" href="/uav/timesync-qa-engineering">
<span class="article-index">03 / TIMESYNC</span>
<h3>从 has_sync 到端到端 QA</h3>
<p>把链路、时钟、trigger、time domain 与运动一致性拆成可上线的验证门禁。</p>
<span class="article-meta">9 min · PX4 / ROS</span>
</a>
FAILURE NOTES · ROOT CAUSE
不只给最终配置,更保留症状、错误判断、证据链、根因、修复和验收边界。
危险数字背后的真正问题是 kernel 统计语义;用 owner、分配失败和重启行为重新建立结论。
<a class="article-card" href="/linux/service-active-not-ready">
<span class="article-index">02 / FALSE HEALTH</span>
<h3>Service Active 但数据链仍然是死的</h3>
<p>进程存活不等于 ready;从配置组合、socket、首帧和业务频率追到无限重连的根因。</p>
<span class="article-meta">systemd · Liveness / Readiness</span>
</a>
<a class="article-card" href="/linux/ci-trigger-fingerprint-contract">
<span class="article-index">03 / CONTRACT DRIFT</span>
<h3>CI 被触发,为什么同步任务直接跳过</h3>
<p>rules:changes 和 source fingerprint 各自正确,组合后却因 artifact contract 漂移产生空跑与漏同步。</p>
<span class="article-meta">GitLab CI · Trigger / Fingerprint</span>
</a>
21 ARTICLES · 4 TRACKS
THE DEBUGGING LOOP
先保留现场,再把猜测变成可证伪的假设,沿源码、日志和板端指标收敛根因,最后用失败路径和真实数据完成回归。