当前位置: 首页 > news >正文

【rk3568】01-环境搭建

文章目录

  • 1.开发板介绍
    • 1.1相关资源:
    • 1.2接口布局
    • 1.3屏幕
    • 1.4核心板引脚可复用资源
  • 2.环境搭建
    • 2.1安装依赖包
    • 2.2git配置
    • 2.3安装sdk
    • 2.4sdk介绍
    • 2.5sdk编译
  • 3.镜像介绍

1.开发板介绍

开发板atk-rk3568开发板
eMMC64G
LPDDR44G
显示屏5.5寸mipi
u-boot 2017.09
kernel4.19

1.1相关资源:

cpu
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2接口布局

在这里插入图片描述在这里插入图片描述

1.3屏幕

在这里插入图片描述

1.4核心板引脚可复用资源

在这里插入图片描述

2.环境搭建

ATK-DLRK3568开发板使用的RK3568芯片为例,瑞芯微提供了全面的Linux SDK 包,Linux SDK 包主要包含了:
 app:存放上层应用 app,包括 Qt 应用程序,以及其它的 C/C++应用程序。
 buildroot:基于 buildroot 开发的根文件系统。
 debian:基于 Debian 开发的根文件系统。
 device/rockchip:存放各芯片板级配置文件和 Parameter 文件,以及一些编译与打包固件的脚本和预备文件。
 docs:存放芯片模块开发指导文档、平台支持列表、芯片平台相关文档、Linux 开发指南等。
 external:存放所需的第三方库,包括音频、视频、网络、recovery 等。
 kernel:Linux 4.19 版本内核源码。
 prebuilts:存放交叉编译工具链。
 rkbin:存放 Rockchip 相关的 Binary 和工具。
 rockdev:存放编译输出固件,编译 SDK 后才会生成该文件夹。
 tools:存放 Linux 和 Windows 操作系统环境下常用的工具,包括镜像烧录工具、SD 卡升级启动制作工具、批量烧录工具等,譬如前面给大家介绍的 RKDevTool 工具以及Linux_Upgrade_Tool 工具在该目录下均可找到。
 u-boot:基于 v2017.09 版本进行开发的 uboot 源码。
 yocto:基于 Yocto 开发的根文件系统。

2.1安装依赖包

sudo apt-get update
sudo apt-get install curl git ssh make gcc libssl-dev liblz4-tool expect -y
sudo apt-get install g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison -y
sudo apt-get install flex fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler python3-pip -y
sudo apt-get install libncurses-dev python3-pyelftools vim mtd-utils  -y#安装python2
curl -O https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz
sudo tar -xf Python-2.7.18.tar.xz -C /usr/local/
cd /usr/local/Python-2.7.18
./configure
make
sudo make install 
#sudo apt-get install  python2.7 python-pyelftools -y  
#sudo rm -rf /usr/bin/python
#sudo ln -s /usr/bin/python2 /usr/bin/pythonmkdir ~/bin
export PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo
chmod a+x ~/bin/repo

2.2git配置

git config --global user.name "your name"
git config --global user.email "your email

2.3安装sdk

mkdir ~/rk3568_linux_sdk
tar xvf atk-rk3568_linux_release_v1.0_20230620.tgz -C ~/rk3568_linux_sdk
tar -xzf dl.tgz -C ~/rk3568_linux_sdk/buildroot/	#第三方软件包
cd ~/rk3568_linux_sdk/
python3 .repo/repo/repo sync -l -j10realpath .repo/manifests/rk3568_linux_release.xml		#查看sdk atk版本
ls .repo/manifests/rk356x_linux/rk356x_linux_release*  	#在 SDK 源码根目录下,查询当前 SDK 的 RK 版本

2.4sdk介绍

SDK 软件框图从下至上分为 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 层主要是实现具体的产品功能及交互逻辑,需要一些系统基础库及第三方
程序库支持,开发者可以开发实现自己的应用程序,提供系统各种能力给到最终用户。
在这里插入图片描述

2.5sdk编译

./build.sh lunch	     	 #然后输入3
./build.sh all				 #首次编译,需要全部编译
./build.sh					 #全部编译+打包	
./build.sh firmware  		 #镜像打包到 SDK/rockdev 目录
./mkfirmware.sh      		 #或者直接执行 SDK 源码根目录下的./mkfirmware.sh 脚本./build.sh uboot		# 单独编译 U-Boot
./build.sh kernel		# 单独编译 Kernel
./build.sh modules	# 编译 Linux 内核源码,包括内核设备树、内核模块
./build.sh buildroot	#单独编译 rootfs
./build.sh recovery	# 单独编译 recovery# 指定编译 buildroot 根文件系统 可以通过 环 境 变 量 RK_ROOTFS_SYSTEM 指 定 需 要 编 译 的 rootfs
(yocto/debian/buildroot):
export RK_ROOTFS_SYSTEM=buildroot
./build.sh rootfs./build.sh updateimg	#打包成 update.img 镜像(将 uboot.img、boot.img、MiniLoaderAll.bin、parameter.txt、misc.img、rootfs.img、
oem.img、userdata.img、recovery.img 等)打包成一个 update.img 固件
./build.sh cleanall	# 清理 uboot、kernel、buildroot(rootfs、recovery)。

在这里插入图片描述

3.镜像介绍

uboot.img
uboot.img 是一种 FIT 格式镜像,它由多个镜像合并而成,其中包括
trust 镜像(ARM Trusted Firmware + OP-TEE OS)、u-boot 镜像、u-boot dtb;编译 U-Boot 时会将这些镜像打包成一个 uboot.img。uboot.img 会烧录到开发板 uboot 分区
boot.img
boot.img 也是一种 FIT 格式镜像,它也是由多个镜像合并而成,其中包括内核镜像、内核 DTB、资源镜像 resource.img。boot.img 会烧录到开发板 boot 分区
MiniLoaderAll.bin
该镜像是运行在 RK3568 平台 U-Boot 之前的一段 Loader 代码(也就是比 U-Boot 更早阶段的 Loader),MiniLoaderAll.bin 由 TPL 和 SPL两部分组成, TPL 用于初始化 DDR,运行在 SRAM;而 SPL 运行在DDR,主要负责加载、引导 uboot.img。
misc.img 包含 BCB(Bootloader Control Block)信息,该镜像会烧写到开发板misc 分区。misc 分区是一个很重要的分区,其中存放了 BCB 数据块,主要用于Android/Linux 系统、U-Boot 以及 recovery 之间的通信
oem.img
给厂家使用,用于存放厂家的 APP 或数据,该镜像会烧写至开发板oem 分区,系统启动之后会将其挂载到/oem 目录。
parameter.txt
一个 txt 文本文件,是 RK3568 平台的分区表文件(记录分区名以及每个分区它的起始地址、结束地址);烧写镜像时,并不需要将parameter.txt 文件烧写到 Flash,而是会读取它的信息去定义分区。
recovery.img
recovery 模式镜像,recovery.img 用于进入 recovery 模式,recovery.img 会烧录到开发recovery 分区。recovery 模式是一种用于对设备进行修复、升级更新的模式。recovery.img 也是 FIT 格式镜像,也是由多个镜像合并而成,其中包括ramdisk(进入 recovery 模式时挂载该根文件系统)、内核镜像(进入recovery 模式时启动该内核镜像)、内核 DTB 以及 resource.img。rootfs.img
正常启动模式下对应的根文件系统镜像,包含有大量的库文件、可执行文件等。rootfs.img 会烧录到开发板 rootfs 分区
userdata.img
给用户使用,可用于存放用户的 App 或数据;该镜像会烧写至开发板 userdata 分区,系统启动之后,会将其挂载到/userdata 目录

参考:

http://www.openedv.com/docs/boards/arm-linux/RK3568Linux.html
http://www.openedv.com/docs/boards/arm-linux/RK3568Linuxhxb.html

相关文章:

【rk3568】01-环境搭建

文章目录 1.开发板介绍1.1相关资源:1.2接口布局1.3屏幕1.4核心板引脚可复用资源 2.环境搭建2.1安装依赖包2.2git配置2.3安装sdk2.4sdk介绍2.5sdk编译 3.镜像介绍 1.开发板介绍 开发板:atk-rk3568开发板 eMMC:64G LPDDR4:4G 显示屏…...

编程笔记 html5cssjs 036 CSS概述

编程笔记 html5&css&js 036 CSS概述 一、什么是 CSS?二、样式非常重要三、CSS 语法四、CSS 注释五、示例 CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式…...

Vue入门七(Vuex的使用|Vue-router|LocalStorage与SessionStorage和cookie的使用)

文章目录 一、Vuex1)理解vuex2)优点3)何时使用?4)使用步骤① 安装vuex② 注册vuex③ 引用vuex④ 创建仓库Store五个模块介绍 5)基本使用 二、Vue-router三、LocalStorage与SessionStorage、cookie的使用 一…...

多级缓存架构(三)OpenResty Lua缓存

文章目录 一、nginx服务二、OpenResty服务1. 服务块定义2. 配置修改3. Lua程序编写4. 总结 三、运行四、测试五、高可用集群1. openresty2. tomcat 通过本文章,可以完成多级缓存架构中的Lua缓存。 一、nginx服务 在docker/docker-compose.yml中添加nginx服务块。…...

写点东西《Docker入门(上)》

写点东西《Docker入门(上)》 环境变量 Docker 镜像 Docker CMD 与 ENTRYPOINT 有什么区别 Docker 中的网络: Docker 存储: Docker 是一个工具,允许开发人员将他们的应用程序及其所有依赖项打包到一个容器中。然后&…...

chatgpt实用技巧之二反问式提示

大家好,今天跟大家讲实用gpt的小技巧二、反问式提示 有时候不知道怎么给 GPT 提示词,这时候,就可以反问 GPT 如何更好地给提示词。如图片所示 更详细内容可以看下这篇: 按照 GPT 给出的:故事设定角色故事发展主题结局…...

【数据结构和算法】奇偶链表

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一:分离节点后合并 三、代码 3.1 方法一:分离节点后合并 四、复杂度分…...

MVC框架

文章目录 JSP 和 ServletMVC 的演进1. JSP Model 12. JSP Model 23. MVC 的一般化4. MVC 的变体 总结 JSP 和 Servlet 如果你有使用 Java 作为主要语言开发网站的经历,那么你一定听过别人谈论 JSP 和 Servlet。其中,Servlet 指的是服务端的一种 Java 写…...

学习笔记之——3D Gaussian Splatting及其在SLAM与自动驾驶上的应用调研

之前博客介绍了NeRF-SLAM,其中对于3D Gaussian Splatting没有太深入介绍。本博文对3D Gaussian Splatting相关的一些工作做调研。 学习笔记之——NeRF SLAM(基于神经辐射场的SLAM)-CSDN博客文章浏览阅读967次,点赞22次&#xff0…...

Github Copilot 的使用方法和快捷键

Github Copilot是一个基于人工智能技术的代码自动补全工具,它可以为开发者提供实时的代码建议和自动生成代码片段。本文将详细介绍如何安装、设置和使用Github Copilot,并提供一些常用的快捷键来提高开发效率。 1. 安装和设置 1.1 下载并安装VS Code …...

开源iMES工厂管家 - 详细安装部署指南(图解)- 全网独稿

目录 一、服务器环境: 二、部署构成总览: 三、下载 node-v16.17.1-win-x64:Index of /download/release/v16.17.1/ 四、绿色安装 node-v16.17.1-win-x64 五、配置环境变量 六、检查 node-v16.17.1-win-x64 是否成功 七、执行命令组,安装组库与各种依赖 vue3环境配置…...

Codeforces Round 919 (Div. 2)

Problem - A - Codeforces n个约束条件 a x 求出满足n个约束条件的整数的个数 大于等于x&#xff0c;取最大的 小于等于x&#xff0c;取最小的 然后不等于x的&#xff0c;记录在区间范围内的个数&#xff0c;减去这些 #include<bits/stdc.h> #define endl \n #define …...

面向经验丰富的开发人员的最佳 Linux 发行版

在深入研究最佳 Linux 发行版之前&#xff0c;让我们回顾一下历史。到 2021 年&#xff0c;Linux 操作系统已经有 30 年的历史了&#xff0c;从作为开发者 Linus Torvalds 的个人项目开始&#xff0c;它已经走过了很长一段路。最初发布时&#xff0c;其源代码被分发给用户&…...

Rust-借用检查

Rust语言的核心特点是&#xff1a;在没有放弃对内存的直接控制力的情况下&#xff0c;实现了内存安全。 所谓对内存的直接控制能力&#xff0c;前文已经有所展示&#xff1a;可以自行决定内存布局&#xff0c;包括在栈上分配内存&#xff0c;还是在堆上分配内存&#xff1b;支…...

xcode安装及运行源码

抖音教学视频 目录 1、xcode 介绍 2、xcode 下载 3、xocde 运行ios源码 4、快捷键 1、xcode 介绍 Xcode 是运行在操作系统Mac OS X上的集成开发工具&#xff08;IDE&#xff09;&#xff0c;由Apple Inc开发。Xcode是开发 macOS 和 iOS 应用程序的最快捷的方式。Xcode 具有…...

x-cmd pkg | czg - git commit 智能生成工具

目录 简介首次用户功能特点竞品和相关作品进一步探索 简介 czg 源于 commitizen/cz-cli 交互插件中 cz-git 的延伸项目&#xff0c;重新使用 TypeScript 编写的零依赖独立的 Node.js 命令行工具。旨在使用交互友好的方式&#xff0c;辅助用户生成规范的 git commit message 约…...

Go的并发练习题目

经典并发题目 现在有4个协程&#xff0c;分别对应编号为1,2,3,4,每秒钟就有一个协程打印自己的编号&#xff0c;要求编写一个程序&#xff0c;让输出的编号总是按照1,2,3,4,1,2,3,4这样的规律一直打印下去 type Token struct { }func newWorker(id int, ch chan Token, nextC…...

Python 网络编程之粘包问题

【一】粘包问题介绍 【1】粘包和半包 粘包&#xff1a; 定义&#xff1a; 粘包指的是发送方发送的若干个小数据包被接收方一次性接收&#xff0c;形成一个大的数据包。原因&#xff1a; 通常是因为网络底层对数据传输的优化&#xff0c;将多个小数据包组合成一个大的数据块一次…...

旧衣回收小程序搭建:降低企业成本,提高回收效率!

在人们环保意识提升下&#xff0c;旧衣回收行业受到了大众的关注&#xff0c;同时旧衣回收具有门槛低、利润大的优势。在我国&#xff0c;回收行业不仅帮助普通人就业获利&#xff0c;还对环保做出了较大贡献。因此&#xff0c;旧衣回收行业成为了当下的热门商业模式&#xff0…...

Jmeter后置处理器——JSON提取器

目录 1、简介 2、使用步骤 1&#xff09;添加线程组 2&#xff09;添加http请求 3&#xff09; 添加JSON提取器 1、简介 JSON是一种简单的数据交换格式&#xff0c;允许互联网应用程序快速传输数据。JSON提取器可以从JSON格式响应数据中提取数据、简化从JSON原始数据中提取特定…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...