Skip to content

TechBlog把工程问题讲清楚

从 RK3588 到 PX4,记录踩坑现场、根因证据、修复动作与实机验证

RECENT WRITING · 2026

近期技术文章

21 篇近期文章,沿问题复盘、架构选择、板端验证与工程交付四条主线展开。

阅读完整回顾
01 / FAILURE REVIEW

RK3588 NPU 输入踩坑复盘

为什么 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

踩坑复盘优先阅读

不只给最终配置,更保留症状、错误判断、证据链、根因、修复和验收边界。

查看问题索引
01 / WRONG METRIC

CmaFree=0 不等于内存耗尽

危险数字背后的真正问题是 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

一条贯穿近期文章的问题解决闭环

先保留现场,再把猜测变成可证伪的假设,沿源码、日志和板端指标收敛根因,最后用失败路径和真实数据完成回归。

  1. 01
    现场记录症状、负载、版本与时间线
  2. 02
    假设区分直觉判断和可证伪结论
  3. 03
    证据回到源码、日志、topic 与硬件指标
  4. 04
    闭环验证修复、失败路径和长期稳定性