自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 VI/VPSS 视频输入与预处理子系统

前文梳理了 Sensor 曝光、MIPI CSI-2 传输、ISP RAW→YUV 处理链路。本文聚焦 RAW 数据进入 SoC 后的第一站——VI(Video Input)与 VPSS(Video Processing SubSystem),解释这两级硬件如何完成视频帧的捕获、拆分、缩放与格式转换。

2026-07-27 12:42:06 211

原创 IPC SoC 视频编码标准演进:H.264 → H.265 → H.266 的技术跃迁与落地现状

视频编码标准从 H.264 到 H.266 的演进,本质是算力换带宽的持续深化。每一代新标准都在压缩效率上实现了质的飞跃,但也带来了芯片复杂度、功耗和专利许可成本的系统性提升。带宽成本(客户每月存储/传输开销)芯片成本(die面积、制程节点、研发投入)生态风险(专利许可、工具链、兼容性)当前行业正处于 H.265 全面普及、H.266 逐步渗透的过渡期。预计到 2028-2029 年,随着 H.266 编码器IP的成熟和 SoC 制程节点的推进,新一代标准将在高端 IPC 产品中加速落地。

2026-07-26 10:02:04 294

原创 DMA 缓存一致性问题:从花屏到数据错乱的定位与修复

永远假设驱动中缺了 consistency operation,直到被证明不是用方向区分操作类型:DMA_FROM_DEVICE 用 invalidate(丢弃旧数据),DMA_TO_DEVICE 用 clean(写回最新数据)硬件一致性不是万能药——只有连在 ACE/CHI 总线上的 master 才参与 snoop,很多 SoC 的 DMA 走的是 AXI 非一致性路径DMA to Cache 数据流。

2026-07-25 08:26:43 234

原创 安防 IPC SoC 选型图谱:从 1080p 到 4K 多目,芯片怎么选?

IPC SoC 选型没有"最好"的芯片,只有"最适合"的组合。需求场景推荐方向核心理由白牌快出、极致成本君正 T23/T33 → 国科微 GK7206V1渠道成熟、SiP 省 BOM低功耗 AOV、家用 IPC富瀚 FH8626V300内置 DDR + 毫瓦级待机中端黑光全彩、快速量产国科微 GK7206V1 / 海思 CV610黑光/AI-ISP 加 SiP or ISP 标杆AI 差异化、模型自研瑞芯微 RV1126B / 爱芯 AX630C3T+ NPU 生态成熟。

2026-07-24 23:47:01 380

原创 ISP Pipeline RAW→YUV:从Sensor RAW到用户可见画面的每一级处理

Sensor 输出的 RAW 数据,距离人眼能看懂的图像,中间隔着十几级 ISP 硬件处理单元。这篇不讲"ISP 是什么"这种入门概念,直接从 Pipeline 的每一级往下挖——数据流怎么走、每一级做了什么事。

2026-07-23 21:36:38 327

原创 2026存储风暴:安防芯片市场的“成本大逃杀”与隐形赢家

瑞芯微RV1106等SiP方案,因为内置DDR,天然具备**“成本锁定”**属性。优势:封装成本在流片时已锁定,不随现货市场波动。客户只需采购一颗料,规避了外挂DDR“买不到、买不起”的双重风险。局限:SiP方案虽然锁定了成本,但受限于封装形式,其定价策略往往跟随市场均价波动。若瑞芯微选择随行就市调整价格,虽然保证了供货,但在价格上可能缺乏“惊喜”。芯片行业的残酷之处在于,今天的决策要两三年后验证。瑞芯微在几年前决定布局SiP时,是为了省BOM;国科微深耕存储供应链时,是为了业务协同。

2026-07-23 14:00:46 532

原创 海思回归第二弹:瑞芯微的隐忧与对手的反击

上篇《海思回归后的安防芯片江湖》发出来后,收到很多吐槽。研究下当前市场,这篇尽可能公正一点。另外看看爱芯、君正、清微这些玩家到底能不能打?这篇就接着聊——不止瑞芯微,把爱芯元智、君正、全志、中星微、清微智能都拉进来,看看2026年中的安防芯片格局究竟长什么样。

2026-07-23 12:39:18 1254

原创 MIPI CSI-2:从 Sensor 到 SoC 的像素高速公路

类型现象根因物理层图花/撕裂/无图D-PHY 时序/阻抗/走线协议层丢帧/帧率不对VC/DataType/HTS 不匹配时序层间歇性花屏VBLANK/HBLANK/Clock 裕量不足下一个话题预告:ISP Pipeline——Sensor 的 RAW data 进了 SoC 之后,到底经历了什么?

2026-07-22 20:03:23 331

原创 Linux I2C 调试三板斧:从 regmap 到逻辑分析仪

故障最快诊断手段最可能根因设备扫不到量供电 + 看波形上拉电阻/虚焊间歇 NACK降速 + 抓波形总线电容过大/从设备忙数据全 0xFF量 SDA 电平总线锁死/从设备未初始化数据随机错开 CRC 检查信号完整性/走线过长做嵌入式这么多年,I2C 的坑永远不是协议本身,而是物理层和时序。

2026-07-22 13:19:00 441

原创 海思回归后的安防芯片江湖:谁在吃肉,谁在喝汤

芯片性能过剩的时代,能稳定供货的才是好芯片。

2026-07-22 13:05:05 615

原创 Sensor 曝光与增益:AE 收敛速度才是硬功夫

几帧收敛?怎么在速度和稳定性之间取舍什么场景切什么权重?人脸检测要不要触发 AE?频闪误检怎么处理?LED 车灯干扰能不能扛住?HDR 鬼影出现在运动对齐的哪个环节?饱和区为什么没纹理?低照度下帧率降到多少?运动检测要不要干预 AE?AE-AWB 互相打架怎么锁?这些才是干活需要的东西,不是寄存器配置表。有帮助的话,请关注公众号,下一篇准备写MIPI CSI 与 RAW 数据。

2026-07-21 21:26:38 452

原创 Kimi K3把GPU干崩了,边缘计算的机会终于来了

Kimi K3暂停新用户订阅这件事,表面上是算力不足,实际上是整个行业在用脚投票:我们不能再把所有鸡蛋放在云端大模型这一个篮子里了。边缘计算从来不是一个"未来趋势",它一直是当前最务实的解决方案。只是过去两年大模型的叙事太耀眼,大家把端侧推理这个更基础、更落地的方向忽略了。现在好了,K3用一次全网宕机提醒了所有人:算力是有物理上限的,但需求没有。与其争那几张越来越贵的GPU,不如回头看看手里那颗NPU——它可能才是真正能把AI做到每个人手里的东西。

2026-07-21 11:30:11 406

原创 Linus强推Rust进内核,维护者说这是“癌症“

Rust进内核是好事,但不是好事就可以不讲方法。Linus的"强行推进"可能会造成比Rust带来的好处更大的伤害——社区分裂。如果你是内核开发者,去学Rust。不是为了跟上潮流,是为了能看懂别人提交的代码如果你是维护者,不要抵制Rust。抵制改变的最后都被改变了这场争论还会持续很久。代码不会骗人,Rust的安全性优势是实实在在的。反对者与其说"这是癌症",不如说"我需要时间和支持来学习"。

2026-07-20 14:19:57 313

原创 嵌入式Linux文件系统选型实战:squashfs、UBIFS、ext4到底怎么选?

嵌入式Linux文件系统选型没有完美的方案。最快的决策方法就是按上面那张决策树走。但如果你让我给一个最保险的默认方案eMMC存储:squashfs(根) + ext4(overlay+数据)NAND Flash:UBIFS(统一分区,需要可写) 或者 UBIFS(只读根) + UBIFS(数据)一定要做overlayfs— 只读根防止文件系统损坏,需要写的地方用overlay层这套方案我用在量产项目上没有出过因为文件系统导致的严重故障。文件系统的可靠性不是选出来的,是设计出来的。

2026-07-20 11:28:01 432

原创 嵌入式工程师的35岁危机?真相跟互联网完全不一样

最近知乎上又有人在刷"嵌入式开发35岁以后怎么办"。我翻了几条高赞回答,发现全在贩卖焦虑,没一个说到点子上。我做嵌入式也已经很多年。我的同学、前同事、行业里的朋友,35岁到50岁的嵌入工程师,非常多。今天想聊聊嵌入式35岁危机到底长什么样。

2026-07-19 14:10:24 292

原创 嵌入式Linux崩溃分析实战:没有JTAG,怎么“空手“定位死机问题?

没有JTAG不代表不能调试。嵌入式Linux内核提供了足够多的调试工具,关键是你知不知道用。所有量产产品必开ramoops + pstore,这是一个配置项的事儿,成本为零,收益巨大。kdump在内存充足(256MB以上)的设备上也推荐开启。ftrace则是按需启用,系统出问题了再打开复现。别再跟我说"量产设备没法调试"——不是没法调试,是你没配。这三个工具配置一次,能用一辈子。P.S.如果你还在用"出问题就重新烧个带printk的固件等复现"的方式,看完这篇,花半天时间把ramoops加上。

2026-07-19 10:14:17 174

原创 Grok Build偷了你的代码仓库——AI编程助手的隐私危机,嵌入式工程师首当其冲

Grok Build这次的"全员上传"事故,不会是最后一次。AI编程工具正在经历一个"野蛮生长"的阶段。每家都在抢用户,都在拼功能,都在收集数据来训练更好的模型。在这个阶段,用户隐私是排在最后面的优先级。作为嵌入式工程师,你不只是程序员——你还是硬件IP的守护者、固件安全的守门人、物理世界设备的监护人。你手里的代码,不仅仅是字符串,它是别人可以拿来攻击真实世界的武器。保护好它。不是所有工具都值得信任。AI替你写代码,但不会替你坐牢。

2026-07-18 20:28:50 182

原创 嵌入式Linux启动优化实战:从10秒到2秒的6个技巧

做嵌入式Linux产品的人,迟早会被客户问一个问题:“为什么你们的设备开机要10秒?隔壁老王家用RTOS的3秒就亮了。每次听到这个问题我都想叹气。Linux是个通用操作系统,它启动要干的事情比RTOS多太多了——初始化MMU、枚举PCIe设备、解析设备树、挂载根文件系统、启动systemd、加载各种服务……每个环节都在消耗时间。但叹气归叹气,客户的要求你得满足。

2026-07-18 10:38:54 252

原创 Linus说内核不反AI工具——但做嵌入式18年的我告诉你,AI写的驱动你敢用吗?

我看了最近内核邮件列表上的争论,两边都有点极端。反AI的人说"AI生成的代码都是垃圾"——这不对。AI写的代码在很多场景下够用,甚至有时比新手写的更好。如果你一味排斥,就是在浪费工具。挺AI的人说"AI写的代码跟人类写的没区别"——这也不对。AI写代码的方式跟人类有本质区别:它没有意图,不理解上下文,不关心长期维护。它只是在做"最可能的下一行"的预测。这对于系统编程来说,是非常危险的。工具不决定代码质量,写代码的人对代码的理解深度才决定质量。AI是个写代码的好工具,但它不会对你的代码负责。

2026-07-18 10:28:14 176

原创 嵌入式Linux驱动调试:printk的9个高阶用法,最后一个是救命级

最最最危险的情况:系统已经死了,但你想知道死在哪。正常情况下,printk要用到自旋锁()来保护串口输出。但如果系统是在持有这个锁的时候死锁的,你的printk永远也打不出来。这时候你需要// 配置NMI watchdog// 或者在内核cmdline加上当系统死锁超过10秒,NMI watchdog会触发panic,然后打印一个"神奇"的backtrace——即使console_lock被死锁持有,NMI中断也能绕过它直接写串口。

2026-07-17 22:05:27 280

原创 说嵌入式不能用C++的,你们写过超过10万行的嵌入式项目吗?

别为了用C++而用C++,但也别因为"别人说不行"就不用。我职业生涯最大的两次技术债务,都是"因为团队觉得C++太复杂,所以坚持用C"造成的——第一次是一个LED控制器的固件,用C写到最后25000行,一个static函数调另外13个static函数,没有任何封装,任何一个人改代码,另外三个人需要rebase。第二次是一个工业协议栈,用C写了6万行,宏定义套宏定义,void*指针满天飞。后来重构时,有C++经验的人用模板+策略模式把核心逻辑从6万行压缩到了2万行,bug率直接降了一个数量级。

2026-07-17 21:58:18 228

原创 RISC-V喊了10年要取代ARM,为什么到现在还只是个配角?

每次我去参加行业展会,总有几个展台在喊RISC-V。"开源指令集、无授权费、自由扩展、中国自主可控……"口号背得比我还熟。但走出展馆,回到现实中——你打开淘宝或者立创商城搜"ARM Cortex-M",出来几千个型号。搜"RISC-V MCU",翻两页就没了。而项目上用的,还是ST、NXP、GD32这些ARM核的片子。这其实挺有意思的。RISC-V从2010年诞生到现在16年了,从2016年基金会成立也10年了。十年时间,够一个技术从概念到主流。但今天的RISC-V在嵌入式领域是什么地位?

2026-07-16 11:32:02 395

原创 AI写代码时代,嵌入式工程师到底会不会被淘汰?我的答案是:不会,但你会被会用AI的同事淘汰

Bun用AI在11天完成Zig到Rust的移植,听起来很吓人。但你注意一下新闻的细节:它叫"机械移植"——就是把同样逻辑用不同语言翻译一遍。真正的难点从来不是"翻译代码",而是"设计系统"、“权衡约束”、“解决问题”。嵌入式工程师的护城河从来不是你会写C还是Rust,是你懂硬件、懂系统、懂物理世界。AI不是来抢你饭碗的,是来帮你把时间从"写模板代码"里解放出来,去做真正需要你做的事。只要你愿意学、愿意往上走,你的饭碗比那些"写业务API"的纯软件工程师稳得多。

2026-07-16 11:25:23 365

原创 从零搭建Buildroot最小系统?30分钟出rootfs,比Yocto快10倍

Buildroot不是万能的,但在嵌入式Linux开发的早期阶段——原型验证、快速迭代、小批量生产——它比Yocto好用10倍。别被"生产环境必须用Yocto"的言论吓到,我有两个量产项目就是用Buildroot跑的,跑了三年稳如老狗。

2026-07-15 12:21:50 343

原创 嵌入式项目Makefile越写越乱?一张万能模板+5个技巧,告别重复劳动

一个好的Makefile应该让你忘记它的存在。它应该自动处理依赖、自动区分配置、自动适配平台。如果你还在手动clean、手动改路径、手动区分Debug和Release——说明你的Makefile该升级了。

2026-07-15 12:13:24 308

原创 嵌入式设备ping不通?tcpdump 5分钟找到凶手,比加printf快10倍

看灯 → 抓包 → 看代码先物理层,再链路层,再网络层,最后才是应用层代码。大多数时候,tcpdump在第二三步就把问题解决了,根本不需要改代码。我见过太多人一上来就翻代码、加log、反复编译烧录——折腾半天发现是IP配错了或者网线松了。工具先上,脑子后用。

2026-07-13 11:25:11 284

原创 段错误?死锁?Core Dump不会用?3个GDB技巧让你调试效率翻倍

三个技巧吃透了,大部分嵌入式调试场景不用再加printk重编。尤其Core Dump和远程调试,省的是实打实的编译部署时间,一次省半小时,一个月下来够你摸好几天的鱼。

2026-07-11 13:00:32 325

原创 性能瓶颈找不到?ftrace+perf组合拳,5分钟定位内核问题

perf告诉你"哪慢",ftrace告诉你"为什么慢"。两个加起来,嵌入式Linux性能问题99%都能在10分钟内定位。别再只会topprintk了,那是上一个十年的玩法。

2026-07-11 12:55:18 210

原创 ARM TrustZone 到底怎么隔离的?从硬件到OP-TEE完整拆解

TrustZone 不是一个"安全软件",而是一个硬件隔离框架。CPU 层面的 NS 位控制哪个世界在运行TZASC 在总线层面强制内存访问控制GIC 的中断分组实现世界隔离安全启动链建立可验证的信任根OP-TEE 在这个框架上跑了一个精简的安全 OS,让你能在安全世界执行不可篡改的代码。最后一句:TrustZone ≠ 绝对安全。它只是把攻击面从 Linux 内核缩小到了 TEE OS 内核。如果 OP-TEE 内核本身有漏洞,安全世界一样会被攻破(BluePill 攻击就是例子)。

2026-07-10 17:25:11 625

原创 RISC-V生态批判

RISC-V的GCC呢?从你的手机(iPhone 17的A19芯片、骁龙8 Gen 5)、你的手表(Apple Watch S10)、你的路由器(IPQ8074)、你的汽车(高通SA8295)、你的电视(MT9638)、你的SSD主控(群联E26)——全是ARM。我跟你赌一块钱的:你去看任何一个真正在做芯片量产的公司——不是大学的实验室、不是FPGA验证板——你看看他们的主力产品用ARM还是RISC-V。很多人吹RISC-V的时候喜欢说"ARM也是从零开始的"——这话没错,但ARM的零是1990年。

2026-07-10 17:13:55 376

原创 V4L2 视频采集到底怎么工作的?从 videodev2 驱动到 QBUF/DQBUF 完整拆解

QBUF 是"借"— 用户态把空 buffer 交给驱动DQBUF 是"还"— 驱动把填好数据的 buffer 还给用户态MMAP 是"零拷贝"— 用户态和硬件共享同一块物理内存整个框架的精巧之处在于它绕过了内核的数据拷贝。驱动写 DMA 地址、硬件填数据、用户态直接读——中间没有一次 memcpy。正是这个设计让嵌入式设备能用 200MHz 的 CPU 处理 1080p30 的视频流。如果你的摄像头项目 DQBUF 一直超时,先从dmesg和v4l2-ctl。

2026-07-09 20:19:18 408

原创 一次网卡打爆CPU排查,我把Linux中断子系统从头学一遍

整条链路走下来,Linux中断设计其实是一个分层延迟硬件触发 → 硬中断(关中断,极短)→ threaded_irq(进程上下文,可睡眠)→ 软中断(开中断,批量处理)→ tasklet(软中断上层,不可重入)→ workqueue(进程上下文,可长时间运行)每一层都比上一层能做更多事,但延迟也更大。选择哪一层取决于你的工作量和实时要求。别让CPU0一个人扛。配好,用好多队列,你就能避免大部分中断引起的性能问题。参考:Linux kernel 6.6 source (​​​​​​​。

2026-07-09 11:19:45 369

原创 嵌入式 vs 后端:干了18年的老登说句实话,差距比你想的大得多

作者:一个干过嵌入式BSP也干过后端的"双面人"

2026-07-08 17:02:26 450

原创 一次TLB刷崩系统的排查,让我把ARM MMU和页表遍历从头摸了一遍

页表遍历开销大— 4次内存读,TLB miss是性能杀手,热数据用hugetlb(2M大页)TLB刷新一定要广播— 多核系统里,永远用IS后缀的TLBI指令Cache一致性是另一个坑省心但性能低,性能好但要精细管理SMMU不是免费的— SMMU TLB miss比CPU MMU miss开销更大一定要加DSB+ISB— 少一个都可能出时序问题CONFIG_TRANSPARENT_HUGEPAGE=y # 透明大页支持。

2026-07-08 15:11:44 398

原创 一次DMA丢数据排查,让我把cache操作和内存屏障从头学了一遍

fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;法则1:优先用DMA API不要自己调Cache操作法则2:方向和语义要正确法则3:DMA描述符和寄存器之间加wmb()法则4:DMA状态检查后加rmb()法则5:dma_handle不是物理地址不要用virt_to_phys法则6:dma_sync 比手写。

2026-07-07 15:20:26 494

原创 嵌入式老登,聊聊国产芯片替代的真实进展

务实。国产芯片的进步是肉眼可见的。MCU层面,GD32/AT32在性价比和供货稳定性上已经把ST打得抬不起头。应用处理器层面,RK3588的硬件规格和体验已经非常能打——如果BSP质量能再上一个台阶,完全可以在更多场景替代i.MX8/QCS系列。而我感受最深的,其实不是芯片本身,而是整个生态的成长。2019年我在那个国产SoC群里提问题,FAE要回去问研发,三天才回复。2026年我在另一个国产SoC群里提问题,FAE直接在群里甩了一段代码片段——还附带了说明为什么要这样写。

2026-07-07 15:15:08 265

原创 ARM异常等级到底怎么切换的?从EL0到EL3的完整旅程(附源码)

四个等级:EL0 用户态、EL1 内核、EL2 虚拟机管、EL3 保安向量表:4 个场景 × 4 种异常 = 16 个 entry,VBAR_ELx 指向基址SMC 是唯一跨世界通道smc #0SMCCC 定协议:x0-x7 传参,x0 返回,函数ID 编码含丰富信息调试靠 QEMU + GDB + ftrace:单步打向量表比看手册管用十倍如果你正在搞 ARM TrustZone 或者 TEE,建议去读 ATF 的源码——和这两文件是灵魂。

2026-07-06 14:48:37 352

原创 从零拆解Linux设备驱动模型:platform_bus注册到probe调用,每一步都给你画清楚

fill:#333;important;important;fill:none;设备被加入 drv->>devices 链表sysfs 链接建立1. driver 加入 bus->>driver_list2. device 加入 bus->>device_list3. 遍历配对或 id_table 匹配 / name 匹配匹配成功有点讽刺的是,一个每天被成千上万 Linux 设备调用的机制,核心代码其实只有几百行。理解了的四种匹配方式、的前后逻辑、

2026-07-06 11:33:57 349

原创 从零写一个Linux字符设备驱动:从注册到中断处理的完整实战

这套模式从 ARM Cortex-A7 到 A72,从 Linux 3.10 到 6.x,基本框架没怎么变过。下次你接到一个新板子的驱动任务,直接把这个模板 clone 过去改改,比从头写快太多了。

2026-07-05 10:56:31 221

原创 ARM64 启动全流程拆解:从 BootROM 到 U-Boot 到底发生了什么?

fill:#333;important;important;fill:none;fill:#333;stroke:red;important;important;important;important;important;important;fill:red;important;important;fill:navy!important;important;fill:#333;

2026-07-05 10:47:18 332

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除