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

2024-08-30 01:28

本文主要是介绍驱动(RK3688S)第一课时:认识驱动和环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 一、开发板介绍
  • 1、芯片厂家介绍
    • 2、开发板资源
  • 二、瑞芯微 SDK 的 框架
    • 1、SDK 包的目录结构
    • 2、瑞芯微原厂支持一些库
  • 3、瑞芯微烧写工具的使用

一、开发板介绍

什么是驱动?
驱动就是让硬件工作起来这么一个东西,你写代码去驱动对应的硬件,比如 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)

这篇关于驱动(RK3688S)第一课时:认识驱动和环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1119404

相关文章

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061