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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
​作者:ouxiaolong. z9 a. ?% U1 O& P
开发环境——
/ I$ R' s# j4 a- J, J) {) z% K5 [主机:Ubuntu18.04. P& ]9 i! P/ ~) V; o
开发板:飞凌嵌入式OK3568-C开发板, P& T# [$ }  J, T2 W! w
Windows下有很多虚拟机软件,目前市面上流行的有VMware和VirtualBox。VMware分为收费专业版Workstation Pro 和非商用免费版Workstation Player,推荐使用Workstation Player。
: L# U" m4 _  ~! \笔者这里使用的编译主机的Ubuntu18.04,关于Workstation和Ubuntu安装笔者这里不在赘述,网上资料很多,笔者默认已经装好Workstation和Ubuntu。) |& w1 d0 q7 y  R
01依赖库安装
! O  K# P  d" U" \1.1更新主机的源列表
1 p" `  r% k9 m' n$sudo apt-get update1.2安装依赖工具5 r& a* \' f1 t2 b( G2 g% D, h; Y3 C
$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服务环境搭建与测试  N( k% @+ o/ x  M6 y
TFTP简单文件传输协议,是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场合。* F: n1 E% F% ^; e" q* ]5 f, p
TFTP协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。4 I, m2 m, L. r) {
(1)下载并安装tftp2 s- h4 @( e' V# A
$sudo apt-get install openbsd-inetd(2)新建tftp目录和改变其属性& B2 Q. C9 ?. ?* o5 b
$sudo mkdir /tftpboot(3)修改/etc/inetd.conf文件
  v1 l* c2 K+ m0 `! h$sudo vim /etc/inetd.conf新增如下内容:6 V) [7 o/ s/ O# Y3 m. N3 T1 w7 o
tftpdgram udp wait nobody /usr/sbin/tcpd/usr/sbin/in.tftpd /tftpboot(4)启动tftp
2 d  J% W2 b  t; k/ }- A' @5 @3 B+ @: f$sudo /etc/init.d/openbsd-inetd start(5)本地测试
; O5 N) Y$ H; ?在/tftpboot/目录下新建一个文件test,输入内容、保存。然后打开另外一个终端,测试文件传输。2 w* X* c* Q& f3 ~- r9 O, {- R
–输入命令tftp127.0.0.13 a+ k' T1 `' U  {5 E$ ]' B
–输入gettest
( k. t/ R" h+ k–输入q可以退出
4 Y/ e$ N1 y" I! k, D–退出后,使用ls命令可以发现当前目录下有test文件,如果这个文件和服务器中的test文件内容一模一样,表明服务器搭建成功。
) T- o" F8 n* J% ]) v
编辑
' H; k- M6 \7 S& b(6)开发板测试+ D" U4 h1 Y- P3 Q
开发板下载测试
1 j$ a% u) b& s) t6 o#tftp-g -l test -r test +IP地址
0 `& L) \( w: {  T
编辑
1 \" l( y/ I' g0 X) {+ _, u(注:-l后的文件是下载后文件名,可以自定义;-r后的是服务器的文件名)2 O9 T& r3 K! M6 ~
03安装配置交叉编译工具链
. f2 A( t: I9 z+ v+ t* L$ u在Linaro官网中有很多种GCC交叉编译工具链,因为我们所使用的RK3568开发板是一个Cortex-A55内核64位的开发板,选择aarch64-linux-gnu。& e# a- E: l, l8 I' h  W) _5 H
地址:https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/8 D2 v1 m+ ]% g
编辑. ^4 ^1 `2 _5 D. x* r7 v- o, a
图中有很多种交叉编译器,我们只需要关注这两种:% t( _1 J7 D7 Y+ ?$ q8 l
针对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。
0 T" L" l) {" M6 v; y大家根据自己所使用的Ubuntu系统类型选择合适的版本,比如我安装的Ubuntu14.04是64位系统,因此我要使用gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz。; y* B; `, N7 ]0 ?6 d- O2 [9 E8 U+ G
04交叉编译器安装& ]  w" ^: X  W# ?8 x$ @. c! P
将交叉编译器拷贝Ubuntu中的/opt目录下(没有opt则新建该目录),进行如下步骤:
, f' [6 B( C4 W5 |& H1. 解压gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar- i# p" |" K8 J% ?8 ]8 o
用以下命令6 j$ L2 B! w1 y9 {# V$ G* @
$sudotar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar //必须用超级用户模式。5 t( b  g9 j! ^/ g5 s) Y- h
2. 编辑~/.bashrc文件
- S9 M1 G& h9 s. t$vi ~/.bashrc& R$ Q# t. F0 F, a
在文件最后增加一行
; @1 {) ?# B. l; O7 z, e' wexportPATH=$PATH:/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin保存退出。
* A, @! R1 ^. v  {! q$ m( m  V3.运行source~/.bashrc让文件生效0 }/ a4 j+ S2 }& T0 `# e0 Q
$source ~/.bashrc
. [3 Z5 X, F$ b$ u! H7 O05交叉编译器验证+ S4 L5 z+ e% E+ P- G  a/ T4 k
方法一:
$ v9 K) \0 V2 i8 ?在命令行下输入aarch64-l然后按tab键看会不会自动补全$ I, G$ C  e5 v$ f
方法二:2 n  D- ]% k) `4 `; d) m
输入:aarch64-linux-gnu-gcc-v) ?7 ^$ l; ?7 q7 b4 j* e$ c0 n- i$ o
编辑7 u$ U7 R2 i" y4 O  |! m
如上图则表示配置成功!
0 W, O( N. h* R% m2 m从图中可以看出当前交叉编译器的版本号为7.5.0,说明交叉编译工具链安装成功(注:编者安装的交叉编译器版本为7.5.0,OK3568-C开发板源码包里是9.3.0版本)。
6 b9 s, x4 e) B  J使用刚刚安装的交叉编译器的时候使用的命令是:
. V, ?0 k& }2 T: G- F) w9 @aarch64-linux-gnu-gcc该命令的具体含义如下:
# H% K8 k# K8 r/ D. D  F1.aarch64表示这是编译aarch64架构代码的编译器。AArch64是ARMv8架构的一种执行状态。& h! m+ k3 T( J( s4 k  H9 N3 T
2.linux表示运行在linux环境下。
  g  A6 S3 C, O( Z8 \1 F; k3.gnu表式嵌入式二进制接口。
3 t; y8 Y- L7 a8 e4.gcc表示是gcc工具。% J9 V: o; E' M0 s- W* ~
最好的验证验证方法就是直接编译一个例程,我们就编译第一个裸机例程“hello.c”试试。" f  P: C& i5 r! w+ Q
$vim hello.c使用如下命令查看hello文件信息:( f. L: g* a+ I7 v3 u+ M
$file hello
编辑
3 U  L. Y1 }4 b8 n从图中可以看到hello是64位LSB的ELF格式文件,目标机架构为ARMaarch64,,说明我们的交叉编译器工作正常。3 [  O6 ^; M1 V' r1 {2 Q
最后将程序下载到开发板,修改用户权限后即可运行。
) ?- c! Q  I: U8 z: m  O* H
编辑6 U0 Z2 D$ x1 v# e8 M
值得注意的是,在RK3568的源码中有交叉编译链,只是版本要旧些,在源码prebuilts目录下。笔者配置该工具链主要用在应用开发。/ M9 E* ]. ?7 Y3 h% [: m

, w( [% Q9 @" S" x/ B: N, S
  • 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-11-23 22:20 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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