2019-2020-1 20175208 20175218 20175230 實驗一 開發環境的熟悉
1、實驗內容
一、交叉編譯環境-(使用本身筆記本電腦)
- 實驗三人一組
- 可使用本身的筆記本,也可使用實驗室臺式機
- 安裝老師提供的software目錄中的「VMware-workstation-full-10.0.1-1379776.exe」
- 解壓老師提供的software目錄中的「Ubuntu1204.rar」
- 用VMWare打開Ubuntu,用戶名:linux,口令:1
- 創建實驗目錄"mkdir linux_組員1學號_組員2學號_組員3學號"
- 在實驗目錄中編寫「hello word」程序,另外補充幾行打印全部組員的學號姓名
- 參考bocsd目錄中的腳本armc.sh, 分別用gcc和交叉編譯器arm-none-linux-gnuenbi-gcc編譯hello.c,用gcc編譯的可執行文件命名linuxhello:gcc hello.c -o linuxhello; 用arm-none-linux-gnuenbi-gcc編譯的命名爲armhello: /usr/local/toolchain/toolchain4.3.2/bin/arm-none-linux-gnuenbi-gcc hello.c -o armhello
- 分別運行linuxhello,armhello,有什麼結果?提交截圖並用file命令分析緣由。
二、開發化境的熟悉-目標機宿主機聯通
- 使用實驗室機器不用安裝軟件,桌面上有相應圖標
- 使用本身筆記本電腦的,解壓超級終端軟件「windows7st(Windows).rar」,並在桌面上創建快捷方式(這個不用在實驗室作)
- 使用本身筆記本電腦的,到實驗室把「USB轉串口線」的USB口插入本身的電腦,把串口連到實驗箱的COM0
- 參考視頻配置超級終端,用超級終端做爲實驗箱的顯示終端
- 用ifconfig在超級終端中查看實驗箱IP(目標機),在Ubuntu中(宿主機)中用ifconfig在命令行查看IP
- 用網線鏈接實驗室臺式機(或本身筆記本電腦)和ARM實驗箱的網口NET1(最大屏旁邊的)
- 用ping命令保證目標機和宿主機能互相ping通,提交ping通的截圖
三、開發化境的熟悉-目標機運行程序
- 學習資源中第五週的「ARM實驗箱實驗指導書」的第二章,理解tftp和nfs的做用
- 在超級終端中用「mkdir /arm_組員1學號_組員2學號_組員3學號」 創建實驗箱中程序運行目錄「arm_組員1學號_組員2學號_組員3學號」
- 在超級終端中運行「mount -t nfs -o nolock 宿主機IP:/home/linux/linux_組員1學號_組員2學號 /arm_組員1學號_組員2學號__組員3學號」經過NFS把宿主機中的「linux_組員1學號_組員2學號」 映射到目標機中的「/arm_組員1學號_組員2學號_組員3學號」
- 超級終端中運行"cd /arm_組員1學號_組員2學號_組員3學號"
- 超級終端中運行"./armhello", 提交運行截圖,並深刻理解交叉編譯
2、實驗小組成員
20175208 |
張家華 |
20175218 |
陳敬勇 |
20175230 |
滕星 |
3、實驗步驟
一、交叉編譯環境-(使用本身筆記本電腦)
- 安裝「VMware-workstation-full-10.0.1-1379776.exe」
- 解壓「Ubuntu1204.rar」
- 用VMWare打開Ubuntu,用戶名:linux,口令:1
![v10.png](http://static.javashuo.com/static/loading.gif)
- 創建實驗目錄"mkdir linux_20175208_20175218_20175230"
![v11.png](http://static.javashuo.com/static/loading.gif)
- 編寫「helloword.c」程序,打印hello word 和 全部組員的學號姓名
![v12.png](http://static.javashuo.com/static/loading.gif)
- 分別用gcc和交叉編譯器arm-none-linux-gnuenbi-gcc編譯helloword.c,用gcc編譯的可執行文件命名linuxhello:gcc helloword.c -o linuxhello; 用arm-none-linux-gnuenbi-gcc編譯的命名爲armhello: /usr/local/toolchain/toolchain4.3.2/bin/arm-none-linux-gnuenbi-gcc helloword.c -o armhello
- 運行linuxhello,armhello結果以下:
![d1.png](http://static.javashuo.com/static/loading.gif)
二、開發化境的熟悉-目標機宿主機聯通
- 解壓超級終端軟件「windows7st(Windows).rar」,並在桌面上創建快捷方式
- 到實驗室把「USB轉串口線」的USB口插入本身的電腦,把串口連到實驗箱的COM0
- 配置超級終端,用超級終端做爲實驗箱的顯示終端
![v1.png](http://static.javashuo.com/static/loading.gif)
![v2.png](http://static.javashuo.com/static/loading.gif)
- 經過ifconfig在超級終端中查看實驗箱IP(目標機),在Ubuntu中(宿主機)中經過ifconfig在命令行查看IP
![v3.png](http://static.javashuo.com/static/loading.gif)
![v4.png](http://static.javashuo.com/static/loading.gif)
- 用網線鏈接本身筆記本電腦和ARM實驗箱的網口NET1
- 用ping命令保證目標機和宿主機能互相ping通,提交ping通的截圖
![v5.png](http://static.javashuo.com/static/loading.gif)
![v9.png](http://static.javashuo.com/static/loading.gif)
三、開發化境的熟悉-目標機運行程序
- 在超級終端中用「mkdir /arm_20175208_20175218_20175230」 創建實驗箱中程序運行目錄「arm_20175208_20175218_20175230」
- 在超級終端中運行「mount -t nfs -o nolock 192.168.0.230:/home/linux/linux_20175208_20175218 /arm_20175208_20175218__20175230」經過NFS把宿主機中的「linux_20175208_20175218」 映射到目標機中的「/arm_20175208_20175218_20175230」
- 超級終端中運行"cd /arm_20175208_20175218_20175230"
- 超級終端中運行"./armhello", 運行截圖以下:
![v13.png](http://static.javashuo.com/static/loading.gif)
4、實驗中遇到的問題及解決方法
問題:目標機和宿主機不能互相ping通linux
解決方法:
首先查看網絡是不是橋接,若是不是則將nat改爲橋接,而後查看防火牆是否關閉,未關閉則將其關閉,再把WiFi等網絡關閉,只用本地鏈接,若是這樣還不行,能夠換一臺電腦試試。windows
5、實驗感想
經過本次實驗,咱們知道了交叉編譯環境以及瞭解了開發環境的配置,咱們知道了如何在Linux中編譯程序並將生成的可執行文件在arm超級終端上運行。
在此次實驗中,咱們經過本身的筆記本電腦打開兩個虛擬機主機,也就是提供了虛擬機運行的環境,而後把arm編譯工具共享給win7虛擬機,在win7虛擬機下用arm編譯工具編譯helloword.c文件,將生成的可執行文件在arm超級終端上運行。因爲電腦配置的緣由,在作實驗時,遇到ping不通的狀況,並且根據網上大佬的方法進行調整,仍是沒法實現,就只能換一臺電腦從新開始,耗費了咱們不少時間,最終下課的時候,第三步只作了一半,沒能完成最後步驟,在次日,借用他們向實驗室借的實驗箱繼續作,最終才把最後一步完成。網絡
6、新學到的知識點
- 交叉編譯
- 宿主機與目標機
- NFS
- 超級終端
- file命令
7、參考資料
1.實驗指導工具
2.Arm實驗箱實驗環境學習