1. 程式人生 > >Linux入門之入手開發板與開發環境的搭建 2016.5.7

Linux入門之入手開發板與開發環境的搭建 2016.5.7

這是我的關於Linux的第一篇文章,這個Linux系統程式設計系列的部落格用於定期整理我學習Linux過程的一些知識,主要目的是記錄自己的學習過程,利用寫部落格的過程來梳理自己的知識。

一、學習Linux的初衷

大二下學期時,因為一個叫電腦鼠(MicroMouse)的競賽開始接觸32位的微控制器。電腦鼠是一個輪式機器人,主要就是用微控制器讀取很多感測器的資訊,然後利用這些資訊通過微控制器去控制兩個電機運轉,最終讓這個輪式機器人穩定的行走,我在這個競賽中負責的是軟體程式設計的工作。這個輪式機器人的主控晶片用的是Cortex-M3核心的STM32系列晶片,因此我剛開始起步的時候到網上買了相同主控晶片的開發板用於學習微控制器程式設計。想在看來,對於自動化的學生來說,用這些競賽來入門是個相當不錯的選擇,可以很快的對微控制器相關的軟體程式碼結構和硬體電路有一些瞭解,通過這些競賽也能知道平時學的一些課程都有什麼用處。

在大三下學期,好多同學都在找暑期實習,我抱著試試看的態度就想去學校的實習招聘會試一試,希望能找到一個專業相關的實習。然而找工作的時候發現會個微控制器根本不算什麼,現在STM32系列晶片相當的火,很多人做個國創,買個開發板,簡單的用了下微控制器的GPIO輸入輸出,找工作的時候也說自己會微控制器。在找全職工作的時候也是,會個微控制器只能算作溫飽技能。我就開始覺得,僅僅做到熟練使用微控制器的程度,遠遠不夠找到一個好工作。抱著這樣的心態,我決定開始往Linux和Android方向發展。

二、Linux開發板的選擇

我決定學Linux系統程式設計作為起步,然後進一步學習Linux的驅動程式設計,最後研究Linux的系統移植,簡單瞭解Android的相關圖形介面,簡單瞭解Linux伺服器相關知識。按照這樣的順序開始學習。一開始,我開始在網上了解一些關於Linux的知識,到圖書館接一些嵌入式Linux相關的書瞭解瞭解,後來覺得這樣學速度太慢,還是要像學微控制器那樣,買一個開發板入手學習才會比較快。後來我在知乎上看到了這篇文章,

如何選擇微控制器和Android-LInux-ARM開發板?決定三星Exnoys4412這個主控晶片的開發板,到淘寶上找到訊為TOPEET的iTOP4412開發板資料最全,所以就入手了這款開發板。


我沒有選擇樹莓派、Beaglebone Black這樣的開發板來學習嵌入式,因為我覺得這些板子都是國外的,資料不夠齊全,軟硬體的開源程度都比不上這個開發板。因為我學習嵌入式的打算從底層學起,所以在比對了很久之後還是覺得入手訊為iTOP4412開發板。

三、開發環境的搭建

我是四月底購買的這款開發板,五月初開始研究這款開發板。比起STM32微控制器,搭建Linux開發環境要麻煩許多,光所需的軟體和映象我就下載了好幾天。

3.1        VMware Workstation的安裝

VMware Workstation是一個用於在Windows平臺執行各種虛擬器的軟體,所以要先安裝VMware Workstation,才能在VMware Workstation中安裝Linux虛擬機器。


3.2   Ubuntu 64位虛擬機器的安裝

Ubuntu是一個基於Linux的OS,安裝Ubuntu虛擬機器有兩個作用:1、熟悉Linux系統中的相關操作指令。2、利用Ubuntu虛擬機器來編輯程式碼然後將編譯完成的程式碼安裝到開發板上執行。

要安裝虛擬機器,首先要下載Ubuntu系統的映象檔案。在安裝了VMwareWorkstation之後,在檔案->新建虛擬機器目錄下,可以通過嚮導安裝虛擬機器。安裝虛擬機器的過程中,有一些虛擬機器記憶體、硬碟、處理器、網路等相關資訊的設定。

然後執行Ubuntu虛擬機器,進入Ubuntu系統。


Ubuntu虛擬機器中,主要用到的功能就是CTRL+ALT+T開啟的Linux命令列模式。通過命令列模式,熟悉sudo passwd,su root,clear,ifconfig,ls,mkdir,rm,pwd,cd,tar,cp,man等shell命令。

 

3.3       Vim編輯器的安裝

在命令列中輸入apt-get install vim安裝Vim編輯器,通過vim+檔名新建或開啟檔案,Vim編輯器有三種模式:指令模式、底行模式和輸入模式。開啟檔案之後預設進入指令模式;指令模式下shift+:進入底行模式,底行模式下輸入wq或q退出檔案,按esc退回指令模式;指令模式下,按Insert或i進入輸入模式,輸入模式下可以編輯檔案,然後按esc切換到指令模式。

 

3.4        SSH軟體的使用

通過SSH軟體,可以實現主機與虛擬機器之間的通訊,主要作用是:在後面的系統程式設計中,主要在Windows環境下編輯程式碼,然後通過SSH拷貝到Ubuntu虛擬機器中編譯,編譯之後,在通過SSH把編譯好的檔案拷貝到Windows環境中。

 

3.5        Source Insight的安裝

Source Insight主要用於閱讀Linux原始碼。安裝完畢之後,在Source Insight中新建工程,建立Linux程式碼工程,閱讀Linux原始碼。前期入門一般沒必要閱讀原始碼。


 

3.6        安卓ADB驅動的安裝

ADB驅動安裝在Windows平臺上,用於電腦和開發板之間通訊,可以通過ADB驅動,在Windows的CMD命令列中控制開發板,在開發板上安裝apk,通過ADB驅動燒寫程式到開發板上。電腦裝置管理器上面的Android CompositeADB Interface證明ADB驅動已經安裝。

常見的ADB命令有 adb decvice,adb service,adb shell 等命令。

 

3.7        超級串列埠終端的安裝

超級串列埠用於電腦和開發板相通訊,通過超級串列埠終端,電腦可以通過串列埠線,在命令列模式下控制開發板,開發板也通過串列埠列印一些必要的資訊。

 

初步的Linux開發環境的搭建就到這裡。