• RK3568开发板评测篇(二):开发环境搭建


    作者:ouxiaolong

    开发环境——

    主机:Ubuntu18.04

    开发板:飞凌嵌入式OK3568-C开发板

    Windows下有很多虚拟机软件,目前市面上流行的有VMware和VirtualBox。VMware分为收费专业版Workstation Pro 和非商用免费版Workstation Player,推荐使用Workstation Player。

    笔者这里使用的编译主机的Ubuntu18.04,关于Workstation和Ubuntu安装笔者这里不在赘述,网上资料很多,笔者默认已经装好Workstation和Ubuntu。

    01依赖库安装

    1.1更新主机的源列表

    $sudo apt-get update

    1.2安装依赖工具

    $sudo apt-get install repo git ssh make gcc libssl-devliblz4-toolexpect g++ patchelf chrpath gawk texinfo chrpathdIFfstatbinfmt-supportqemu-user-static live-build bison flex fakeroot cmakegcc-multilibg++-multilib unzip device-tree-compiler python-piplibncurses5-devbuild-essential vim tree

    02TFTP服务环境搭建与测试

    TFTP简单文件传输协议,是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场合。

    TFTP协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。

    (1)下载并安装tftp

    $sudo apt-get install openbsd-inetd

    (2)新建tftp目录和改变其属性

    $sudo mkdir /tftpboot

    (3)修改/etc/inetd.conf文件

    $sudo vim /etc/inetd.conf

    新增如下内容:

    tftpdgram udp wait nobody /usr/sbin/tcpd/usr/sbin/in.tftpd /tftpboot

    (4)启动tftp

    $sudo /etc/init.d/openbsd-inetd start

    (5)本地测试

    在/tftpboot/目录下新建一个文件test,输入内容、保存。然后打开另外一个终端,测试文件传输。

    –输入命令tftp127.0.0.1

    –输入gettest

    –输入q可以退出

    –退出后,使用ls命令可以发现当前目录下有test文件,如果这个文件和服务器中的test文件内容一模一样,表明服务器搭建成功。

    (6)开发板测试

    开发板下载测试

    #tftp-g -l test -r test +IP地址

    (注:-l后的文件是下载后文件名,可以自定义;-r后的是服务器的文件名)

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

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

    地址:https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/

    图中有很多种交叉编译器,我们只需要关注这两种:

    针对32位系统的gcc-linaro-7.5.0-2019.12-i686_aarch64-linux-gnu.tar.xz和针对64位系统的gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz。

    大家根据自己所使用的Ubuntu系统类型选择合适的版本,比如我安装的Ubuntu14.04是64位系统,因此我要使用gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz。

    04交叉编译器安装

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

    1. 解压gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar

    用以下命令

    $sudotar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar //

    必须用超级用户模式。

    2. 编辑~/.bashrc文件

    $vi ~/.bashrc

    在文件最后增加一行

    exportPATH=$PATH:/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin

    保存退出。

    3.运行source~/.bashrc让文件生效

    $source ~/.bashrc

    05交叉编译器验证

    方法一:

    在命令行下输入aarch64-l然后按tab键看会不会自动补全

    方法二:

    输入:aarch64-linux-gnu-gcc-v

    如上图则表示配置成功!

    从图中可以看出当前交叉编译器的版本号为7.5.0,说明交叉编译工具链安装成功(注:编者安装的交叉编译器版本为7.5.0,OK3568-C开发板源码包里是9.3.0版本)。

    使用刚刚安装的交叉编译器的时候使用的命令是:

    aarch64-linux-gnu-gcc

    该命令的具体含义如下:

    1.aarch64表示这是编译aarch64架构代码的编译器。AArch64是ARMv8架构的一种执行状态。

    2.linux表示运行在linux环境下。

    3.gnu表式嵌入式二进制接口。

    4.gcc表示是gcc工具。

    最好的验证验证方法就是直接编译一个例程,我们就编译第一个裸机例程“hello.c”试试。

    $vim hello.c

    使用如下命令查看hello文件信息:

    $file hello

    从图中可以看到hello是64位LSB的ELF格式文件,目标机架构为ARMaarch64,,说明我们的交叉编译器工作正常。

    最后将程序下载到开发板,修改用户权限后即可运行。

    值得注意的是,在RK3568的源码中有交叉编译链,只是版本要旧些,在源码prebuilts目录下。笔者配置该工具链主要用在应用开发。

  • 相关阅读:
    Drools WorkBench的简介与使用
    Linux kretprobe使用和原理
    SQL注入 基础学习
    【JS】Chapter14-深入面向对象
    R语言ggplot2可视化:使用ggplot2可视化散点图、使用scale_size函数配置数据点的大小的(size)度量调整的范围
    mysql8离线安装
    wpa_cli辅助工具的使用
    强大的JTAG边界扫描(4):STM32边界扫描应用
    四、thymeleaf注释
    【无标题】
  • 原文地址:https://blog.csdn.net/ningmengzier/article/details/125403188