系統之間文件共享
想要實現兩個不同的系統之間實現文件共享,最簡單的一種方案就是設置VMware軟件的共享文件夾,利用共享文件夾可以實現linux系統和windows系統之間的文件共享,這樣就可以實現在windows系統上編輯程序,然后在linux系統下編譯程序以及運行程序,尤其是當使用開發板的時候,這種方案非常好用。
點擊VMware菜單欄的“虛擬機”,然后點擊“設置”,點擊“選項”,點擊“共享文件夾”
設置主機路徑(windows系統的路徑,),設置名稱(linux系統的文件夾的名稱,英文)
然后打開Terminal終端,輸入命令cd? /mnt/hgfs/ 然后按下回車,輸入ls命令查看
可以看到share文件夾就是設置好的共享文件夾的名稱,切換到該目錄即可實現共享。
ARM開發板的使用
開發板資源說明
GEC6818 開發平臺,核心板采用 10 層板工藝設計,確保穩定可靠,可以批量用于平板電腦,車機,學習機,POS 機,游戲機,行業監控等多種領域。該平臺搭載三星 Cortex-A53 系列高性能八核處理器 S5P6818,最高主頻高達 1.4GHz,可應用于嵌入式 Linux 和 Android 等操作系統的驅動、應用開發。開發板留有豐富的外設,支持千兆以太網、板載 LVDS 接口、MIPI 接口、USB 接口等。
開發板使用說明
使用5V電源適配器進行供電,通過九針串口數據線或者網線進行數據通信,連接電源線和串口數據線后,撥動電源開關上電開機。
一般而言,嵌入式開發板使用串口來監控后臺。可以使用串口線連接開發板和電腦,對于沒有串口的筆記本電腦來說,一般還需要一根USB轉串口線。
進行硬件接線,安裝USB轉串口線的CH340驅動,檢查驅動是否安裝成功,如下所示:
打開secureCRT軟件之后,點擊“快速連接”,并選擇“serial”協議,進行配置,如下:
注意:連接好串口通信線,通過“設備管理器”確定通信端口,該端口是變化的,不同主機是不同的,需要每次連接前確定下。
配置完成后,點擊“連接”,如果軟件左上角出現綠色對勾,說明端口選擇正確,如下:
如果端口正確,則打開開發板的電源開關(往上撥),等待系統啟動,此時不要按鍵盤!
注意:如果啟動的過程中卡在某一行不動,原因是開發板啟動后會自動運行一個應用程序,該應用程序占用了shell終端,此時只需要按快捷鍵Ctrl+C就可以強制結束進程,此時可以順利使用shell終端。
由于開發板板載的是Linux系統,所以可以通過secureCRT調試工具發送shell命令,如:
?
點擊secureCRT菜單欄“選項”->“會話選項”->“外觀”,修改字體大小和字符編碼:
開發板傳輸文件
注意:開發板的內存空間較小,所以開發板中的Linux系統是經過裁剪的,也就是開發板的Linux系統不具備程序的編輯能力和程序的編譯能力,只具有程序的運行能力。
所以大家需要在電腦的Linux系統中去完成程序的編輯和程序的編譯,然后把生成的可執行文件傳輸到開發板,在開發板中運行,這里可以使用多種方案實現文件的傳輸:shell命令、U盤、網線。
由于開發板進入linux系統之后直接就是超級用戶,用戶擁有開發板系統的一切權限,所以大家在操作根目錄的時候要格外小心,為了避免一些誤操作帶來系統的奔潰,所以必須在家目錄創建一個目錄用以存放個人所有的項目文件,比如workspace目錄。
掛載內存
由于開發板默認使用的是根文件系統的內存空間,根文件系統的內存空間有限,所以隨著時間的推移,GEC6818開發板的內存空間會出現使用耗盡的問題,為了避免出現用戶文件無法傳輸至開發板的Linux系統的問題,此時可以通過把硬盤剩余的空間掛在到根文件系統中進行使用。
基本使用格式
[root@GEC6818 /]# df? -h
開發板中的存儲IC是8G大小,分為了若干個扇區,所以用戶可以通過命令查看分區情況:
基本使用格式
[root@GEC6818 /]# cat? /proc/partitions
- 需要格式化暫未被使用的硬盤分區mmcblk0p7,避免該分區中有一些不相干的文件內容
基本使用格式
[root@GEC6818 /]# mkfs.vfat? /dev/mmcblk0p7
- 使用mount命令把該分區掛載到指定目錄下,一般建議掛載到用戶自己的工作目錄中
基本使用格式
[root@GEC6818 /]# mount? -t?? vfat? /dev/mmcblk0p7??? /workspace
?
檢測是否掛載成功,分區掛載指令是單次有效的,所以需要把掛載指令寫入自啟腳本中
基本使用格式
[root@GEC6818 /]# df? -h
打開開發板配置文件,該文件是開機自動執行,所以利用vi工具在文件末尾追加內容
基本使用格式
[root@GEC6818 /]# vi? /etc/profile
重啟開發板使配置文件生效 ,可以使用軟重啟 輸入命令 :reboot 等待重啟完成即可
基本使用格式
[root@GEC6818 /]# reboot
指令傳輸
切換到開發板的個人工作路徑,然后在secureCRT的shell終端中輸入命令:rx 文件名
?
點擊軟件菜單欄的“傳輸”,然后點擊“發送Xmodem”,選擇windows系統中的文件:
?
等待文件發送完成即可,可以通過進度條來檢查文件是否發送完成,具體操作如下所示:
注意:并且rx命令也無法一次傳輸多個文件,并且rx命令的傳輸速度較慢,為了解決該問題,可以把rz命令傳輸到開發板的 /bin 目錄下,這樣可以使用rz命令一次傳輸多個文件,如下:
在secureCRT的shell終端中輸入命令:rx? rz,按下回車,然后找到rz命令所在文件夾
等待文件傳輸完成,由于該文件是一個shell命令,所以需要修改權限: chmod 777 rz
?
由于系統shell命令的環境變量設置在/bin目錄下,所以需要把rz命令移動到 /bin目錄
?
測試rz命令是否正常,在secureCRT的shell終端中輸入命令:rz? 然后按下回車,如:
注意:可修改secureCRT軟件下載文件的路徑,固定每次彈出窗口的路徑位置,快速定位下載文件,如下所示
網絡傳輸
在開發板和計算機處于同一個局域網的情況下,采用網口的方式來傳輸文件是最高效的一種方式(即通過網線把主機的文件傳輸到開發板上),此時可以利用tftp工具實現,tftp的全稱是 tiny FTP,此工具專用于文件傳輸,其所為tiny意指匿名傳輸,是一種輕量級的FTP工具。
用一個網線的一端連接到開發板的網口,網線的另一端連接到路由器的一端,如下所示:
注意:上圖這種方案適合有線連接,也就是計算機通過有線連接到網絡,開發板也通過有線連接到網絡,此時需要確保開發板和計算機處于同一個網段,如果不在同一個網段,則需要配置開發板的IP地址,如下:
進入開發板的終端,在終端中輸入shell命令: ifconfig? 來查看當前開發板的網絡配置!
?
在終端輸入shell命令: ifconfig? eth0? 192.168.xxx.xxx,xxx指的是用戶擁有的IP地址!
注意:配置的開發板的IP地址是單次有效的,所以需要把該指令寫入到開發板的開機自啟動的腳本文件,開發板linux系統中開機自啟動的腳本文件的路徑是 /etc/profile,可以使用vi編輯器打開該腳本,并在腳本文件的末尾寫入該指令。
?
配置完成后,重啟開發板,然后在終端重新輸入指令:? ifconfig? 檢查開發板的IP地址
?
檢查完成后,測試開發板和計算機是否網絡處于連通狀態,指令:? ping 計算機IP地址
如果開發板和計算機的網絡連通,則打開tftpd32.exe應用程序,然后進行配置,如下:
注意:tftp工具不要關閉,只需要最小化即可,另外,如果文件的路徑更改,則需要修改tftp的文件路徑
配置好tftp軟件之后,根據實際情況在開發板的終端中輸入下載文件和上傳文件的命令
把計算機的文件下載到開發板上(IP地址為服務器IP 也就是計算機的IP地址)
[root@root:~]# tftp ?-g 192.168.xxx.xxx ?-r ??xxx???? xxx指的是文件名
把開發板的文件上傳到計算機中(IP地址為服務器IP 也就是計算機的IP地址)
[root@root:~]# tftp ?-p 192.168.xxx.xxx ?-r ??xxx???? xxx指的是文件名
交叉編譯工具安裝
交叉編譯器就是在一種計算機環境中運行的編譯程序,能編譯出在另外一種環境下運行的代碼。由于開發板的硬件平臺是ARM,但是開發板并不具備編譯程序的能力,所以需要在計算機中的linux系統對程序進行編譯。
但是計算機的硬件平臺是X86_64,所以并不能使用gcc編譯器生成在ARM平臺運行的可執行程序,所以就需要在計算機的linux系統中安裝交叉編譯工具,這樣就可以在計算機的linux系統中交叉編譯源程序并生成可以在ARM平臺運行的可執行文件。
鏈接: https://pan.baidu.com/s/1IS7UzGABw7fLxGLct5EcWg 提取碼: 47ms
把交叉編譯工具的壓縮包拷貝到設置好的共享文件夾,并從共享文件夾拷貝到家目錄!
注意不可以在共享文件夾中對該壓縮包進行解壓,因為共享文件夾是掛載到linux系統,不屬于linux系統。
對壓縮包進行解壓,輸入命令:xz?? --decompress? arm-linux-gnueabi-5.4.0.tar.xz 如下:
利用超級用戶的權限對歸檔文件進行釋放,并且直接釋放到家目錄下,操作如下所示:
解壓成功后可以看到在/home/xxx目錄下就多了一個usr文件夾,此時要配置環境變量
gec@ubuntu:~$ cd ??/home/gec/usr/local/arm/5.4.0/usr/bin???? //gec是用戶名,需要修改!
gec@ubuntu:~$ echo "export PATH=/home/gec/usr/local/arm/5.4.0/usr/bin:$PATH" ?>> ?~/.bashrc
gec@ubuntu:~$ source ~/.bashrc??? ?????????????????????????? //讓配置文件立即生效
配置好環境變量之后,測試交叉編譯工具是否正常,可以輸入命令arm-linux-gcc -v查看
如果可以查看交叉編譯工具的版本,則編寫一個源文件,利用交叉編譯工具進行編譯:
注意如果利用交叉編譯命令arm-linux-gcc對源文件進行編譯時遇到以下錯誤情況,如下圖
/usr/local/arm/5.4.0/usr/bin/../libexec/gcc/arm-none-linux-gnueabi/5.4.0/cc1: error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory
原因是加載共享庫時出錯:libmpfr.so.4:無法打開共享對象文件:沒有這樣的文件或目錄
執行以下代碼即可:
sudo? ln? -s ?/usr/lib/x86_64-linux-gnu/libmpfr.so.6 ?/usr/lib/x86_64-linux-gnu/libmpfr.so.4
可以看到,使用不同的編譯器可以對同一個源文件進行編譯,只不過生成的可執行文件的執行平臺不同,可執行文件hello_arm只能在ARM平臺運行(開發板),可執行文件hello_x86只能在X86平臺運行(計算機)。
把生成的在ARM平臺運行的可執行文件發送到開發板的個人路徑,輸入:rx? demo_arm
發送到開發板的可執行文件默認沒有權限執行,原因是因為虛擬機的linux系統使用的是普通用戶,而開發板中的linux系統是超級用戶,所以文件權限不一致,導致可執行文件無法運行,此時只需要修改開發板中的可執行文件的權限為777即可,777是最高權限。