1. 程式人生 > >嵌入式開發板的學習步驟-基於iTOP-4412開發板

嵌入式開發板的學習步驟-基於iTOP-4412開發板

本文主要介紹嵌入式開發板技術的學習步驟。

嵌入式技術的知識面非常廣,學起來往往不知道如何下手,那麼嵌入式技術應該從哪裡開始學起,以及按照什麼樣的步驟學習,順利入門,成為一個合格的嵌入式工程師。

最初最基本的東西呢就是要搞清楚幾個概念,要搞清楚什麼是bootloadre載入程式,什麼是Linux作業系統核心Kernel,什麼是檔案系統。如果搞不明白,直接去學其他的內容,學起來就比較迷糊,實際上是在走彎路。

接下來大多數工作都是圍繞這幾個檔案展開的,比如編譯環境的搭建, 原始碼的編譯和燒寫, 應用程式和驅動程式的程式設計等等,就是說這幾個檔案是貫穿我們整個嵌入式學習的始終的。把這幾個檔案搞明白了,後面的學習也就有了目標,所以說搞明白這幾個檔案的含義非常重要。

接下來需要我們做的是搭建編譯環境,迅為公司為了讓大家少走彎路,已經把安裝步驟做了很大程度的簡化,比如已經做好了虛擬機器的ubuntu映象,直接拷貝進去就可以使用了。

開發環境搭建起來以後,這個時候可以學習一下對原始碼進行編譯,同時也可以學習一下燒寫,一步步按照教程去做就可以了。

系統的編譯和燒寫都是依賴於這個開發環境的,也就是必須在虛擬機器上安裝好ubuntu,並且把原始碼從光碟中拷貝到ubuntu的環境下面,只要按照教程的提示往下做就可以了。

在熟練掌握系統的編譯和燒寫以後,就可以進一步開始嵌入式開發了,那麼這個時候建議先學習一下Linux應用程式的設計,也就是按照教程開始逐步深入。

這個時候要按照網盤裡的‘iTOP-4412開發板視訊教程及其相關’裡的‘嵌入式linux視訊’。

大家在初學的時候,還是要按照這個實驗的順序來走一遍,這裡強調兩個方面,來幫助大家理解:

一、第一個實驗也就是第0個,是製作linux的最小系統,那麼什麼是最小系統呢,就是Linux執行的時候能跑的起來的最小系統,也就是說我們在檔案系統當中把圖形系統的內容從這個檔案系統裡面砍掉了;在很多裝置裡面,比如說路由器,或者一些通訊類或者控制類的產品中是不需要圖形介面的,這樣我們就可以做一個簡化的Linux檔案系統,這時候最小系統的設計就排上用場了。

二、這些實驗都是通過燒寫檔案系統的方式來測試的,其實有一種比較簡單和實用的方法,那就是通過網路檔案系統來進行(NFS),至於什麼是NFS,以及如何搭建,大家一定要學習一下,具體可以參考第12個試驗,就是‘實驗12’,因為將來我們除錯應用程式或者驅動都是要通過這個手段來進行的,它是公認的比較好用的除錯辦法。也就是說我們這些實驗回過頭來,都是可以通過NFS來進行除錯的,這時候就不用每次燒寫,整個除錯工作變得更容易,在實際的Linux除錯中,多數是通過這種方式來進行的。

所以說大家一定要學會NFS的除錯方法。

學完Linux的應用程式設計,接著應該學習一下Linux驅動方面的程式設計了。Linux驅動程式全部掌握是非常困難的,但是要明確我們的目標是能利用Linux這個作業系統來開發產品。大家都知道,Linux的驅動分為網路裝置驅動、塊裝置驅動以及字元類裝置驅動,如前面所述,我們只需要把字元類裝置的驅動掌握好就可以了。

因為在開發產品的時候,網路裝置以及塊裝置驅動在開發套件裡都是做好的,直接用就可以了,幾乎沒有人從頭去做,就算開發不同的網路介面驅動,也是直接把現成寫好的驅動拿來直接除錯一下。所以說塊裝置和網路裝置不需要我們去太多關注,但是對於字元類裝置驅動就需要我們仔細研究並且完全掌握了,那麼最基本的字元類驅動就是針對GPIO的驅動設計,這個是一定要掌握的。比如我們的產品增加一個步進電機,驅動幾個開關、繼電器、採集電流電壓模擬量、擴充套件並對外部RAM記憶體資料的讀取等等,都是基本的字元類的驅動,至於RFID、GPS模組、GPRS模組、CAN匯流排等等實際都是利用Linux本身已經做好的驅動,歸根到底是使用串列埠、I2C以及SPI等來實現的,很多開發並不需要我們做什麼。對於網路裝置,只需要在上層做個應用程式,用SOCKET來實現資料通訊就可以了。

那麼在學習這部分內容之前呢,建議大家讀一下另一個聊天記錄:‘Linux驅動初探_精英版QQ群聊天記錄.doc’,這個文件會對大家理解驅動的架構很有好處。

那麼我們前面說到了,應用程式的除錯要通過NFS來進行,驅動也是這樣的,而且要學會用模組的方法來除錯驅動。

我們在Android的視訊中比較詳細的介紹了Linux的底層如何構建LED的驅動程式。除此之外呢,我們會在補充文件裡面跟大家說明如何使用模組,也就是module的方法來除錯驅動程式。掌握這些方法是很重要的。也就是說大家一定要掌握通過module的方法動態載入和解除安裝驅動來除錯驅動程式。

當大家熟練學會了以上強調的Linux系統的開發技術,我想大家對Linux的體系有了基本的瞭解,這個時候其實已經算是入門了,也就是說可以嘗試去做一些產品,並不是說我們對Linux的原始碼分析一遍才能真正做事情,不是那樣的,我們的目標是做產品,學會利用Linux這個作業系統,開發出目標產品!