当前位置: 首页 > article >正文

编译linux SDK

参考正点原子

编译环境是 ubuntu20.04。Linux 源码包是rk356x_linux_XXXXXXX.tar.gz。使用命令“ tar -vxf rk356x_linux_XXXXXXX.tar.gz解压,解压后会生成一个 rk356x_linux 文件夹。

1、编译 uboot
./build.sh uboot

编译成功生成

<SDK>/uboot/uboot.img
<SDK>/uboot/rk356x_spl_loader_v1.13.112.bin
 

2、编译 kernel
./build.sh kernel
编译成功生成<SDK>/kernel/boot.img

3、编译 Recovery

./build.sh recovery
编译成功生成rootfs.img,在目录下buildroot/output/rockchip_rk356x_recovery/images/

4、编译 rootfs

选择buildroot根文件系统

./build.sh buildroot

编译成功生成rootfs.img,在目录下
buildroot/output/rockchip_rk3568/images/
 

5、打包镜像

./build.sh firmware
将前面编译的镜像移动到 rockdev 目录下

./build.sh updateimg
将 rockdev 目录下的镜像打包 update.img 镜像

6、SDK 板级配置文件

板级配置文件位于目录<SDK>/device/rockchip/rk356x/。xxx.mk文件就是板级配置文件,.mk 文件其实是一个 sh 脚本文件,通过 export 导出一些环境变量。

7、uboot

U-Boot 源码在<SDK>/u-boot 目录
RK3568 的设备树文件是<U-Boot>/arch/arm/dts/rk3568-evb.dts,该设备树文件包
含了 rk3568.dtsi 和 rk3568-u-boot.dtsi。原生的 U-Boot 只支持 U-Boot 自己的 DTB, RK 平台在原生 U-Boot 基础上增加了 kernel DTB 机制的支持,即 U-Boot 会使用 kernel DTB 去初始化外设。U-Boot 设备树负责初始化存储、调试串口等基础外设;而 kernel 设备树初始化存储、调试
串口之外的外设,譬如 LCD 显示、 千兆网等。执行 U-Boot 代码时先用 U-Boot 的设备树完成存
储、调试串口的初始化操作,然后从存储上加载 kernel 的设备树并转而使用这份设备树继续初
始化其余外设。
MiniLoaderAll.bin由 rk356x_spl_loader_v1.13.112.bin 重命名而来。MiniLoaderAll.bin 由两部分构成: TPL(Tiny Program Loader) + SPL(Secondary Program Loader)构成。TPL 运行在 SRAM 中(片内内存), 由 rk3568 芯片内部所固化的 Maskrom(BootROM)代码引导启动;其作用是负责完成 DRAM 的初始化工作、并启动 SPL; SPL 运行在 DDR, SPL的作用是负责完成系统的 lowlevel 初始化、 完成 uboot.img 的加载和引导工作。

Linux 系统的镜像启动顺序为:
Maskrom → MiniLoaderAll.bin → uboot.img → boot.img → rootfs.img
还可以进行细分:
Maskrom → TPL(ddr bin) → SPL(miniloader) → Trust(ATF + OP-TEE) → u-boot → kernel → rootfs

U-Boot中, RK3568平台使用的defconfig配置文件为: <U-Boot>/configs/rk3568_defconfig
 


http://www.kler.cn/a/553118.html

相关文章:

  • 同步异步日志系统-设计模式
  • 使用 Mammoth.js 渲染 Word 文档为 HTML:详细教程
  • linux查看程序占用的本地端口
  • 【雅思博客05】New Guy in Town
  • 撕碎QT面具(7):container控件被spacer挤扁,无法进行控件添加的处理方案。
  • 计算机网络抄手 运输层
  • AI浪潮下的前端开发:ScriptEcho助力你乘风破浪
  • 机器学习面试题汇总
  • vue stores全局状态共享
  • RESTful 的特点与普通 Web API 的区别
  • 23种设计模式之《工厂方法模式(Factory Method)》在c#中的应用及理解
  • 内存泄漏是什么?
  • Secured Finance携手Axelar及Squid提升流动性,迎接USDFC主网
  • 问卷数据分析|SPSS实操之相关分析
  • Python JSON的深度解析:从基础到应用
  • Android 平台GB28181设备接入实战指南
  • 高德地图android sdk(备忘)
  • 使用BERT模型微调二分类任务
  • 意图识别概述
  • JetBrains 2024开发者生态报告 -你尝试过用VR头戴设备编程吗