Windows下有好多虚拟机软件,目前市面上流行的有VMware和VirtualBox。VMware分为收费专业版WorkstationPro和非商用免费版WorkstationPlayer,推荐使用WorkstationPlayer。
笔者这儿使用的编译主机的Ubuntu18.04,关于Workstation和Ubuntu安装笔者这儿不在赘言,网上资料好多,笔者默认早已装好Workstation和Ubuntu。
01依赖库安装
1.1更新主机的源列表
$sudoapt-getupdate
1.2安装依赖工具
$sudoapt-getinstallrepogitsshmakegcclibssl-devliblz4-toolexpectg++patchelfchrpathgawktexinfochrpathdIFfstatbinfmt-supportqemu-user-staticlive-buildbisonflexfakerootcmakegcc-multilibg++-multilibunzipdevice-tree-compilerpython-piplibncurses5-devbuild-essentialvimtree
02TFTP服务环境搭建与测试
TFTP简单文件传输合同,是一个基于UDP合同实现的用于在顾客机和服务器之间进行简单文件传输的合同,适宜于开支不大、不复杂的应用场合。
TFTP合同专门为小文件传输而设计,只能从服务器上获取文件深度linux系统,或则向服务器写入文件,不能列举目录,也不能进行认证。
(1)下载并安装tftp
$sudoapt-getinstallopenbsd-inetd$sudoapt-getinstalltftpdtftp
(2)新建tftp目录和改变其属性
$sudomkdir/tftpboot$sudochmod777/tftpboot
(3)更改/etc/inetd.conf文件
$sudovim/etc/inetd.conf
新增如下内容:
tftpdgramudpwaitnobody/usr/sbin/tcpd/usr/sbin/in.tftpd/tftpboot
(4)启动tftp
$sudo/etc/init.d/openbsd-inetdstart
(5)本地测试
在/tftpboot/目录下新建一个文件test,输入内容、保存。之后打开另外一个终端arm linux,测试文件传输。
–输入命令tftp127.0.0.1
–输入gettest
–输入q可以退出
–退出后,使用ls命令可以发觉当前目录下有test文件,假如这个文件和服务器中的test文件内容一模一样,表明服务器搭建成功。
(6)开发板测试
开发板下载测试
#tftp-g-ltest-rtest+IP地址
(注:-l后的文件是下载后文件名,可以自定义;-r后的是服务器的文件名)
03安装配置交叉编译工具链
在Linaro官网中有好多种GCC交叉编译工具链,由于我们所使用的RK3568开发板是一个Cortex-A55内核64位的开发板,选择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-xvfgcc-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深度linux系统,说明交叉编译工具链安装成功(注:编者安装的交叉编译器版本为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”试试。
$vimhello.c#includeintmain(){printf("Hello,OK3568-C!n");return0;}$aarch64-linux-gnu-gcchello.c-ohello
使用如下命令查看hello文件信息:
$filehello
从图中可以见到hello是64位LSB的ELF格式文件,目标机构架为ARMaarch64,,说明我们的交叉编译器工作正常。
最后将程序下载到开发板,更改用户权限后即可运行。
值得注意的是linux系统界面,在RK3568的源码中有交叉编译链,只是版本要旧些,在源码prebuilts目录下。笔者配置该工具链主要用在应用开发。
联系我们:
服务热线:
飞凌嵌入式官网:
官方商城: