1. Rockchip平台概述:RK芯片家族介绍、应用场景与源码获取
各位同学,咱们正式开始这门课。第一讲,我先带大家把Rockchip这个平台的整体面貌看清楚。说白了,就是先搞清楚我们手里拿的是什么“家伙”,它能干什么,以及从哪里搞到它的“说明书”——也就是Linux内核源码。
1.1 RK芯片家族:从入门到旗舰
Rockchip的芯片型号很多,但别慌,它们有清晰的定位。我个人习惯把它们分成三大类:
| 系列 | 代表型号 | 核心定位 | 典型应用 |
|---|---|---|---|
| 入门级 | RK3308、RK3326 | 低功耗、成本敏感 | 智能音箱、IoT网关、简单HMI |
| 主流级 | RK3566、RK3568、RK3588S | 性能均衡、接口丰富 | 平板电脑、NAS、边缘计算盒子 |
| 旗舰级 | RK3588、RK3588M、RK3576 | 高性能、多核异构、AI算力 | AIoT、车载中控、高端平板、智能座舱 |
这里我重点说一下RK3588系列。它集成了4个Cortex-A76大核和4个Cortex-A55小核,还有独立的NPU(神经网络处理单元),算力达到6 TOPS。我在做车载项目时,就用的RK3588M,同时跑Linux和Android两个系统,还要处理摄像头、雷达数据,这芯片扛得住。
关键点:选型时不要只看CPU主频。要关注总线带宽、显示接口(如MIPI DSI、HDMI TX)、外设接口(如PCIe、SATA、USB3.0)是否满足你的产品需求。我曾经因为没注意RK3568只有一个PCIe 3.0 x2,导致外接NVMe SSD带宽受限,后来不得不改方案。
1.2 应用场景:AIoT、平板、车载
Rockchip的芯片覆盖了三个主要战场。我分别说说我的体会。
1.2.1 AIoT(人工智能物联网)
这是RK芯片出货量最大的领域。从智能门锁的人脸识别,到工业视觉检测,再到智能零售柜。这类场景对功耗和成本极其敏感。我记得有个客户做智能摄像头,要求整机功耗低于1.5W,我们最后选了RK3308,配合轻量级Linux系统,才把功耗压下来。
1.2.2 平板电脑
平板是Rockchip的传统强项。RK3566/RK3568被大量用在教育平板、电子书阅读器上。这类场景对显示效果、触摸响应、电池续航要求很高。你想想看,一个孩子用平板上课,屏幕闪一下或者触摸延迟,体验就很糟糕。
1.2.3 车载
车载是Rockchip近几年重点攻的方向。RK3588M和RK3576都通过了车规级认证。车载场景对安全性、实时性、可靠性要求极高。比如仪表盘显示,必须保证帧率稳定,不能卡顿。我曾经在调试车载AVM(全景影像)时,发现摄像头数据流偶尔丢帧,查了三天,最后发现是DMA传输的优先级配置问题。
我的建议:如果你是初学者,先从AIoT或平板场景入手。车载的门槛较高,涉及功能安全(ISO 26262)和大量硬件在环测试,建议有一定经验后再接触。
1.3 Linux内核源码获取与分支选择
好,现在我们来解决“从哪里搞代码”的问题。Rockchip的Linux内核源码,主要有三个来源:
- Rockchip官方GitHub:
https://github.com/rockchip-linux - 芯片厂商的SDK包:比如瑞芯微提供的Firefly、Toybrick等开发板SDK
- 上游主线内核:
https://www.kernel.org
我个人强烈建议:做产品开发,优先用Rockchip官方维护的分支。为什么?因为Rockchip的BSP团队会针对自家芯片做大量驱动适配和补丁,这些补丁在上游主线里可能还没合入,或者合入得不完整。
避坑指南:我曾经直接拉取主线Linux 5.10内核,想移植到RK3568上。结果发现GPU驱动(Mali-G52)跑不起来,VPU解码器也不工作。折腾了两周,最后还是切回Rockchip的5.10分支,一天就搞定了。所以,别跟自己的时间过不去。
Rockchip官方GitHub上,每个芯片都有对应的内核分支。命名规则通常是:
linux-5.10.y-rk358x
linux-5.10.y-rk356x
linux-4.19.y-rk3308
这里的 5.10.y 表示内核版本,rk358x 表示芯片系列。你选的时候,先确定你的芯片型号,再选对应的分支。
1.3.1 分支选择策略
我一般按这个优先级来选:
- 首选:Rockchip官方维护的长期支持(LTS)分支,比如
linux-5.10.y-rk358x。这个分支最稳定,补丁最全。 - 次选:开发板厂商(如Firefly、友善之臂)提供的SDK分支。这些分支通常基于Rockchip官方分支,但会额外加一些板级配置和驱动。
- 最后:主线内核。除非你有很强的内核移植能力,或者你的硬件完全被主线支持,否则不推荐。
一个实用技巧:在克隆代码前,先看看该分支的提交记录。如果最近一个月还有活跃提交,说明这个分支还在维护。如果半年没更新了,赶紧换一个。
1.4 本章知识体系总览
为了让大家对本章内容有个整体印象,我画了一张结构图。它把RK芯片家族、应用场景、源码获取这三个核心模块串了起来。
这张图把本章的三个核心模块串起来了。你可以看到,芯片家族决定了你能做什么产品,应用场景决定了你的软件需求,而源码获取则是你动手实践的第一步。这三者环环相扣。
好了,第一章的内容就到这里。记住,搞嵌入式Linux开发,选对芯片、选对分支,你就成功了一半。剩下的,就是动手去干。