RK3588 SDK 源码深度解析
2026/6/22 6:50:44 网站建设 项目流程

一、前言

RK3588 作为瑞芯微旗舰级 8nm 工业级处理器,凭借超强的 NPU 算力、丰富的多媒体接口和跨平台兼容性,成为嵌入式 AI、边缘计算、工业控制等领域的热门选择。

很多新手拿到 SDK 后面对一堆目录和文件无从下手,本文将从目录结构解析、核心脚本作用、编译流程实战三个维度,带你彻底搞懂 RK3588 SDK 的底层逻辑,为后续开发打下坚实基础。

二、SDK 目录结构

目录 / 文件

核心作用

关键说明

app

上层应用示例

存放官方提供的 Demo 程序,如 LVGL 界面、多媒体测试工具、AI 推理示例等,可直接参考或二次开发

buildroot

轻量级根文件系统构建系统

用于快速生成极简 Linux 根文件系统,适合资源受限的场景,支持自定义软件包裁剪和配置

common

通用公共代码与配置

存放跨平台通用的脚本、宏定义、工具函数,被多个模块共享调用

debian

Debian 根文件系统支持

提供 Debian 系统的构建脚本和配置,可生成完整的 Debian 发行版,适合需要丰富软件生态的场景

device

芯片与开发板配置中心

存放 RK3588 芯片和对应开发板的设备树(DTS)、板级配置文件、编译脚本,是 SDK 定制化的核心目录

docs

官方开发文档集合

包含芯片 datasheet、SDK 使用指南、编译教程、驱动开发手册等,是开发时的重要参考资料

external

第三方开源组件

存放官方适配的第三方库,如音频编解码、视频处理、网络协议栈、recovery 工具等

kernel/kernel-6.1

Linux 内核源码

前者通常是kernel-6.1的软链接,包含 RK3588 定制化的 Linux 6.1 内核源码,如驱动、设备树、配置选项等

prebuilts

预编译工具链与二进制文件

存放交叉编译工具链、预编译的固件组件,避免每次从头编译,大幅提升编译效率

rkbin

Rockchip 二进制固件集合

存放瑞芯微芯片的闭源固件,如 DDR 初始化固件、Trust 固件、SCP 固件等,是芯片启动的关键

rockdev

开发板固件与烧录相关

存放编译生成的固件分区文件、烧录配置,方便后续打包和烧录操作

tools

开发与调试工具集

包含打包脚本、烧录工具、调试工具、设备树编译工具等,是开发过程中的辅助工具

u-boot

引导加载程序源码

存放 RK3588 定制化的 U-Boot 源码,负责芯片上电初始化、引导内核启动

yocto

Yocto 项目构建支持

提供 Yocto 构建系统的配置文件,支持构建高度定制化的 Linux 发行版

build.sh

一键编译核心脚本

SDK 的入口脚本,支持一键编译 U-Boot、Kernel、根文件系统,并打包成完整固件

Makefile

顶层构建规则

关联各个模块的编译规则,被build.sh调用,统一管理整个 SDK 的构建流程

rkflash.sh

固件烧录脚本

配合瑞芯微烧录工具,实现开发板的一键烧录,支持分区烧录和完整固件烧录

三、核心模块深度解析

3.1 启动链相关模块:u-boot + rkbin

  • u-boot 目录: 包含针对 RK3588 定制的引导程序,支持SD 卡启动、eMMC 启动等多种方式。关键文件:

    • configs/:存放不同开发板的 U-Boot 配置文件

    • arch/arm/mach-rockchip/:存放 RK3588 芯片相关的板级初始化代码

  • rkbin 目录: 存放瑞芯微闭源固件,包括 DDR 初始化固件、ATF(ARM Trusted Firmware)固件、SCP 固件,这些固件负责芯片上电后的基础硬件初始化,是启动流程中不可或缺的部分。

3.2 内核模块:kernel-6.1

kernel-6.1是 SDK 的核心,包含 RK3588 定制化的 Linux 内核源码,支持丰富的外设驱动和 AI 加速功能。

  • 关键目录说明:

    • arch/arm64/boot/dts/rockchip/:存放 RK3588 的设备树文件(DTS/DTSI),用于描述硬件资源,修改设备树是外设驱动开发的核心步骤之一。

    • drivers/:存放各种外设驱动,如 USB、HDMI、PCIe、NPU、摄像头等,RK3588 官方已适配大部分外设,如需自定义驱动可在此添加。

    • configs/:存放内核配置文件,可通过make menuconfig进行裁剪和配置。

3.3 根文件系统模块:buildroot /debian/yocto

SDK 提供了三种主流的根文件系统构建方式,满足不同开发需求:

  1. Buildroot:轻量级、快速构建,适合资源受限的场景,可自定义裁剪软件包,生成极简根文件系统。

  2. Debian:完整的 Debian 发行版,支持 apt 包管理,软件生态丰富,适合需要快速开发应用的场景。

  3. Yocto:高度定制化的构建系统,支持分层配置和多架构构建,适合工业级、可量产的产品开发。

四、核心脚本实战:build.sh 一键编译解析

build.sh是 SDK 的核心入口脚本,封装了复杂的编译流程,支持一键编译各个模块,大幅降低开发门槛。

4.1 脚本基础用法

# 1. 一键完整编译 ./build.sh # 2. 单独编译 U-Boot ./build.sh uboot # 3. 单独编译内核 ./build.sh kernel # 4. 单独编译 Buildroot 根文件系统 ./build.sh buildroot # 5. 单独编译 Debian 根文件系统 ./build.sh debian

编译成功后,完整固件会生成在output/update/update.img

4.2 脚本执行流程

build.sh本质上是对各个模块编译流程的封装,执行逻辑如下:

  1. 初始化编译环境,加载板级配置文件;

  2. 编译rkbin固件,生成 DDR/ATF 二进制文件;

  3. 编译u-boot,生成 U-Boot 镜像;

  4. 编译kernel,生成内核镜像、设备树文件和驱动模块;

  5. 编译根文件系统(Buildroot/Debian/Yocto);

  6. 调用mkfirmware.sh脚本,将所有分区镜像打包成update.img固件

五、新手开发流程建议

  1. 环境准备:在 Ubuntu 22.04 环境下安装依赖工具,配置交叉编译工具链;

  2. 首次编译:先执行./build.sh all完成完整编译,验证 SDK 环境是否正常;

  3. 模块开发:根据需求修改 U-Boot、内核或根文件系统,再单独编译对应模块;

  4. 固件烧录:使用rkflash.sh或瑞芯微官方工具RKDevTool烧录固件到开发板;

  5. 调试验证:通过串口或 SSH 登录开发板,验证外设和应用功能是否正常。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询