第一章: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驱动开发知识体系。你把它存下来,学完整个课程再回来看,会有更深的理解。

Rockchip驱动开发知识体系 硬件层:RK3588 / RK3568 / RK3326 SoC + 外设 内核驱动层 设备树(DTS) | 时钟/电源/复位 | GPIO/I2C/SPI/UART | MMC/SDIO 子系统层 DRM显示 | ALSA音频 | V4L2摄像头 | USB Gadget | 网络 应用层:RKNN / GStreamer / Qt / Android HAL 本课程覆盖:设备树 → 内核驱动 → 子系统 → 应用层,逐层深入

1.5 避坑指南:我踩过的三个坑

做Rockchip开发这几年,我踩过不少坑。挑三个最常见的分享给你:

  1. 电源时序问题:RK3588有复杂的电源域,上电时序不对直接不开机。我曾经因为PMIC的寄存器配置错了,折腾了一周才发现是I2C通信速率太高导致配置失败。建议:上电先看PMIC的datasheet,严格按照时序图来。
  2. DDR频率不匹配:RK3568的DDR频率和颗粒型号强相关。我遇到过开发板用DDR4 3200,但设备树里配成2400,结果系统跑起来随机死机。建议:用Rockchip的DDR工具(如DDR Stress Test)先验证稳定性。
  3. 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驱动版本