1.1 sdk框架图
**sdk从下到上分为Bootloader、Linux Kernel、Libraries、Applications4个层次**
(1) Bootloader层主要提供底层系统支持包,如Bootloader、u-boot、ATF相关支持
(2)Kernel层只要提供Linux Kernel的标准实现,rockchip平台的linux核心为标准的Linux4.4,提 供 安全性、内存管理,进程管理,网络协议栈等基础支持,主要是通过linux内核管理设备硬件资源,如CPU调度、缓存,内存、I/O等
(3)Libraries层对应一般嵌入式系统,相当于中间层次,包含了各种系统基础库以及第三方开源程序库支持,对应用层提供API接口,系统定制者和应用开发者可以基于Libraries层的API开发新的应用
(4)Applications层只要是实现具体的产品功能及交互逻辑,需要一些i系统基础库以及第三方库的支持,开发者可以开发实现自己的应用程序,提供系统各种能力给到最终用户
- sdk系统层次
- sdk启动流程
1.2 sdk开发流程
1.3 sdk目录介绍
//原始sdk目录
u-boot //uboot源码部分app
kernel //kernel源码部分
buildroot //buildroot源码部分,可定制根文件系统
device //目录存放板级配置以及一些预置文件、开机脚本等
external //存放sdk相关库以及工具源码
build.sh //为系统编译脚本,执行可进行sdk的完整编译
mkfirmware.sh //脚本可以对镜像文件进行打包,并拷贝至rockdev目录下
prebuilts //存放uboot、kernel编译使用的交叉编译工具链
rkbin //存放 Rockchip 平台一些关键性二进制文件,包括ddr.bin,miniloader.bin,bl31.bin,在 U-Boot 编译过程中会用到
rockdev //执行mkfirmware.sh会把系统编译生成的镜像,统一拷贝至rockdev目录下
tools //存放着windows以及Linux环境下的开发工具、调试工具、量产工具
docs //sdk提供的相关材料
distro
1.4 交叉工具链
uboot及kernel编译工具链
目录:prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux -gnu/bin/aarch64-linux-gnu-
版本:./aarch64-linux-gnu-gcc --version
aarch64-linux-gnu-gcc (Linaro GCC 6.3-2017.05) 6.3.1 20170404
Buildroot编译工具链
目录:buildroot/output/rockchip_rk3326_64·/host/bin
版本:./aarch64-linux-gcc --version
aarch64-linux-gcc.br_real (Buildroot 2018.02-rc3-00090-gf9fa48f94a-dirty) 6.5.0
(1)编译uboot、kernel与编译buildroot中各个软件包的工具链有所不同,版本有所区别
(2)RK3326的cpu为64位,在上述目录中有aarch64(64位目录),arm(32位目录)