本文主要介紹 嵌入式開發(fā)板技術(shù)的學習步驟。 嵌入式技術(shù)的知識面非常廣,學起來往往不知道如何下手,那么嵌入式技術(shù)應該從哪里開始學起,以及按照什么樣的步驟學習,順利入門,成為一個合格的嵌入式工程師。 最初最基本的東西呢就是要搞清楚幾個概念,要搞清楚什么是bootloadre 引導程序,什么是Linux操作系統(tǒng)內(nèi)核Kernel,什么是文件系統(tǒng)。如果搞不明白,直接去學其他的內(nèi)容,學起來就比較迷糊,實際上是在走彎路。 接下來大多數(shù)工作都是圍繞這幾個文件展開的,比如編譯環(huán)境的搭建,源代碼的編譯和燒寫,應用程序和驅(qū)動程序的編程等等,就是說這幾個文件是貫穿我們整個嵌入式學習的始終的。把這幾個文件搞明白了,后面的學習也就有了目標,所以說搞明白這幾個文件的含義非常重要。 接下來需要我們做的是搭建編譯環(huán)境,迅為公司為了讓大家少走彎路,已經(jīng)把安裝步驟做了很大程度的簡化,比如已經(jīng)做好了虛擬機的ubuntu鏡像,直接拷貝進去就可以使用了。 開發(fā)環(huán)境搭建起來以后,這個時候可以學習一下對源碼進行編譯,同時也可以學習一下燒寫,一步步按照教程去做就可以了。 系統(tǒng)的編譯和燒寫都是依賴于這個開發(fā)環(huán)境的,也就是必須在虛擬機上安裝好ubuntu,并且把源代碼從光盤中拷貝到ubuntu的環(huán)境下面,只要按照教程的提示往下做就可以了。 在熟練掌握系統(tǒng)的編譯和燒寫以后,就可以進一步開始嵌入式開發(fā)了,那么這個時候建議先學習一下Linux應用程序的設計,也就是按照教程開始逐步深入。 這個時候要按照網(wǎng)盤里的‘iTOP-4412開發(fā)板視頻教程及其相關(guān)’里的‘嵌入式linux視頻’。 大家在初學的時候,還是要按照這個實驗的順序來走一遍,這里強調(diào)兩個方面,來幫助大家理解: 一、第一個實驗也就是第0個,是制作linux的最小系統(tǒng),那么什么是最小系統(tǒng)呢,就是Linux運行的時候能跑的起來的最小系統(tǒng),也就是說我們在文件系統(tǒng)當中把圖形系統(tǒng)的內(nèi)容從這個文件系統(tǒng)里面砍掉了;在很多設備里面,比如說路由器,或者一些通訊類或者控制類的產(chǎn)品中是不需要圖形界面的,這樣我們就可以做一個簡化的Linux文件系統(tǒng),這時候最小系統(tǒng)的設計就排上用場了。 二、這些實驗都是通過燒寫文件系統(tǒng)的方式來測試的,其實有一種比較簡單和實用的方法,那就是通過網(wǎng)絡文件系統(tǒng)來進行(NFS),至于什么是NFS,以及如何搭建,大家一定要學習一下,具體可以參考第12個試驗,就是‘實驗12’,因為將來我們調(diào)試應用程序或者驅(qū)動都是要通過這個手段來進行的,它是公認的比較好用的調(diào)試辦法。也就是說我們這些實驗回過頭來,都是可以通過NFS來進行調(diào)試的,這時候就不用每次燒寫,整個調(diào)試工作變得更容易,在實際的Linux調(diào)試中,多數(shù)是通過這種方式來進行的。 所以說大家一定要學會NFS的調(diào)試方法。 學完Linux的應用程序設計,接著應該學習一下Linux驅(qū)動方面的編程了。Linux驅(qū)動程序全部掌握是非常困難的,但是要明確我們的目標是能利用Linux這個操作系統(tǒng)來開發(fā)產(chǎn)品。大家都知道,Linux的驅(qū)動分為網(wǎng)絡設備驅(qū)動、塊設備驅(qū)動以及字符類設備驅(qū)動,如前面所述,我們只需要把字符類設備的驅(qū)動掌握好就可以了。 因為在開發(fā)產(chǎn)品的時候,網(wǎng)絡設備以及塊設備驅(qū)動在開發(fā)套件里都是做好的,直接用就可以了,幾乎沒有人從頭去做,就算開發(fā)不同的網(wǎng)絡接口驅(qū)動,也是直接把現(xiàn)成寫好的驅(qū)動拿來直接調(diào)試一下。所以說塊設備和網(wǎng)絡設備不需要我們?nèi)ヌ嚓P(guān)注,但是對于字符類設備驅(qū)動就需要我們仔細研究并且完全掌握了,那么最基本的字符類驅(qū)動就是針對GPIO 的驅(qū)動設計,這個是一定要掌握的。比如我們的產(chǎn)品增加一個步進電機,驅(qū)動幾個開關(guān)、繼電器、采集電流電壓模擬量、擴展并對外部RAM內(nèi)存數(shù)據(jù)的讀取等等,都是基本的字符類的驅(qū)動,至于RFID、GPS模塊、GPRS模塊、CAN總線等等實際都是利用Linux本身已經(jīng)做好的驅(qū)動,歸根到底是使用串口、I2C以及SPI等來實現(xiàn)的,很多開發(fā)并不需要我們做什么。對于網(wǎng)絡設備,只需要在上層做個應用程序,用SOCKET來實現(xiàn)數(shù)據(jù)通訊就可以了。 那么在學習這部分內(nèi)容之前呢,建議大家讀一下另一個聊天記錄:‘Linux驅(qū)動初探_精英版QQ群聊天記錄.doc’,這個文檔會對大家理解驅(qū)動的架構(gòu)很有好處。 那么我們前面說到了,應用程序的調(diào)試要通過NFS來進行,驅(qū)動也是這樣的,而且要學會用模塊的方法來調(diào)試驅(qū)動。 我們在Android的視頻中比較詳細的介紹了Linux的底層如何構(gòu)建LED的驅(qū)動程序。除此之外呢,我們會在補充文檔里面跟大家說明如何使用模塊,也就是module的方法來調(diào)試驅(qū)動程序。掌握這些方法是很重要的。也就是說大家一定要掌握通過module的方法動態(tài)加載和卸載驅(qū)動來調(diào)試驅(qū)動程序。 當大家熟練學會了以上強調(diào)的Linux系統(tǒng)的開發(fā)技術(shù),我想大家對Linux的體系有了基本的了解,這個時候其實已經(jīng)算是入門了,也就是說可以嘗試去做一些產(chǎn)品,并不是說我們對Linux的源碼分析一遍才能真正做事情,不是那樣的,我們的目標是做產(chǎn)品,學會利用Linux這個操作系統(tǒng),開發(fā)出目標產(chǎn)品!
https://tbm-auth.alicdn.com/e99361edd833010b/IHoXeCwkmNglA8TJjKN/TWlohDN2B7AJCf2469S_241822315598_hd_hq.mp4?auth_key=1573456163-0-0-fe46a24962306b7a82860d61003da090
TB2QPkbaFXXXXc3XXXXXXXXXXXX_!!684017536.jpg
|