请选择 进入手机版 | 继续访问电脑版
本帖最后由 风精灵 于 2025-6-6 10:06 编辑

ELF 2开发板资料包\02-Linux源代码\02-0 SDK源码\ELF2-linux-source.tar.bz2.0*SDK源码压缩包复制到Ubuntu开发环境的/home/elf/work/目录下,解压缩:
elf@ubuntu:~/work$ cat ELF2-linux-source.tar.bz2.0* | tar vxj
解压完成之后使用ls命令查看SDK源码目录:
图片1.png
一、SDK工程目录介绍
SDK源码解压后会有多个目录,各个目录及主要的文件说明如下:
目录
目录说明
app
存放上层应用 app,主要是 qcamera/qfm/qplayer/settings 等一些应用程序。
buildroot
基于 buildroot (2021.11) 开发的根文件系统。
debian
基于debian 10 开发的根文件系统,支持部分芯片。
device/rockchip/elf2
存放elf2配置和Parameter⽂件,以及一些编译与打包固件的脚本和预备文件。
docs
存放芯片模块开发指导文档、平台支持列表、芯片平台相关文档、Linux开发指南等。
IMAGE
存放每次生成编译时间、XML、补丁和固件目录。
external
存放第三方相关仓库,包括音频、视频、网络、recovery 等。
kernel
存放 kernel 5.10 开发的代码。
prebuilts
存放交叉编译工具链。
rkbin
存放 Rockchip 相关的 Binary 和工具。
rockdev
存放编译输出固件。
tools
存放 Linux 和 Windows 操作系统环境下常用工具。
u-boot
存放基于 v2017.09 版本进行开发的 uboot 代码。
yocto
基于 yocto gatesgarth 3.2 开发的根文件系统,支持部分芯片。

SDK的软件框图如下:
图片2.png
从下至上分为Bootloader、Linux Kernel、Libraries、Applications四个层次。各层次内容如下:
①Bootloader层主要提供底层系统支持包,如Bootloader、U-Boot、ATF相关支持。
②Kernel层主要提供Linux Kernel的标准实现,Linux也是一个开放的操作系统。Rockchip平台的Linux核心为标准的Linux4.4/4.19/5.10内核,提供安全性,内存管理,进程管理,网络协议栈等基础支持;主要是通过 Linux 内核管理设备硬件资源,如 CPU调度、缓存、内存、I/O 等。
③Libraries层对应一般嵌⼊式系统,相当于中间件层次。包含了各种系统基础库,及第三方开源程序库支持,对应用层提供API接口,系统定制者和应用开发者可以基于Libraries层的API开发新的应用。
④Applications层主要是实现具体的产品功能及交互逻辑,需要⼀些系统基础库及第三方程序库支持,开发者可以开发实现自己的应用程序,提供系统各种能力给到最终用户。

二、内核目录介绍
从上面的介绍中我们可以了解到,内核其实就是SDK源码中的一部分,接下来咱们来了解一下内核源码中一些比较常用的文件夹。
目录
目录说明
arch/
可支持的不同CPU架构下的核心代码。例如arm就是arm架构相关的代码,arm目录下包括很多处理器平台,也包括了启动代码boot、架构相关配置文件configs、内核相关文件kernel、内存管理mm和库lib等
block/
块设备相关通用函数
crypto/
常见的加密算法相关代码
Documentation/
说明文档,对每个目录和模块有详细说明
drivers/
设备驱动程序,其中每一个目录都代表一种设备驱动
fs/
可支持的文件系统相关代码
include/
通用的头文件
init/
内核初始化核心代码
ipc/
内核进程间通信相关代码
kernel/
内核核心代码,目录下实现了多数linux系统的内核函数
lib/
内核共用的函数库
mm/
内存管理相关代码
net/
网络相关代码
sample/
示例代码
scripts/
用于内核配置的脚本文件,用于实现内核配置的图形界面
security/
安全性相关,支持安全操作系统相关代码。包括SELinux、Apparmor、Smack和TOMOYO Linux安全模块。
sound
音频相关代码
tools/
常用工具代码
usr/
内核启动相关代码
virt/
内核虚拟化相关代码

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Powered by Discuz! X3.5  © 2001-2013 Comsenz Inc.