Firefly开源社区

打印 上一主题 下一主题

[技术讨论] 【ROC-RK3568-PC开发板试用体验】1 开发环境搭建

【ROC-RK3568-PC开发板试用体验】1 开发环境搭建

发表于 2022-9-14 15:06:22      浏览:4221 | 回复:0        打印      只看该作者   [复制链接] 楼主
本帖最后由 Firefly搬运工 于 2022-9-14 15:06 编辑

开发环境:

主机:Ubuntu 18.04
开发板:ROC-RK3568-PC开发板
Windows 下有很多虚拟机软件,目前市面上流行的有 VMware 和 VirtualBox。 VMware 分为收费专业版 Workstation Pro 和非商用免费版 Workstation
Player,推荐使用 Workstation Player。笔者这里使用的编译主机的Ubuntu 18.04,关于Workstation和Ubuntu安装笔者这里不在赘述,网上资料很多,笔者默认已经装好Workstation和Ubuntu。

1.1依赖库安装1.1.1更新主机的源列表
  1. <font face="微软雅黑" size="3">$sudo apt-get update</font>
复制代码

1.1.2安装依赖工具

  1. <font face="微软雅黑" size="3">$sudo apt-get install repo git ssh make gcc libssl-dev
  2. liblz4-tool expect g++ patchelf chrpath gawk texinfo chrpath diffstat
  3. binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib
  4. g++-multilib unzip device-tree-compiler python-pip libncurses5-dev
  5. build-essential vim tree</font>
复制代码

1.2 TFTP服务环境搭建与测试


TFTP简单文件传输协议,是一个基于UDP 协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场合。
TFTP 协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。

(1)下载并安装tftp
  1. $sudo apt-get install openbsd-inetd
  2. $sudo apt-get install tftpd tftp
复制代码

(2)新建tftp目录和改变其属性
  1. $sudo mkdir /tftpboot
  2. $sudo chmod 777 /tftpboot
复制代码
(3)修改/etc/inetd.conf文件
  1. $sudo vim /etc/inetd.conf
复制代码

新增如下内容:
  1. tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
复制代码
(4)启动tftp
  1. $sudo /etc/init.d/openbsd-inetd start
复制代码

(5)本地测试

在/tftpboot/目录下新建一个文件test,输入内容,保存。然后打开另外一个终端,测试文件传输。
–输入命令tftp 127.0.0.1
–输入get test
–输入q可以退出
–退出后,使用ls命令可以发现当前目录下有test文件,如果这个文件和服务器中的test文件内容一模一样,表明服务器搭建成功


(6)开发板测试

开发板下载测试
#tftp -g -l test -r test +IP地址
【注】-l后的文件是下载后文件名,可以自定义;-r后的是服务器的文件名。

1.3安装配置交叉编译工具链

在Linaro 官网中有很多种 GCC 交叉编译工具链,因为我们所使用的 RK3568开发板是一个 Cortex-A55内核64位的开发板,选择 aarch64-linux-gnu。

图中有很多种交叉编译器,我们只需要关注这两种: gcc-linaro-7.5.0-2019.12-i686_aarch64-linux-gnu.tar.xz
和 gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz,第一个是针对 32 位系统的,第二个是针对 64 位系统的。大家根据自己所使用的 Ubuntu 系统类型选择合适的版本,比如我安装的 Ubuntu 14.04是64位系统,因此我要使用gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz。

Ø交叉编译器安装
将交叉编译器拷贝Ubuntu中的/opt目录下(没有opt则新建该目录),进行如下步骤:

1.解压gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar用以下命令
  1. $sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar //必须用超级用户模式
复制代码

2.编辑~/.bashrc文件
  1. $vi ~/.bashrc
复制代码

在文件最后增加一行
  1. <font face="微软雅黑" size="3">export PATH=$PATH:/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin</font>
复制代码

保存退出

3.运行 source ~/.bashrc
让文件生效
  1. $source ~/.bashrc
复制代码

Ø交叉编译器验证

方法一:在命令行下输入 aarch64-l 然后按tab键看会不会自动补全
方法二:输入:aarch64-linux-gnu-gcc -v

表示配置成功!

从图中可以看出当前交叉编译器的版本号为7.5.0,说明交叉编译工具链安装成功。使用刚刚安装的交叉编译器的时候使用的命令是“aarch64-linux-gnu-gcc”,“aarch64-linux-gnu-gcc”的含义如下:

1.aarch64表示这是编译 aarch64架构代码的编译器。AArch64是ARMv8 架构的一种执行状态。
2.linux 表示运行在 linux 环境下。
3.gnu表示嵌入式二进制接口。
4.gcc 表示是 gcc 工具。

最好的验证验证方法就是直接编译一个例程,我们就编译第一个裸机例程“hello.c”试试。
  1. $vim hello.c
复制代码
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     printf("Hello, ROC-RK3568-PC!\n");
  5.     return 0;
  6. }
复制代码
  1. $aarch64-linux-gnu-gcc hello.c -o hello
复制代码

使用如下命令查看 hello文件信息:
  1. $file hello
复制代码



从图中可以看到 hello是64位 LSB 的 ELF 格式文件,目标机架构为 ARMaarch64,,说明我们的交叉编译器工作正常。
最后将程序下载到开发板,修改用户权限后即可运行。
值得注意的是,在RK3568的源码中有交叉编译链,只是版本要旧些,在源码prebuilts目录下。笔者配置该工具链主要用在应用开发。








回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表