RK3308--固件编译

2023-05-16

快捷路径

相关路径:cd work/hxy/RK3308/sdk-1.5/

添加依赖包

若编译遇到报错,可以视报错信息,安装对应的软件包。当时下面一大段依赖包直接添加时,不能实现(可能是因为中间有换行符),后面就一个一个添加了

推荐Linux服务器系统版本

Ubuntu 16.04.2 LTS Linux version 4.4.0-62-generic (buildd@lcy01-30) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017

kernel及u-boot编译所需

apt与apt-get的区别
#sudo apt-get update
#sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip device-tree-compiler liblz4-tool

buildroot编译所需

#sudo apt-get install libfile-which-perl sed make binutils gcc g++ bash patch gzip bzip2 perl tar cpio python unzip rsync file bc libmpc3 git repo texinfo pkg-config cmake tree texinfo

交叉编译工具链介绍

u-boot 及 kernel 编译工具链:
路径:Y:\hxy\RK3308\sdk-1.5\prebuilts\gcc\linux-x86\aarch64\gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu\aarch64-linux-gnu
对应版本:gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)

buildroot 编译工具链:
路径:Y:\hxy\RK3308\sdk-1.5\buildroot\output\rockchip_rk3308_release\host\bin

具体编译链:aarch64-rockchip-linux-gnu-g++(从LED控制Demo那确定的)

手动编译

u-boot 编译

查看设备是 64bit 还是 32bit 用指令:uname -a

# uname -a
Linux rockchip 4.4.143 #11 SMP PREEMPT Thu Feb 17 16:05:42 CST 2022 aarch64 GNU/Linux

RK3308 64bit 编译:
#cd u-boot
#./make.sh evb-rk3308

RK3308 32bit 编译:
#./make.sh evb-aarch32-rk3308

编译完,会生成 trust.imgrk3308_loader_v2.05.133.binuboot.img 三个文件

kernel编译

主板丝印:RK_EVB_RK3308_DDR3P116SD4_V13
小板丝印:RK_EVB_DMIC_PDM_6C70_v11_20180427J

RK3308 EVB V13 开发板搭配不同的麦克风阵列小板,需要选用不同的板级配置文件,区分如下:
在这里插入图片描述
路径:Y:\hxy\RK3308\sdk-1.5\kernel\arch\arm64\boot\dts\rockchip

相关文件:rk3308-evb-dmic-pdm-v13.dts(PDM 数字麦克风)

编译指令:编译完成后,在 kernel 根目录,生成 boot.img 镜像文件.
#cd kernel
#make rk3308_linux_defconfig
#make rk3308-evb-dmic-pdm-v13.img

buildroot编译

客户按实际编译环境配置好编译依赖后,按照以下步骤配置完后,执行 make 即可
#source buildroot/build/envsetup.sh

Top of tree: /home/luckystar/work/hxy/RK3308/sdk-1.5

You're building on Linux
Lunch menu...pick a combo:

 - rockchip_rk3308_64_dueros
 - rockchip_rk3308_recovery
 - rockchip_rk3308_release 
Which would you like? [0]:

选择对应序号,如31或者30(选择30是因为编译31生成固件的时候需要一个recovery.img)

#makemake 出来后能在 buildroot/output 目录下看到)

#./mkfirmware.sh(完成编译后执行 SDK 根目录下的 mkfirmware.sh 脚本生成固件)所有烧写所需的镜像将都会拷贝于 rockdev 目录,如下:

  • boot.img
  • misc.img
  • parameter.txt
  • recovery.img
  • MiniLoaderAll.bin(即 rk3308_loader_v2.05.133.bin)
  • oem.img
  • userdata.img
  • rootfs.img
  • trust.img
  • uboot.img

自动编译

为了提高编译的效率,降低人工编译可能出现的误操作,该 SDK 中集成了全自动化编译脚本,方便固件编译、备份,在控制台上使用以下命令:./build.sh

路径:

  • Y:\hxy\RK3308\sdk-1.5\device\rockchip\common(全自动化编译脚本原始文件)
  • Y:\hxy\RK3308\sdk-1.5\device\rockchip\rk3308

文件:

  • build.sh
  • BoardConfig.mk(可以对脚本中特定的变量进行修改)

模块部分编译

为了方便开发调试,全自动化编译脚本也支持单独模块进行编译,方便模块调试,可指定并编译部分模块。模块部分编译可参见使用说明:

./build.sh -h
====USAGE: build.sh modules====
uboot     -build uboot
kernel    -build kernel
rootfs    -build default rootfs, currently build buildroot as default
buildroot -build buildroot rootfs
yocto     -build yocto rootfs, currently build ros as default
ros       -build ros rootfs
debian    -build debian rootfs
pcba      -build pcba
recovery  -build recovery
all       -build uboot, kernel, rootfs, recovery image
cleanall  -clean uboot, kernel, rootfs, recovery
firmware  -pack all the image we need to boot up system
updateimg -pack update image
save      -save images, patches, commands used to debug
default   -build all modules

例如单独编译 kernel,只需要执行以下命令:./build.sh kernel

修改BoardConfig.mk

相关路径:Y:\hxy\RK3308\sdk-1.5\device\rockchip\rk3308

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RK3308--固件编译 的相关文章

  • ArduPilot-sitl仿真-Mission Planner联合显示

    ArduPilot sitl仿真 Mission Planner联合显示 To start the simulator first change directory to the vehicle directory For example
  • Ros_PX4_Mavros从零入门--哪些坑

    写在前面的话 xff1a 一定要确保mavros安装成功 我在安装mavros的时候采用的是官网默认的安装方式 xff0c 期间一定有Error出现 xff0c 没有成功 xff0c 导致后面需要补充安装一些东西 验证是否安装成功 xff0
  • PX4-mavros之Roslaunch使用 及流程介绍

    首先在Ros工程目录src下 xff0c 创建新的功能包 使用命令 catkin create pkg px4 launch 注意此处不需要添加任何依赖了 然后建立一个launch文件夹 xff0c 如下图所示 2 改写launch文件即可
  • 聊一聊那些应该了解的大佬(飞控,人工智能方向)

    写在前面的话 xff1a 以下内容与图片大多来自于网络 xff0c 如有侵权 xff0c 请告知我进行修改 部分评论仅为个人观点 xff0c 无人机方面大牛很多 xff0c 无法一一评说 xff0c 在此随意发挥 也欢迎各位看官补充完善 R
  • ArduPilot+mavros+gazebo+QGC联合仿真初体验

    首先给出最终效果图 xff1a 实现内容与PX4官网代码功能类似 xff0c 四旋翼飞机自动起飞至2 5m高度 xff0c 悬停一定时间 xff0c 然后自主降落 记录如下几个需要注意的地方 xff1a 一共使用到三个文件夹 xff0c 其
  • ArduPilot姿态控制方法解析---(倾转分离)

    先给出一些预备知识 xff1a 欧拉角 xff1a 即所谓的Roll Pitch Yaw 而事实上 xff0c 根据其定义 xff0c 欧拉角的具有不同的表示 存在先绕哪个轴 xff0c 后绕哪个轴转的差别 xff08 将旋转分解成绕三个轴
  • C中main函数解析

    参考链接 main函数不同写法 以下为main函数的6种不同写法 xff1a span class token function main span span class token punctuation span span class
  • ArduPilot姿态环控制-----传感器初始化

    参考链接 xff1a https blog csdn net lixiaoweimashixiao article details 80540295 首先我们假定从void AP Vehicle setup 开始 xff0c 这里是飞控所有
  • ArduPilot飞行前检查——PreArm解析

    ArduPilot飞行前检查 主要包括两个部分 1 初始化中遥控器输入检查 xff1b 2 1Hz解锁前检查 附 xff1a 显示地面站信息 参考文章 xff1a Ardupilot Pre Arm安全检查程序分析 1 初始化中遥控器输入检
  • ROS_PX4_gazebo学习记录

    在官方程序上 xff08 PX4 wiki上为offboard起飞到2m高度 xff09 进行更改 xff0c 实现首先起飞到固定点 xff08 x 61 1 y 61 2 z 61 5 然后按照给定角度飞行 补充 xff1a 最终实现效果
  • Rospy初次使用记录-定点飞行

    由于接触到pytorch xff0c 所以用python完成与ROS的通信 xff0c 下面例子为从程序中摘出来的一部分 xff0c 用到了ROS消息的订阅与发布 xff0c 服务的通信 xff0c 可以作为参考使用 xff1a span
  • 四旋翼飞行器数学模型

    最近接触到四旋翼无人机的位置控制方法 xff0c 就又了解了一下四旋翼飞机的数学模型 xff0c 现总结如下 xff1a 位置环 xff08 均定义在惯性坐标系下 xff09 P
  • 基于ROS与optitrack的四旋翼飞机开发流程

    本文将一些注意点记录下来 xff0c 适合于开发调试 xff1a 目前只是分段调试通了 xff0c 带后续联合开发的时候在来补充还有没有什么注意点 xff08 过程也算麻烦 xff0c 也算不麻烦 xff09 xff1b xff32 xff
  • ROS_调试(三) 打印输出

    ROS INFO 采用类似C语言的形式 ROS DEBUG ROS DEBUG STREAM 采用类似C 43 43 语言的形式打印 ROS DEBUG STREAM NAMED ROS DEBUG STREAM THROTTLE NAME
  • px4调试bug--添加mavlink_log_info信息

    写在前面的话 有一阵子没有看px4的代码了 由于项目和论文的需要 又要接触这个 其中又遇到一些新的问题 找到了一些新的解决方法 故在此记录一下 总是在几种飞控代码之间跳来跳去 没有认真研究一个 有点遗憾 PX4的代码调试还没有找到什么好的方
  • APM,PX4之开源协议

    APM代码设计的是GPLv3协议 xff0c PX4代码采用的是BSD协议 从上图可以看出 xff0c ardupilot的代码是允许别人修改 xff0c 但是修改之后必须开源且采用相同的许可证书 而PX4代码则是允许别人修改 xff0c
  • C语言实现mavlink库与px4通信仿真

    参照网址 http mavlink io en mavgen c 首先从github上下载对应的C uart interface example 对应的github仓库网址为https github com mavlink c uart i
  • RK3308--8声道改成双声道+录音增益

    改为双声道 修改dts文件 相关路径 xff1a Y hxy RK3308 sdk 1 5 kernel arch arm64 boot dts rockchipY hxy RK3308 sdk 1 5 kernel Documentati
  • Flightmare install 安装指南

    flightmare 是ETH推出的一个用于gazebo仿真 xff0c 强化学习训练的平台 xff0c 并在github上公开了其源代码 本文主要记录在配置环境过程中出现的问题 github网址链接 https github com uz
  • matlab发送mavlink消息

    主要介绍了通过matlab脚本实现UDP发送mavlink消息 xff0c 为后面matlab计算 xff0c 与Optitrack联合调试 xff0c 控制无人机做准备 示例演示效果链接为 matlab通过UDP协议发送mavlink消息

随机推荐

  • apm-ros-optitrack初步尝试

    本文记录采用ArduPilot固件 xff0c 室内optitrack环境下飞行实现中遇到的一些问题 在apm mavros仿真中 xff0c 总是出现mavros state 显示 not connected 在实际的操作中 xff0c
  • APM代码调试知识点汇总

    由于项目的需要 xff0c 对ardupilot的源码进行二次开发 本文记录在二次开发中遇到的问题以及注意事项 xff1a CUAV V5 实测 apm 串口 xff0c 对于姿态数据的发送和接收在200Hz的时候 xff0c 是没有问题的
  • ardupilot之mavlink消息--从飞控发出--单向

    飞控采用mavlink消息进行数据的传输 普遍说法是 xff0c 现有的mavlink消息几乎已经涵盖了所有你的能想象到的内容 xff0c 完全可以覆盖多处需求 无奈科研总是要定义一些新鲜玩意 xff0c 所以总是有无法完全满足需求 xff
  • ardupilot之mavlink消息--飞控接收--单向

    由于项目需要 xff0c 完成一个测试demo 本次从dronekit中发送mavlink消息给飞控 xff0c 飞控接收发来的wp信息 xff0c 然后进行修改供程序使用 首先祭出测试视频 dronekit arudpilot test
  • ArduPilot 添加自定义调节参数

    实际变成操作中 xff0c 需要对ardupilot代码进行修改并添加对应的调试参数 xff0c 这样 xff0c 可以通过地面站很方便的进行修改参数 目前修改代码在parameter h中的G2类 xff0c 表示为全局的参数列表 参数类
  • Python_mavros_manual_contoller

    利用python完成mavros与PX4的通信工程 xff0c 同时也完成了对应的PX4中对应消息代码的调试查看 span class token keyword from span future span class token keyw
  • PX4 混控部分分析

    PX4的混控部分大体思路和ardupilot是一致的 更多的PX4采用的是脚本读取的形式完成其中的读取 转换以及最后的应用 首先从机型选择后 对应为toml文件 如下图所示 采用对应的px generate mixers py来自动生成对应
  • PX4 Position_Control RC_Remoter引入

    PX4飞控位置环控制中如何引入遥控器的控制量 本文基于PX4 1 12版本 相比于之前的版本 多引入了Flight Task这么一个模块 省流总结 遥控器的值通过 flight tasks update gt velocity setpoi
  • AS--Location specified by ndk.dir...

    问题 span class token operator span span class token class name What span went wrong span class token operator span span c
  • ros中的message filters时间同步--> 用于image和imu的结合

    转载自 xff1a https blog csdn net He3he3he article details 109643391 xff11 xff0e message filters介绍 message filters用于对齐多种传感信息
  • autoware.ai docker配置

    配置环境 xff1a Ubuntu18 04 显卡驱动 510 85 02 cuda 11 1 用了我一整天的时间 xff0c 累死了 先按照此博文操作 博文里的这一步骤我没有用 sudo apt key fingerprint 0EBFC
  • 使用libcurl发送HTTP请求的一个简单示例代码

    代码简单解释 设置header 首先要声明header的结构体变量 xff0c 然后设置对应header值 xff0c 最后将其设置到curl结构体中 span class hljs comment 声明 span CURL curl sp
  • make -C和M=的作用

    当make的目标为all时 xff0c C KDIR 指明跳转到源码目录下读取那里的Makefile xff1b M 61 PWD 表明然后返回到当前目录继续读入 执行当前的Makefile
  • docker参数详解

    1 xff1a docker参数详解 docker useage of docker D 默认false 允许调试模式 debugmode H 默认是unix var run docker sock tcp host port 来绑定 或者
  • 【星伦商学院】中小企业经济复苏公益座谈会圆满结束

    中小企业经济复苏公益座谈会 为帮助中小微企业破解难题 渡过难关 xff0c 全面推进复工复产 xff0c 6月30日 xff0c 中小企业座谈会 xff08 以下简称会议 xff09 在中国 浙江诸暨市召开 力求创新举措破解制约中小微企业用
  • 从旋转矩阵到欧拉角

    摄影测量中 xff0c R转角系统一般是以y轴为主轴 xff0c 但是在很多代码中 xff0c 发现R的定义很多 xff0c 据自己需求 工业标准中一般采用Z X Y转角系统 xff0c 先绕x旋转 xff0c 再绕y 最后是Z 即如下所示
  • Git只clone指定的分支

    默认的clone会下载远程仓库的所有分支 有时候为了避免创建多个git仓库 xff0c 想将一些资源在一个git仓库下统一管理 xff0c 这时候就会出现 xff1a git远程仓库分支很多 xff0c 但是各个分支没有多大关联 xff0c
  • Ubuntu系统无法update的解决方法

    今天安装Ubuntu系统的时候 xff0c 出现了一些状况 xff0c 首先说个自己犯的幼稚错误 首先我制作好了启动盘 xff0c 并且按着步骤安装完系统 进入系统 xff0c 我自认为输入了密码 xff0c 进入了我的账号 xff08 其
  • 什么是嵌入式AI开发?人工智能芯片指什么?STM32、树莓派、Jetson TX2、华为昇腾部署神经网络区别在哪?

    嵌入式芯片 xff1a https zhuanlan zhihu com p 449570075 芯片公司代表 xff1a https www jiqizhixin com articles 2020 01 31 9 相较于CPU GPU等
  • RK3308--固件编译

    快捷路径 相关路径 xff1a cd work hxy RK3308 sdk 1 5 添加依赖包 若编译遇到报错 xff0c 可以视报错信息 xff0c 安装对应的软件包 当时下面一大段依赖包直接添加时 xff0c 不能实现 可能是因为中间