本文來(lái)源電子發(fā)燒友社區(qū),作者:ouxiaolong, 帖子地址:https://bbs.elecfans.com/jishu_2303831_1_1.html
開發(fā)環(huán)境:
主機(jī):Ubuntu 18.04
開發(fā)板:ROC-RK3568-PC開發(fā)板
Windows 下有很多虛擬機(jī)軟件,目前市面上流行的有 VMware 和 VirtualBox。 VMware 分為收費(fèi)專業(yè)版 Workstation Pro 和非商用免費(fèi)版 Workstation
Player,推薦使用 Workstation Player。筆者這里使用的編譯主機(jī)的Ubuntu 18.04,關(guān)于Workstation和Ubuntu安裝筆者這里不在贅述,網(wǎng)上資料很多,筆者默認(rèn)已經(jīng)裝好Workstation和Ubuntu。
1.1依賴庫(kù)安裝
1.1.1更新主機(jī)的源列表
$sudo apt-get update
1.1.2安裝依賴工具
$sudo apt-get install repo git ssh make gcc libssl-dev
liblz4-tool expect g++ patchelf chrpath gawk texinfo chrpath diffstat
binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib
g++-multilib unzip device-tree-compiler python-pip libncurses5-dev
build-essential vim tree
1.2 TFTP服務(wù)環(huán)境搭建與測(cè)試
TFTP簡(jiǎn)單文件傳輸協(xié)議,是一個(gè)基于UDP 協(xié)議實(shí)現(xiàn)的用于在客戶機(jī)和服務(wù)器之間進(jìn)行簡(jiǎn)單文件傳輸?shù)膮f(xié)議,適合于開銷不大、不復(fù)雜的應(yīng)用場(chǎng)合。
TFTP 協(xié)議專門為小文件傳輸而設(shè)計(jì),只能從服務(wù)器上獲取文件,或者向服務(wù)器寫入文件,不能列出目錄,也不能進(jìn)行認(rèn)證。
(1)下載并安裝tftp
$sudo apt-get install openbsd-inetd
$sudo apt-get install tftpd tftp
(2)新建tftp目錄和改變其屬性
$sudo mkdir /tftpboot
$sudo chmod 777 /tftpboot
(3)修改/etc/inetd.conf文件
$sudo vim /etc/inetd.conf
新增如下內(nèi)容:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
(4)啟動(dòng)tftp
$sudo /etc/init.d/openbsd-inetd start
(5)本地測(cè)試
在/tftpboot/目錄下新建一個(gè)文件test,輸入內(nèi)容,保存。然后打開另外一個(gè)終端,測(cè)試文件傳輸。
–輸入命令tftp 127.0.0.1
–輸入get test
–輸入q可以退出
–退出后,使用ls命令可以發(fā)現(xiàn)當(dāng)前目錄下有test文件,如果這個(gè)文件和服務(wù)器中的test文件內(nèi)容一模一樣,表明服務(wù)器搭建成功
(6)開發(fā)板測(cè)試
開發(fā)板下載測(cè)試
#tftp -g -l test -r test +IP地址
【注】-l后的文件是下載后文件名,可以自定義;-r后的是服務(wù)器的文件名。
1.3安裝配置交叉編譯工具鏈
在Linaro 官網(wǎng)中有很多種 GCC 交叉編譯工具鏈,因?yàn)槲覀兯褂玫?RK3568開發(fā)板是一個(gè) Cortex-A55內(nèi)核64位的開發(fā)板,選擇 aarch64-linux-gnu。
圖中有很多種交叉編譯器,我們只需要關(guān)注這兩種: 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,第一個(gè)是針對(duì) 32 位系統(tǒng)的,第二個(gè)是針對(duì) 64 位系統(tǒng)的。大家根據(jù)自己所使用的 Ubuntu 系統(tǒng)類型選擇合適的版本,比如我安裝的 Ubuntu 14.04是64位系統(tǒng),因此我要使用gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz。
?交叉編譯器安裝
將交叉編譯器拷貝Ubuntu中的/opt目錄下(沒(méi)有opt則新建該目錄),進(jìn)行如下步驟:
1.解壓gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar用以下命令
$sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar //必須用超級(jí)用戶模式
2.編輯~/.bashrc文件
$vi ~/.bashrc
在文件最后增加一行
export PATH=$PATH:/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin
保存退出
3.運(yùn)行 source ~/.bashrc
讓文件生效
$source ~/.bashrc
?交叉編譯器驗(yàn)證
方法一:在命令行下輸入 aarch64-l 然后按tab鍵看會(huì)不會(huì)自動(dòng)補(bǔ)全
方法二:輸入:aarch64-linux-gnu-gcc -v
表示配置成功!
從圖中可以看出當(dāng)前交叉編譯器的版本號(hào)為7.5.0,說(shuō)明交叉編譯工具鏈安裝成功。使用剛剛安裝的交叉編譯器的時(shí)候使用的命令是“aarch64-linux-gnu-gcc”,“aarch64-linux-gnu-gcc”的含義如下:
1.aarch64表示這是編譯 aarch64架構(gòu)代碼的編譯器。AArch64是ARMv8 架構(gòu)的一種執(zhí)行狀態(tài)。
2.linux 表示運(yùn)行在 linux 環(huán)境下。
4.gcc 表示是 gcc 工具。
最好的驗(yàn)證驗(yàn)證方法就是直接編譯一個(gè)例程,我們就編譯第一個(gè)裸機(jī)例程“hello.c”試試。
$vim hello.c
#include
int main()
{
printf("Hello, ROC-RK3568-PC!n");
return 0;
}
$aarch64-linux-gnu-gcc hello.c -o hello
使用如下命令查看 hello文件信息:
$file hello
從圖中可以看到 hello是64位 LSB 的 ELF 格式文件,目標(biāo)機(jī)架構(gòu)為 ARMaarch64,,說(shuō)明我們的交叉編譯器工作正常。
最后將程序下載到開發(fā)板,修改用戶權(quán)限后即可運(yùn)行。
值得注意的是,在RK3568的源碼中有交叉編譯鏈,只是版本要舊些,在源碼prebuilts目錄下。筆者配置該工具鏈主要用在應(yīng)用開發(fā)。
-
RK3568
+關(guān)注
關(guān)注
5文章
584瀏覽量
6371 -
開發(fā)板試用
+關(guān)注
關(guān)注
3文章
302瀏覽量
2397
發(fā)布評(píng)論請(qǐng)先 登錄
【HZ-RK3568開發(fā)板免費(fèi)體驗(yàn)】01 開箱+環(huán)境搭建+系統(tǒng)燒錄升級(jí)
【HZ-RK3568開發(fā)板免費(fèi)體驗(yàn)】合縱恒躍 HZ-RK3568 開發(fā)板開箱+開發(fā)環(huán)境搭建
迅為RK3568開發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入

一文掌握RK3568開發(fā)板Android13掛載Windows共享目錄

RK3568開發(fā)板教程:以iTOP-RK3568開發(fā)板為例 Android13通過(guò)CIFS協(xié)議掛載Windows共享目錄

北京迅為RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)內(nèi)核HDF驅(qū)動(dòng)框架架構(gòu)

迅為RK3568開發(fā)板驅(qū)動(dòng)指南Linux中通用SPI設(shè)備驅(qū)動(dòng)

[迅為RK3568開發(fā)板]非科班也能玩轉(zhuǎn)Android應(yīng)用,體驗(yàn)QT跨平臺(tái)能力
![[迅為<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>]非科班也能玩轉(zhuǎn)Android應(yīng)用,體驗(yàn)QT跨平臺(tái)能力](https://file1.elecfans.com/web3/M00/02/F1/wKgZO2diirGAPoENAACpt0CV3xc346.png)
RK3568內(nèi)置MCU開發(fā)介紹之一

基于迅為RK3568開發(fā)板全國(guó)產(chǎn)平臺(tái),快速實(shí)現(xiàn)APP開機(jī)自啟動(dòng)技術(shù)分享

評(píng)論