当前位置: 首页 > 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原始数据中提取特定…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

Docker拉取MySQL后数据库连接失败的解决方案

在使用Docker部署MySQL时&#xff0c;拉取并启动容器后&#xff0c;有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致&#xff0c;包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因&#xff0c;并提供解决方案。 一、确认MySQL容器的运行状态 …...

uni-app学习笔记三十五--扩展组件的安装和使用

由于内置组件不能满足日常开发需要&#xff0c;uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件&#xff0c;需要安装才能使用。 一、安装扩展插件 安装方法&#xff1a; 1.访问uniapp官方文档组件部分&#xff1a;组件使用的入门教程 | uni-app官网 点击左侧…...

Linux安全加固:从攻防视角构建系统免疫

Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...

算法—栈系列

一&#xff1a;删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...