驱动(RK3688S)第一课时:认识驱动和环境搭建

一、开发板介绍

什么是驱动?
驱动就是让硬件工作起来这么一个东西,你写代码去驱动对应的硬件,比如 CH340 你
为什么要安装他?你不安装他你的串口就无法工作,当你安装了对应的 CH340 驱动,那么
在你插上 USB 转串口的时候,就去调用对应的驱动,那么这个硬件就可以工作起来,还有
你安装好 window 操作系统之后,你需要干嘛?安装各种驱动,显卡 声卡 网卡等各种驱动,
你不安装对应的硬件就无法工作,所以这就是驱动。驱动就是给硬件打交道的。

目前市面上见的最多芯片是
cortex-A
特点:处理能力是极强 — 主要就是应用于高端的电子产品
手机 平板
cortex-M
特点:控制能比较强 ---- 主要就是中低端的电子产品
空调 洗衣机 冰箱 智能马桶 扫地机器人等
cortex-R
特点:实时能力比较强 — 反应极快 — 一般是军工企业使用

1、芯片厂家介绍

本次学习的驱动的芯片是由瑞芯微生产的RK3688S,是RK3688的一种阉割版本。是一个国产的公司目前在 AI 处理和音视频处理方面还是比较领先,目前最新的开发板有RK3588、RK3566 等不同的系类。
在这里插入图片描述
瑞芯微官网:瑞芯微官网

2、开发板资源

RK3588的主要特性:
在这里插入图片描述
详细解释:
CPU: 八核 64 位大小核架构,4Cortex-A76 + 4Cortex-A55(共八个)
GPU
ARM Mali-G610 MC4
OpenGL ES 1.1/2.0/3.1/3.2
OpenCL 1.1,1.2,2.0
内嵌高性能 2D 图像加速模块
NPU
6TOPS 算力,三核架构,支持 int4/int8/int16/FP16/BF16/TF32
多媒体
• 支持 H.265/H.264/AV1/VP9/AVS2 视频解码, 最高 8K60FPS
• 支持 H.264/H.265 视频编码, 最高 8K30FPS
显示
• 支持 eDP/DP/ HDMI2.1/MIPI 多种显示接口
• 支持多屏异显, 最高 8K60FPS
视频输入
• 32MP ISP,支持 HDR 和 3DNR
• 支持多摄像头输入 (44lanes or 42lanes+2*4Lanes) MIPI CSI-2 and DVP 接口
• 支持 HDMI2.0 输入, 最高 4K60FPS
高速接口
• 支持 PCIe3.0/PCIe2.0/SATA3.0/RGMII/TYPE-C/USB3.1/USB2.0
RK3588S 他是 RK3588 的阉割版本

二、瑞芯微 SDK 的 框架

本次开发全部都是在虚拟机上完成的, 我们在虚拟机安装Linux ,安装其 ubuntu版本,因为SDK比较大,所以内存给到170G。SDK包在购买芯片时会给的,然后移植到ubuntu中,进行解压即可。
在这里插入图片描述

1、SDK 包的目录结构

SDK 包的目录结构
app:里边存放是瑞芯微自己开发板的一些上传的软件,包括里边有一些 LVGL
device:设备,一般存放瑞芯微的对应设备的各种配置文件
rockchip/芯片支持的配置文件/脚本
rockchip/common:
原厂所编写的通用的编译脚本
这些脚本原则上你不需要研究和理会
rockchip/rk3588:
我们芯片对应的配置文件夹
当前我们开发板所用的配置文件:
BoardConfig-rk3588s-evb1-lp4x-v10-xyd.mk yyt)这个里面指示了编译整个 SDK 的
各种对应配置文件
export RK_JOBS=12:这个是指示了一会编译 SDK 所用的最大线程
kernel:咱们使用的内核 — 他是操作系统的核心 — 后期会讲
咱们目前使用的内核版本是 5.10.x 版本,算是比较高的了。
prebuilts:这里面存放的是瑞芯微集成在 SDK 的交叉编译器
目前计算机他是分为两个结构
X86 ---- 他是目前所有计算机的结构
但是你做嵌入式开发板使用的开发板都是 ARM 结构的
那么你想一想,你在 X86 架构上使用 GCC 编译的二进制文件能在 ARM 上跑吗?
此时就出现了,一个工具,交叉编译工具,他的作用就是使你在 X86 上编译的代
码翻译成 ARM 结构的,那么你的这个二进制文件就可以在开发板上运行了,但
是就不能在 X86 上运行了。
tools:
原厂带的一些工具
一般使用 windows/DriverAssitant_v5.12.zip
这是瑞芯微的驱动,类似 CH340 驱动
在这里插入图片描述
RKDevTool_Release_v2.96.zip
这个是原厂提供的烧写工具
在这里插入图片描述
在这里插入图片描述
buildroot:
他是你做驱动开发比较重要的一个目录文件
他也是你编译之后占用你系统空间最大的一个目录,没有之一。
他里边包括了驱动开发发的三大巨头.
uboot kernel rootfs
buildroot 可以做到,一键编译,就是最终生成一个 Linux 镜像文件。
就是 Linux 操作系统,一个完整操作系统包括了,uboot kernel rootfs

docs:这个是原厂提供的各种各样的开发协助文档
他里边存储各种你需要使用的开发板文件
external:
瑞芯微原厂支持一些外扩的包
libmail->原厂 GPU 支持包
mpp->原厂提供的音视频开发接口包
linux-rga->原厂提供的处理 视频的 旋转 裁剪 缩放 …
gstreamer-rockchip:
原厂适配好一个音视频的播放器
rknpu2:
搞 AI用的比较多
envsetup.sh ---- 他是一个配置脚本 ---- 就是别人提前写好的脚本,你编译之前需要做
一个适配,你就可以执行这个脚本,他里边存在了很多不同的开发板的配置选项。

2、瑞芯微原厂支持一些库

编译前需要安装一些编译所依赖的库
如果不安装编译报错且提醒你安装
sudo apt-get install git ssh make gcc libssl-dev liblz4-
tool expect g++ patchelf chrpath gawk texinfo chrpath diffstat
binfmt-support qemu-user-static live-build bison flex fakeroot
cmake gcc-multilib g+±multilib python2 unzip device-tree-compiler
ncurses-dev python3 python libgmp-dev libmpc-dev net-tools -y

SDK 在编译完成后会生成两个文件夹:
1: rockdev
2: IMAGE:
这个文件夹是镜像文件夹
是最终生成的镜像合集
你每次编译。每次生成的镜像都会在此处保存!
RK3588S-YYT_20240813.0925_RELEASE_TEST/IMAGES/
EG 每次编译尽量把你的上次编译生成 IMAGE 给删除
不然空间会越来越小,每次镜像编译后需要占据 4GB

3、瑞芯微烧写工具的使用

配置开发板 ---- 编译 SDK 包之前你需要做配置选择
1、先找到RK3588S中的 envsetup.sh
在这里插入图片描述
2、 ./envsetup.sh
选择我们对应的芯片在这里插入图片描述
./build.sh lunch
在这里插入图片描述
2: 单独编译
./build.sh uboot ---- 单独编译 uboot 的 — uboot.img
./build.sh kernel — 单独编译内核 — boot.img / zboot.img
./build.sh rootfs — 单独编译文件系统 — rootfs.img
3: 整体编译
./build.sh ---- 第一次编译的时间会很长,大概需要 2-3 个小时
编译需要联网 — 他需要联网下载他所需要的一些第三方的库

1: 在 Ubuntu/Linux 下调试 ADB 设
需要安装 ADB 服务
sudo apt-get install adb
在这里插入图片描述
2: 通过 ADB 调试我们的开发板了
学习 ADB 三个指令:
adb shell->把当前终端当作 开发板终端
adb push->推入 Ubuntu 文件 到开发板内部
adb push Ubuntu 文件路径 开发板路径
adb pull->从开发板拉出来文件
adb pull 拉出来哪个文件(开发板) 拉到哪里(Ubuntu)

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值