2. RK3588硬件平台概览

RK3588是瑞芯微面向中高端AIoT、边缘计算、工业控制与多媒体终端推出的旗舰级SoC。做BSP开发之前,必须先建立一张“硬件地图”:哪些计算单元、哪些总线、哪些引脚复用、哪些存储通道,决定了后续设备树怎么写、驱动怎么配、性能瓶颈在哪里。本节从CPU/GPU/NPU、内存与存储、外设资源、典型开发板四个维度,把RK3588平台的整体结构梳理清楚。

一、CPU/GPU/NPU:三套计算单元各司其职

RK3588采用big.LITTLE大小核架构,包含4个Cortex-A76大核与4个Cortex-A55小核,形成两个CPU cluster。A76主频可达2.4GHz,负责重负载任务;A55主频约1.8GHz,负责低功耗后台任务。两个cluster各自带有独立的L2缓存,并通过DSU共享L3缓存,Linux内核中体现为两个CPU域,可分别做调频与热管理。

GPU为Mali-G610 MP4,支持OpenGL ES 3.2、Vulkan 1.2、OpenCL 2.2,主要承担图形渲染与部分通用计算。NPU是RK3588的亮点,算力约6TOPS,支持INT4/INT8/INT16混合量化,可同时运行多路AI推理。NPU通过独立驱动与RKNN运行时对接,BSP中需要关注NPU供电域、时钟域以及固件加载路径。

三者关系可以用下面的结构图表示:CPU负责调度与通用计算,GPU负责图形与并行浮点,NPU负责定点AI推理,它们共享内存控制器与总线带宽,因此带宽分配是性能调优的关键。

RK3588 计算单元与共享资源关系 CPU Cluster 4×Cortex-A76 @2.4GHz 4×Cortex-A55 @1.8GHz L2独立 + L3共享 GPU Mali-G610 MP4 OpenGL ES 3.2 / Vulkan 1.2 OpenCL 2.2 图形渲染与并行计算 NPU 6TOPS INT4 / INT8 / INT16 RKNN 运行时 多路AI推理 共享内存控制器 / 总线互联 LPDDR4/4x/5 · 带宽分配 · QoS CPU调度 · GPU渲染 · NPU推理,共享LPDDR带宽是性能调优核心

二、内存与存储接口:带宽与启动路径

RK3588支持LPDDR4、LPDDR4x和LPDDR5,常见容量为4GB/8GB/16GB,位宽32bit,频率可达4266MT/s。内存控制器支持多通道QoS,BSP中可通过设备树配置内存频率与电压域。存储方面,RK3588提供eMMC 5.1、SD 3.0、SPI NOR/NAND以及NVMe SSD(通过PCIe 3.0)。典型启动顺序为BootROM → SPI NOR/eMMC → U-Boot → Kernel,因此烧录镜像时要明确启动介质。

接口典型用途BSP关注点
LPDDR4/4x/5系统内存频率、电压、QoS、容量识别
eMMC 5.1系统盘/根文件系统分区表、烧录地址、HS400模式
SD 3.0启动卡/数据卡卡检测、电压切换、启动顺序
SPI NORBootloader存储启动介质选择、镜像偏移
PCIe 3.0NVMe SSD/扩展卡RC模式、复位GPIO、时钟

三、外设资源:接口丰富但引脚复用复杂

RK3588的外设资源非常丰富,常见包括:千兆以太网、USB 3.0/2.0、Type-C、HDMI 2.1、DisplayPort、MIPI DSI/CSI、PCIe 3.0、SATA、CAN、UART、I2C、SPI、PWM、GPIO等。BSP开发中最容易踩坑的是引脚复用(pinctrl)与电源域配置:同一个物理引脚可能同时支持UART、I2C、PWM,必须在设备树中明确选择功能并配置上下拉、驱动能力。

实操提示:查看引脚复用状态可读取debugfs:

cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins
cat /sys/kernel/debug/gpio

设备树中配置UART示例:

&uart2 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&uart2m0_xfer>;
};

四、典型开发板与场景选择

市面上基于RK3588的开发板较多,常见有官方EVB、Firefly、Radxa、香橙派等。不同板卡在内存容量、存储、接口引出、电源设计上差异明显。选板时建议关注:是否引出PCIe、是否有双网口、MIPI摄像头接口数量、是否支持NVMe、调试串口是否可用。对于BSP开发,优先选择资料完整、设备树开源、社区活跃的板卡。

常见误区:直接拿其他板卡的设备树改个名字就烧录,往往导致网口不通、USB不识别、屏幕无显示。原因是引脚复用、电源域、时钟树、PHY复位GPIO都不同。正确做法是以官方EVB设备树为基线,逐项核对原理图与引脚定义。

五、复盘:从硬件地图到BSP落地

掌握RK3588硬件平台概览后,BSP开发就有了明确的“坐标系”:CPU/GPU/NPU决定算力分配与驱动加载;内存与存储决定启动链路和根文件系统布局;外设资源决定设备树节点与pinctrl配置;开发板差异决定移植工作量。建议在项目初期整理一份硬件资源清单,标注每个接口的控制器、引脚、电源域和驱动状态,再进入内核配置与调试阶段,能显著减少返工。