找回密码
 注册
关于网站域名变更的通知
查看: 163|回复: 1
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-6-22 10:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
​作者:ouxiaolong
& _0 R7 h, v( |$ c开发环境——
- d+ A3 i8 m  c7 h, O! u主机:Ubuntu18.04: W/ L) t- w2 Y! p
开发板:飞凌嵌入式OK3568-C开发板6 e$ \# B: y+ L. O% f
Windows下有很多虚拟机软件,目前市面上流行的有VMware和VirtualBox。VMware分为收费专业版Workstation Pro 和非商用免费版Workstation Player,推荐使用Workstation Player。3 m4 q, ?* T7 p" n9 W' F5 }
笔者这里使用的编译主机的Ubuntu18.04,关于Workstation和Ubuntu安装笔者这里不在赘述,网上资料很多,笔者默认已经装好Workstation和Ubuntu。
5 l* R$ e) F! ^# r9 m! @5 @01依赖库安装2 N4 U! n/ Q0 a( P  ]5 _2 |
1.1更新主机的源列表
( b, {9 \  T+ l+ G: Z" a% d; x$sudo apt-get update1.2安装依赖工具" D" T- [, ]! v6 l$ m7 w7 |
$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服务环境搭建与测试" D1 F1 k( t: L: P
TFTP简单文件传输协议,是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场合。3 h, g! v, [3 ]2 Y
TFTP协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。
& D  Q/ Y( F( l(1)下载并安装tftp( F. i+ h! ?5 Z/ P( I& A4 z* V
$sudo apt-get install openbsd-inetd(2)新建tftp目录和改变其属性
3 V9 Z5 z% j# A$sudo mkdir /tftpboot(3)修改/etc/inetd.conf文件
  g& c/ G+ l* W1 i$sudo vim /etc/inetd.conf新增如下内容:
; {2 o9 I9 U1 {tftpdgram udp wait nobody /usr/sbin/tcpd/usr/sbin/in.tftpd /tftpboot(4)启动tftp4 e0 c# T0 n# \. v, j
$sudo /etc/init.d/openbsd-inetd start(5)本地测试) X9 r5 g; J% _% n; c3 E+ B/ X
在/tftpboot/目录下新建一个文件test,输入内容、保存。然后打开另外一个终端,测试文件传输。
# W" F9 t# L' Z- Z9 T- Y* p3 g6 F–输入命令tftp127.0.0.1# U; _; ?9 S0 j, v
–输入gettest+ l) Z4 d. g* q( c: J
–输入q可以退出
" [2 |, H8 v2 E/ k–退出后,使用ls命令可以发现当前目录下有test文件,如果这个文件和服务器中的test文件内容一模一样,表明服务器搭建成功。
' [5 \4 R8 m. f+ @
编辑
5 \( w7 m/ Q- d0 p) X5 z(6)开发板测试: o' b: l+ W0 J; I, K& @/ K
开发板下载测试
- I- s3 U" ?+ r, N' {; z#tftp-g -l test -r test +IP地址- i( M6 n) n- S6 E& ]
编辑# V& R# E6 i0 o" O- N5 ~
(注:-l后的文件是下载后文件名,可以自定义;-r后的是服务器的文件名)
0 W9 o% \8 [% ^1 v1 r, _03安装配置交叉编译工具链: Y  d3 U, u6 s/ V
在Linaro官网中有很多种GCC交叉编译工具链,因为我们所使用的RK3568开发板是一个Cortex-A55内核64位的开发板,选择aarch64-linux-gnu。
3 w9 H; _$ E8 D& K地址:https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/
7 i# }& q' p6 Y9 A) c! L# Y
编辑5 W! W2 K1 E( R: ~2 a% s- O! g
图中有很多种交叉编译器,我们只需要关注这两种:# _: U8 @# |* I
针对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。6 j) J  T5 K0 a- ?: s* }( ?4 j
大家根据自己所使用的Ubuntu系统类型选择合适的版本,比如我安装的Ubuntu14.04是64位系统,因此我要使用gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz。
0 y9 l% Z( a6 l5 T  g( z04交叉编译器安装
: o9 B0 ?6 w( ]( n2 C将交叉编译器拷贝Ubuntu中的/opt目录下(没有opt则新建该目录),进行如下步骤:8 C: I1 g, ]- x; E; Z+ w$ W! q) q$ ]
1. 解压gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar
" t% v- M* F3 c8 T# ~& O4 ]用以下命令
* b* v8 o+ \* a$ v) M4 D" X5 C5 H$sudotar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar //必须用超级用户模式。' r9 v' |! e; W5 k2 ^
2. 编辑~/.bashrc文件9 D) D. @/ s  w% e
$vi ~/.bashrc" a5 [  s  t  O: c9 X2 x0 l
在文件最后增加一行
& Y% a$ ^1 D% G0 L8 [% j# ^( L. L9 [exportPATH=$PATH:/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin保存退出。; q  V6 c1 r* Z) U& y
3.运行source~/.bashrc让文件生效
# p- i! V+ x/ h" {" E5 [$source ~/.bashrc( D, M$ L  D8 c2 h+ h
05交叉编译器验证8 A* R7 @  U' |" P/ u8 R& T2 g
方法一:* l8 r5 x3 k" e6 }5 ]  _# j+ a
在命令行下输入aarch64-l然后按tab键看会不会自动补全3 @0 F: h1 O5 F* z/ T# `  |5 O8 `) a
方法二:
+ b) Q/ T: w0 `' ?* i: \输入:aarch64-linux-gnu-gcc-v
9 _5 `7 L) \( X5 W' G) F
编辑+ M+ n: V1 ^' r- |0 @
如上图则表示配置成功!' |2 m4 w+ D0 P) m
从图中可以看出当前交叉编译器的版本号为7.5.0,说明交叉编译工具链安装成功(注:编者安装的交叉编译器版本为7.5.0,OK3568-C开发板源码包里是9.3.0版本)。% ~/ D' N: c1 q
使用刚刚安装的交叉编译器的时候使用的命令是:
  ?: X; j, o: f4 Eaarch64-linux-gnu-gcc该命令的具体含义如下:" G- x- F' e' ~2 U9 L4 ~7 q
1.aarch64表示这是编译aarch64架构代码的编译器。AArch64是ARMv8架构的一种执行状态。
, \. \. t) f$ ]( Y" I2.linux表示运行在linux环境下。$ z- j- {- ~, p+ M0 N" Y0 S' A* \
3.gnu表式嵌入式二进制接口。/ ]/ ?* }. ~/ b/ V# w
4.gcc表示是gcc工具。3 ]# j# o( ^4 t& d
最好的验证验证方法就是直接编译一个例程,我们就编译第一个裸机例程“hello.c”试试。) X4 ?7 M  U6 S+ P! L
$vim hello.c使用如下命令查看hello文件信息:, z+ O$ _) ?+ j
$file hello
编辑
' f4 p( ^1 V+ x4 I从图中可以看到hello是64位LSB的ELF格式文件,目标机架构为ARMaarch64,,说明我们的交叉编译器工作正常。
- s- q3 J$ |$ y) c$ V/ a8 x# ~" U: d最后将程序下载到开发板,修改用户权限后即可运行。; E$ O2 n, x4 |, X7 ^* d( b) z
编辑/ i. |0 B$ w6 M4 G2 [3 ^- W
值得注意的是,在RK3568的源码中有交叉编译链,只是版本要旧些,在源码prebuilts目录下。笔者配置该工具链主要用在应用开发。+ o. ^/ r% ~6 `  D" R
& D7 f8 O0 i2 `1 j7 f' C
  • TA的每日心情
    开心
    2022-12-27 15:46
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2#
    发表于 2022-6-22 13:15 | 只看该作者
    TFTP简单文件传输协议,是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-11 22:56 , Processed in 0.140625 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表