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

GM3568JHF快速入门教程【二】FPGA+ARM异构开发板环境编译教程

SDK 可通过搭建好的 Docker 镜像环境进行编译。 具体参可考该部分文档内容。

1 Docker镜像环境编译SDK

1.1 SDK 自动编译命令

切换到 Docker 内需要编译的 SDK 根目录,全自动编译默认是 Buildroot, 可以通过设置环境变量 RK_ROOTFS_SYSTEM 指定不同 rootfs. 目前可设定三种系统:Buildroot、Debian、 Yocto。

#进入已经创建的指定容器中
sudo docker exec -it -w $cwd_contents $containerID /bin/bash
#$cwd_contents:容器内 SDK 根目录
#$containerID:容器ID#查询编译帮助
sudo ./build.sh -h#开启多线程(可选)
export MAKEFLAGS="-j4"    #4:线程数#指定 Debain 开启自动编译
sudo RK_ROOTFS_SYSTEM=debian ./build.sh
1.2 配置内核编译选项

自动编译开始后,会需要配置与开发板适配的内核编译选项,开发板使用的是RK3568芯片搭配DDR4,所以需要选择对应的编译项5,也可在自动编译前运行./build.sh lunch提前选择

1. rockchip_defconfig
2. rockchip_rk3566_evb2_lp4x_v10_32bit_defconfig
3. rockchip_rk3566_evb2_lp4x_v10_defconfig
4. rockchip_rk3568_evb1_ddr4_v10_32bit_defconfig
5. rockchip_rk3568_evb1_ddr4_v10_defconfig
6. rockchip_rk3568_evb8_lp4_v10_32bit_defconfig
7. rockchip_rk3568_evb8_lp4_v10_defconfig
8. rockchip_rk3568_pcie_ep_lp4x_v10_defconfig
Which would you like? [1]: 5

注意:如果出现找不到用户 ID 的报错,就在容器的 root 用户下创建该用户 ID ,创建完成后在创建的用户下重新执行 RK_ROOTFS_SYSTEM=debian ./build.sh 下面以创建用户 ID 为 1001 的用户为例

#新建组,添加用户并设置用户权限
groupadd newsgroup
useradd -M -u 1001 -g newsgroup newsperson
usermod -aG sudo newsperson
mkdir -p /home/newsperson
chown newsperson:newsgroup /home/newsperson
chmod 700 /home/newsperson
usermod -s /bin/bash newsperson#查询用户ID为 1001 的用户名
id 1001#切换用户
su - newsperson#再次执行自动编译
sudo RK_ROOTFS_SYSTEM=debian ./build.sh
1.3 拷贝文件

编译完成后,会将编译好的固件和打包成update.img的完整升级包会放置在output/firmware目录下,可将该目录下的文件拷贝至宿主机上,但由于该目录下的文件为软连接文件,所有需要用软连接的方式拷贝

#从 Docker 容器中拷贝文件至宿主机中
sudo docker cp --follow-link $CONTAINER:$Docker_PATH $Host_PATH
#$CONTAINER:容器的名称或 ID
#$Docker_PATH:Docker 容器中需要拷贝的文件路径
#$Host_PATH:宿主机中接受文件的路径#示例
sudo docker cp --follow-link 0370ec8f1fda:/home/hjf/SDK/output/firmware/update.img /home/ubuntu/directory

1.4 其他常用指令

#清理所有旧编译文件内容
sudo ./build.sh cleanall
http://www.dtcms.com/a/326901.html

相关文章:

  • 嵌入式硬件——ARM
  • Apache虚拟主机三种配置实战
  • 为什么灰度图用G(绿色)通道?
  • Gradient Descent for Logistic Regression|逻辑回归梯度下降
  • 物理服务器内存容量选择:大数据分析场景下的适配指南
  • 互连的带宽
  • 终端安全检测和防御技术
  • 2-1〔O҉S҉C҉P҉ ◈ 研记〕❘ 漏洞扫描▸理论基础与NSE脚本
  • Flutter path_provider的基本使用(读写文件)
  • Android12 Framework电话功能UI定制
  • Mac M1探索AnythingLLM+Ollama+知识库问答
  • Vue.js 样式绑定
  • 【Node.js从 0 到 1:入门实战与项目驱动】2.1 安装 Node.js 与 npm(Windows/macOS/Linux 系统的安装步骤)
  • 派聪明RAG知识库----关于elasticsearch报错,重置密码的解决方案
  • node.js简介
  • 【论文阅读】RestorerID: Towards Tuning-Free Face Restoration with ID Preservation
  • ARM芯片架构之CoreSight SoC-400 组件介绍
  • 高效解耦:自定义内核链表实现指南(简化版)
  • LLM智能:从语言模型到通用智能体的技术跃迁
  • Java多线程基础总结
  • Python类装饰器:优雅解决描述符属性命名难题
  • 内存作假常见方案可行性分析
  • 【15-多类别分类和多标签分类】
  • SSE流式输出分层与解耦、用户自动结束语错误处理
  • 基于FPGA的热电偶测温数据采集系统,替代NI的产品(一)FPGA 测温研究现状
  • 【Python修仙编程】(20) 参悟参数真谛,林羽内力大增
  • 前端工程化:pinia
  • 【Leetcode】随笔
  • 【MATLAB 2025a】安装离线帮助文档
  • 学习嵌入式之IMAX6ULL——GUN工具链+点灯+SDK开发裸机驱动