1. RK3568/RV1126嵌入式Linux系统移植全流程解析
作为一名长期从事嵌入式Linux开发的工程师,我最近完成了瑞芯微RK3568和RV1126两个平台的完整系统移植工作。这两个平台分别代表了ARM和RISC-V架构在嵌入式领域的最新应用,在消防CRT系统中发挥了关键作用。本文将详细记录整个移植过程中的技术要点和实战经验。
1.1 项目背景与平台选型
RK3568是一款基于Cortex-A55架构的四核处理器,主频可达2GHz,内置NPU和GPU,适合多媒体和AI应用。而RV1126则是基于RISC-V架构的双核处理器,主打低功耗和实时性。在消防CRT系统中,RK3568作为主控负责图形界面和复杂计算,RV1126则专注于实时数据采集。
选择这两个平台主要基于以下考虑:
- 性能平衡:RK3568的四核A55提供足够的计算能力
- 实时性需求:RV1126的RISC-V架构对实时任务响应更快
- 外设支持:两者都提供丰富的接口(CAN、I2S、MIPI CSI等)
- 成本控制:相比同类产品具有更好的性价比
1.2 开发环境搭建实战
1.2.1 SDK获取与准备
瑞芯微的SDK需要通过NDA协议从FAE获取。我们拿到的RK3568_Linux_SDK_V1.2.0解压后约30GB,目录结构如下:
code复制SDK_ROOT/
├── u-boot/ # U-Boot源码
├── kernel/ # Linux内核(5.10)
├── buildroot/ # 根文件系统构建
├── device/rockchip/ # 设备树和板级配置
├── tools/ # 烧录和打包工具
└── docs/ # 硬件参考手册
提示:建议使用ext4文件系统存放SDK,NTFS文件系统可能导致符号链接问题。
1.2.2 编译环境配置
官方推荐Ubuntu 18.04,但我们在20.04上也能正常工作。关键工具链安装命令:
bash复制sudo apt-get install -y gcc-aarch64-linux-gnu \
gcc-arm-linux-gnueabihf \
device-tree-compiler \
u-boot-tools \
python3-pip
pip3 install pyelftools
常见问题排查:
- 编译报错
dtc: not found→ 安装device-tree-compiler - Python相关错误 → 安装pyelftools
- 工具链兼容性问题 → 使用官方Docker镜像最稳妥
1.2.3 首次编译验证
使用官方配置进行全量编译:
bash复制./build.sh device/rockchip/rk3568/BoardConfig.mk
首次编译需要2-3小时,主要耗时在:
- 下载各类依赖包
- 编译U-Boot和内核
- 构建rootfs
编译成功后会在rockdev/目录生成完整固件包,包含:
uboot.img:U-Boot镜像boot.img:内核和initramfsrootfs.img:根文件系统
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. U-Boot深度移植与优化
2.1 时钟系统配置详解
RK3568的时钟树结构复杂,包含6个主要PLL:
| PLL名称 | 默认频率 | 功能模块 |
|---|---|---|
| APLL | 1992MHz | CPU核心 |
| DPLL | 1560MHz | DDR控制器 |
| CPLL |
