BSP(Board Support Package)-板级支持包
SDK(Software Development Kit )-软件开发工具包
对于RK3588,开发板运行分为normal模式、loader模式和maskrom模式。在上电后,CPU中的BootROM存放引导代码,上电第一时间执行这一块的代码,在BootROM中,程序会依次检测SPI NAND FLASH-> NAND FLASH-> EMMC-> USB是否有硬件支持,一旦检测到某一层有支持就会在DDR上运行BOOT代码进行开发板初始化,如果检测到USB就会进入maskrom模式。
RK Linux SDK源码文件夹构成
app:存放上级应用的目录
buildroot:基于buildroot开发的根文件系统
build.sh:编译脚本
debian:基于debian开发的根文件系统
device/rockchip:存放每个平台编译打包的固件的脚本和预备文件
docs:开发指导文件
envsetup.sh:修改文件系统时设置环境脚本
external:存放相关的库文件
Makefile:SDK编译所需的makefile
mkfirmware.sh:固件的打包脚本
prebuilts:存放编译交叉工具链
rkflash.sh:系统烧录脚本
rkdev:存放输出的固件
tools:存放固件和工具
u-boot:u-boot源码目录
yocto:基于yocto开发的根文件系统
单独编译uboot前,在u-boot目录下用make menuconfig用可视化界面更改配置,用生成的.config文件./config/rk35xx_deconfig文件,然后再使用单独编译命令编译uboot
单独编译kernel前,在kernel目录下用make menuconfig用可视化界面更改配置,用生成的.config文件./arch/arm64/configs/对应配置文件,然后再使用单独编译命令编译uboot,生成的resource.img为设备树镜像,boot.img为内核镜像(包含设备树镜像)
在SDK中制作Ubuntu文件系统镜像
mkdir rootfs #创建文件系统文件夹
dd if=/dev/zero/ of=rootfs.img bs=1M count=5120 #创建存放镜像的容器
mkfs.ext4 rootfs.img #格式化为ext4格式
mkdir ./roofts #创建挂载目录
sudo mount rootfs.img rootfs/ #挂载文件系统
sudo cp -rfp system/* rootfs/ #将Ubuntu系统源码拷贝到rootfs目录下
sudo umount rootfs/ #卸载目录
e2fsck -p -f rootfs.img #修复镜像文件
resize2fs -M rootfs.img #调整镜像文件大小