第一章:Rockchip平台概述——从芯片选型到开发板实战
做嵌入式Linux驱动开发,选对平台是第一步。Rockchip这几年在AIoT、平板、车载领域铺得很开,我最早接触RK是在2016年做一款教育平板,那时候RK3288还是主力。现在回头看,RK的产品线已经相当成熟了。
这一章,我带大家把Rockchip的芯片家族、应用场景和开发板选型理清楚。说白了,就是让你知道:什么项目该用什么芯片,开发板怎么挑,踩过哪些坑。
1.1 RK芯片家族:三档定位,各司其职
Rockchip的芯片大致分三个档次,我习惯按性能和应用场景来划分:
| 档次 | 代表型号 | CPU核心 | GPU | NPU算力 | 典型应用 |
|---|---|---|---|---|---|
| 旗舰级 | RK3588 / RK3588S | 4×Cortex-A76 + 4×Cortex-A55 | Mali-G610 MP4 | 6 TOPS | AI边缘计算、高端平板、车载中控 |
| 中高端 | RK3568 / RK3566 | 4×Cortex-A55 | Mali-G52 EE | 1 TOPS | 工业控制、智能网关、NAS |
| 入门级 | RK3326 / RK3308 | 4×Cortex-A35 | Mali-G31 | 无 | 智能音箱、IoT终端、简单HMI |
嗯,这里要注意:RK3588和RK3588S的区别主要在接口数量上。S版本砍掉了一些PCIe和显示接口,但核心性能一样。我建议做产品原型时用RK3588,量产成本敏感再切RK3588S。
1.2 应用场景:三个方向,各有侧重
Rockchip的芯片覆盖场景很广,我挑三个最典型的说说:
- AIoT(人工智能物联网):这是RK3588的主战场。6 TOPS的NPU跑轻量级模型绰绰有余。我在项目中用RK3588做过人脸识别门禁,YOLOv5s量化后能跑到30fps。注意,NPU驱动和RKNN工具链的版本要匹配,否则踩坑踩到怀疑人生。
- 平板/消费电子:RK3566/RK3588是主力。RK3566的功耗控制做得不错,做安卓平板续航能到8小时以上。我记得有一次帮客户调RK3566的显示驱动,EDID解析有个小bug,折腾了两天才定位到——后来发现是内核版本太老。
- 车载/工业:RK3568是首选。工业级温度范围-40℃~85℃,而且有双千兆以太网和CAN-FD接口。我建议做车载项目时,优先选RK3568J(工业级),别省那几十块钱,否则高温测试过不了。
核心观点:选芯片不是越贵越好。AIoT重算力选RK3588,工业重稳定选RK3568,IoT重成本选RK3326。别拿旗舰芯片做灯泡控制器,浪费。
1.3 开发板选型:RK3588 vs RK3568,怎么选?
做驱动开发,开发板是必备的。市面上RK3588和RK3568的开发板最多。我列个对比表,你一看就明白:
| 对比项 | RK3588开发板(如Firefly ROC-RK3588S-PC) | RK3568开发板(如Firefly ROC-RK3568-PC) |
|---|---|---|
| 价格 | 约800-1500元 | 约400-700元 |
| 内存 | 8GB/16GB LPDDR4X | 2GB/4GB LPDDR4 |
| 存储 | eMMC 32GB/64GB + microSD | eMMC 16GB/32GB + microSD |
| 显示接口 | HDMI 2.1 + DP + MIPI DSI ×2 | HDMI 2.0 + MIPI DSI ×1 |
| PCIe | PCIe 3.0 ×4(可拆) | PCIe 3.0 ×1 |
| NPU | 6 TOPS | 1 TOPS |
| 适合场景 | AI视觉、多屏显示、高性能计算 | 工业控制、网关、轻量AI |
我个人习惯:学习驱动开发,优先选RK3568。为什么?便宜、资料多、社区活跃。而且RK3568的驱动架构和RK3588基本一致,学会了RK3568,上RK3588就是改改设备树的事。
我的建议:如果你是初学者,买一块RK3568开发板(比如Firefly的ROC-RK3568-PC),再配一块RK3588开发板做进阶。两板在手,天下我有。
1.4 知识体系:一张图看懂Rockchip驱动开发
下面这张SVG图,是我自己梳理的Rockchip驱动开发知识体系。你把它存下来,学完整个课程再回来看,会有更深的理解。
1.5 避坑指南:我踩过的三个坑
做Rockchip开发这几年,我踩过不少坑。挑三个最常见的分享给你:
- 电源时序问题:RK3588有复杂的电源域,上电时序不对直接不开机。我曾经因为PMIC的寄存器配置错了,折腾了一周才发现是I2C通信速率太高导致配置失败。建议:上电先看PMIC的datasheet,严格按照时序图来。
- DDR频率不匹配:RK3568的DDR频率和颗粒型号强相关。我遇到过开发板用DDR4 3200,但设备树里配成2400,结果系统跑起来随机死机。建议:用Rockchip的DDR工具(如DDR Stress Test)先验证稳定性。
- NPU驱动版本:RK3588的NPU驱动和RKNN工具链版本必须一一对应。我见过有人用RKNN 1.7.0配NPU驱动1.6.0,推理结果全是错的。建议:去Rockchip官网下载配套的SDK,别混搭。
重要提醒:Rockchip的BSP(板级支持包)更新很快。我建议你固定一个LTS内核版本(比如Linux 5.10),不要追新。追新意味着不稳定,你懂的。
1.6 本章小结
这一章我们聊了:
- RK芯片的三档定位:旗舰RK3588、中端RK3568、入门RK3326
- 三大应用场景:AIoT、平板、车载/工业
- 开发板选型:学习用RK3568,进阶用RK3588
- 知识体系:硬件→内核驱动→子系统→应用层
- 三个常见坑:电源时序、DDR频率、NPU驱动版本