第二章 SDK包的使用传统的嵌入式Linux驱动开发主要就是三大巨头uboot、Linux kernel和根文件系统(rootfs)比如我们已经推出的I.MX6U和STM32MP157这两款开发板。I.MX6U和STM32MP157这两款芯片都比较简单算是很基础的Crotex-A内核MPU所以只需要搞定三巨头就可以。但是随着芯片性能的不断提升比如加入硬件视频编解码、NPU、GPU、ISP等外设以后单纯的依靠三巨头就不能完全发挥出芯片的性能。因为不同的半导体厂商其外设实现不同因此对应的驱动也不同比如硬件视频编解码每个厂商都有自己的驱动库并且他们会向用户提供一套API。用户要使用这些API编写自己的应用程序就需要链接到这些库而且也可能需要其他的第三方库支持。总之就是各种交织各种依赖已经不单单是那三巨头的事情了。如果要靠用户去解决这些依赖是不现实的所以半导体厂商会将这些东西打包到一起提供给用户也就是SDK包提供的SDK包有两种一种是安卓SDK另一种是Linux SDK。本教程是Linux驱动开发所以我们在这个文档是基于Linux SDK开发。以我们使用的ATK-DLRK3568开发板使用的RK3568芯片为例瑞芯微提供了全面的Linux SDK包Linux SDK包主要包含了app存放上层应用app包括Qt应用程序以及其它的C/C应用程序。buildroot基于buildroot开发的根文件系统。debian基于Debian开发的根文件系统。device/rockchip存放各芯片板级配置文件和Parameter文件以及一些编译与打包固件的脚本和预备文件。docs存放芯片模块开发指导文档、平台支持列表、芯片平台相关文档、Linux开发指南等。external存放所需的第三方库包括音频、视频、网络、recovery等。kernelLinux 4.19版本内核源码。prebuilts存放交叉编译工具链。rkbin存放Rockchip相关的Binary和工具。rockdev存放编译输出固件编译SDK后才会生成该文件夹。tools存放Linux和Windows操作系统环境下常用的工具包括镜像烧录工具、SD卡升级启动制作工具、批量烧录工具等譬如前面给大家介绍的RKDevTool工具以及Linux_Upgrade_Tool工具在该目录下均可找到。u-boot基于v2017.09版本进行开发的uboot源码。yocto基于Yocto开发的根文件系统。所以本教程包括我们其他的RK3568 Linux教程资料都是跟这个LinuxSDK包打交道。关于SDK包更加详细的介绍请参考资料开发板光盘10、用户手册【正点原子】ATK-DLRK3568嵌入式Linux统开发手册.pdf中的第四章节。