本文來源電子發燒友社區,作者:碼農愛學習, 帖子地址:https://bbs.elecfans.com/jishu_2306650_1_1.html
上篇文章,進行了EASY EAI Nano的開箱測評與開機運行測試,本篇,進行軟件開發環境的搭建。
1.編譯工具鏈與Qt環境
1.1方法一:使用官方提供的系統鏡像
官網文檔教程(https://www.easy-eai.com/document_details/3/135)使用的是VMware虛擬機,并提供了已經配置好開發環境的Ubuntu鏡像系統,理論上,只要安裝了VMware,再將Ubuntu鏡像導入,即可在配置好的Ubuntu中進行EASY EAI Nano的軟件編譯。
Ubuntu鏡像默認搭建好初級的開發環境如下:
工具 | 描述 |
---|---|
/opt/rv1126_rv1109_sdk | 交叉編譯工具 |
qtcreator | qt編譯環境 |
.bashrc | 編譯環境配置文件 |
1.2 方法二:自己配置編譯環境
由于我之前已經安裝過VirtualBox虛擬機了,并安裝了Ubuntu18系統,如果要使用官方的VMware類型Ubuntu鏡像,還需要再安裝一個VMware,或是將VMware類型Ubuntu鏡像先轉為VirtualBox類型的,再導入到VirtualBox中。
為了能更多的了解rv1126的編譯環境,我就繼續使用我自己的開發環境進行rv1126編譯環境的配置。arm-linux-gnueabihf-gcc這個編譯工具鏈之前也安裝過,Qt編譯環境之前也安裝過,不知道是否和EASY EAI Nano使用的是否一樣,先繼續使用我的之前已配置好的開發環境,遇到問題再想辦法解決。
1.2.1 rv1126_rv1109_sdk的配置
官方的開發環境中,rv1126_rv1109_sdk的配置我之前是沒有的,我需要自己配置一下。
先下載rv1126_rv1109_sdk(網盤資料路徑為“03.編譯器/rv1126_rv1109_compiler_xxxxxxxx.tar.gz”,網盤資料:https://pan.baidu.com/s/1AjOIu77mzFM4cDA0MMVr2A#list/path=%2F,提取碼:5ttf)
然后在Ubuntu中解壓,解壓出來是一個名為opt的文件夾,里面包含rv1126_rv1109_sdk文件夾:
官方教程的將此文件放到根目錄下的opt目錄下,我也把這個文件夾復制到根目錄下的opt目錄下(注意下圖我的操作有點繞彎),應該直接一句就好了:
sudo mv opt/ /
復制完成之后,還要添加環境變量,由于我之前已添加過舊版本的arm-linux-gnueabihf-gcc的環境變量,而rv1126_rv1109_sdk里有新版本的arm-linux-gnueabihf-gcc,為了不影響兩個編譯器的使用,我先不添加rv1126_rv1109_sdk的環境變量,可以在需要進行rv1126編譯的時候,在shell中臨時添加環境變量,方法為在編譯前,輸入幾條指令:
export PATH=/opt/rv1126_rv1109_sdk/buildroot/output/rockchip_face_board/host/bin:$PATH
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
1.2.2 源碼編譯測試
下載官方提供的例程(下載地址:https://github.com/EASY-EAI/EASY-EAI-Toolkit-C-Solution)進行編譯測試。
官方提供了很多例程,這里隨便打開一個例程的目錄,調用build.sh進行編譯。
如果直接編譯,會出現報錯,如下圖左圖,查看gcc的版本,是我之前配置的2017版的編譯器。
編譯前在shell中進行環境變量的設置,再查看gcc的版本,就是2019的版本了,再進行編譯就可以編譯成功了,如下圖右圖:
1.2.3 其它報錯問題
官方例程源碼,我是先下載到了Windows系統中后,再拷貝到Ubuntu中進行編譯測試的,在編譯前還遇到了其它問題,這里記錄一下:
首先的build.sh沒有執行權限的問題,這個比較簡單,加個可執行權限即可:
chmod +x build.sh
另一個問題是,不知道是不是先下載到了Windows中的原因,build.sh文件都是window文件的換行符(rn),而build.sh要想運行,需要是linux系統格式的換行符(n),否則運行build.sh也會報錯:
# bash: ./build.sh: /bin/sh^M: bad interpreter: No such file or directory
解決這個問題,只需要把換行符改為linux系統格式的換行符即可,可以使用sed指令來幫我們替換:
sed -i "s/r//" build.sh
上面的指令的意思是將r替換為空,即實現了(rn)變為(n)。
2 配置調試工具
2.1 ADB
EASY EAI Nano的OTG信號與ADB信號引腳復用,撥碼開關撥到圖片方向的左端即使用ADB接口,右端則表示使用OTG接口。
由于板子的撥碼開關默認就是在ADB這端,所以不用修改(另外,上篇文章,已經在Windows系統上使用過ADB功能了)。
用USB線連接板子與電腦,Ubuntu虛擬機右下角的USB選項中,將識別到的rockchipxxx勾選上,然后在Ubuntu的終端中輸入命令“adb shell”就可以開始調試開發板了,如下圖:
不過,在某些時候,Ubuntu無法連接到ADB,會有如下提示,不知道是什么情況
2.2 SSH(與wifi配置)
SSH登錄,需要板子連網,并需要知道板子的ip,這里主要介紹下如何進行wifi配網。
2.2.1 臨時配置wifi
先使用ADB接口登錄進開發板,進行wifi配網,可以和上篇一樣,使用如下指令進行wifi配網:
wifi_start.sh ssid password #ssid和password修改為自己的wifi名稱和密碼
查看ip后,即可使用ssh登錄。用戶名和密碼都是root。
我用的MobaXterm軟件進行SSH登錄。
2.2.2 永久配置wifi
上面那種方法配置wifi,板子重啟后需要再次配置,比較麻煩,參考這篇帖子:https://www.dandelioncloud.cn/article/details/1503928604282155010,可配置為將wifi信息寫入板子,并在開機啟動時自動連接wifi,需要添加一個腳本:
我在/etc/init.d中建立了一個S99auto_wifi_link腳本文件,里面寫入這幾條命令:
#!/bin/sh
?
wpa_supplicant -B -i wlan0 -c /userdata/cfg/wpa_supplicant.conf
wpa_cli reconfigure
wpa_cli reconnect
另外,/userdata/cfg/wpa_supplicant.conf文件中要修改為自己的wifi名和密碼:
修改之后,重啟開機,wiif就可以自動連接了,可以使用ifconfig查看ip。
2.3 串口
板子上留了插針形式的串口接口,需要單獨再接一個USB轉串口模塊才能通過串口進行調試,
需要單獨接線,還需要有一個USB轉串口模塊,比較麻煩,先不使用串口調試。
3 程序運行測試
3.1 SSH拷貝文件
由于我的Ubuntu經常連不上板子的ADB,而Windows可以快捷的連接ADB,所以我在Ubuntu中通過SSH的方式將編譯出的程序拷貝到板子中,用Windows連接板子的ADB來操作板子,并運行程序。
SSH發送文件的基本使用方式如下,可以從遠端拉取文件到本地,也可以將本地文件發送到遠端計算機
# 從遠端拉取文件到本地
# scp 遠端的用戶名@遠端計算機IP::/遠端文件存放路徑 拉取文件保存的本地路徑
scp server_user_name@192.168.1.101:server_file_path local_path
?
# 將本地文件發送到遠端計算機
# scp 本地文件的路徑 遠端的用戶名@遠端計算機IP::/遠端文件存放路徑
scp local_file_path server_user_name@192.168.1.101:server_path
我在Ubuntu中進行操作,即是將本地的可執行文件發送到遠端的板子中。
注意,這里有2個源文件,所以生成了2個可執行文件,下圖左圖是SSH拷貝文件的流程,先拷貝了第一個程序(test-display)和測試圖片(720x1200.rgb),右圖是查看板子中的拷貝結果,然后運行測試程序。
3.2 運行結果
測試效果如下,屏幕上顯示了圖片,其中左圖是test-display的執行結果,右圖是test-display-pro的執行結果
屏幕的分辨率還是比較高的,圖片顯示的很清晰。
3 總結
本篇進行了EASY EAI Nano軟件開發環境的搭建,在VirtualBox虛擬機中的Ubuntu18系統中,配置rv1126的交叉編譯環境,并編譯官方的測試代碼,驗證了編譯環境可以正常使用,最后將編譯結果通過SSH的方式復制到板子中進行運行測試。
-
開發板
+關注
關注
25文章
5068瀏覽量
97624 -
靈眸
+關注
關注
0文章
19瀏覽量
3212
發布評論請先 登錄
相關推薦
評論