學習啦 > 學習方法 > 通用學習方法 > 學習經(jīng)驗 > 如何學習arm嵌入式

如何學習arm嵌入式

時間: 威敏1027 分享

如何學習arm嵌入式

  嵌入式從2002年之后就成為很熱門的職業(yè),這其中以ARM的商用分不開,下面學習啦小編收集了一些關(guān)于學習arm嵌入式的方法,希望對你有幫助

  學習arm嵌入式方法

  基礎(chǔ)部分:基礎(chǔ)打不牢的工程師必然是走不遠的。

  匯編語言、C語言,數(shù)據(jù)結(jié)構(gòu)和算法、操作系統(tǒng)都是必須要懂得的。當然了,如果能用開發(fā)板把機械手臂和智能小車這樣的項目自己動手開發(fā)一下,效果就更好了,一方面是降低了學習的枯燥,另一方面自己動了手也會增加實際經(jīng)驗。

  嵌入式應用層開發(fā):

  Linux系統(tǒng)編程、網(wǎng)絡(luò)編程、UcOS、通信協(xié)議及編程技術(shù)、GUI-Qt、圖形化界面開發(fā)等等。這部分技術(shù)所對應的工程師是目前國內(nèi)相當缺乏的,也是嵌入式開發(fā)者就業(yè)最多的地方。雖然工資沒有做底層得高,但個把萬還是能夠輕松實現(xiàn)的。

  嵌入式底層開發(fā):

  linuxkernel(linux內(nèi)核)、rootfile(根文件系統(tǒng)),系統(tǒng)移植,linux驅(qū)動程序這些技術(shù)最好都懂一些。你在這里需要用到一個運行計算能力更強的arm開發(fā)板來做輔助,測試你的底層代碼是否能夠運行,像尚觀提供給學員的就是cortex—a9的三星 exnoys 4412四核平臺。

  學習嵌入式系統(tǒng)之基礎(chǔ)知識

  1、Linux 基礎(chǔ)

  安裝Linux操作系統(tǒng):Linux文件系統(tǒng) ,Linux常用命令,Linux啟動過程詳解,熟悉Linux服務(wù)能夠獨立安裝Linux操作系統(tǒng),能夠熟練使用Linux系統(tǒng)的基本命令,認識Linux系統(tǒng)的常用服務(wù)安裝Linux操作系統(tǒng),Linux基本命令實踐,設(shè)置Linux環(huán)境變量,定制Linux的服務(wù),Shell 編程基礎(chǔ)使用vi編輯文件,使用Emacs編輯文件,使用其他編輯器。

  2、Shell 編程基礎(chǔ)

  Shell簡介:認識后臺程序Bash編程熟悉Linux系統(tǒng)下的編輯環(huán)境,熟悉Linux下的各種Shell,熟練進行shell編程熟悉vi基本操作,熟悉Emacs的基本操作,比較不同shell的區(qū)別,編寫一個測試服務(wù)器是否連通的shell腳本程序,編寫一個查看進程是否存在的shell腳本程序,編寫一個帶有循環(huán)語句的shell腳本程序。

  3、Linux下的 C 編程基礎(chǔ)

  linux C語言環(huán)境概述:Gcc使用方法:Gdb調(diào)試技術(shù),Autoconf Automake Makefile,代碼優(yōu)化,熟悉Linux系統(tǒng)下的開發(fā)環(huán)境,熟悉Gcc編譯器,熟悉Makefile規(guī)則編寫Hello,World程序,使用make命令編譯程序,編寫帶有一個循環(huán)的程序,調(diào)試一個有問題的程序。

  4、嵌入式系統(tǒng)開發(fā)基礎(chǔ)

  嵌入式系統(tǒng)概述:交叉編譯配置TFTP服務(wù),配置NFS服務(wù),下載Bootloader和內(nèi)核,嵌入式Linux應用軟件開發(fā)流程熟悉嵌入式系統(tǒng)概念以及開發(fā)流程,建立嵌入式系統(tǒng)開發(fā)環(huán)境制作cross_gcc工具鏈,編譯并下載U-boot 編譯并下載Linux內(nèi)核編譯并下載Linux應用程序。

  5、嵌入式系統(tǒng)移植

  Linux內(nèi)核代碼:平臺相關(guān)代碼分析,ARM平臺介紹,平臺移植的關(guān)鍵技術(shù),移植Linux內(nèi)核到ARM平臺,了解移植的概念,能夠移植Linux內(nèi)核移植Linux2.6內(nèi)核到arm9開發(fā)板。

  6、嵌入式 Linux 下串口通信

  串行I/O的基本概念:嵌入式Linux應用軟件開發(fā)流程,Linux系統(tǒng)的文件和設(shè)備,與文件相關(guān)的系統(tǒng)調(diào)用,配置超級終端和MiniCOM能夠熟悉進行串口通信,熟悉文件I/O,編寫串口通信程序,編寫多串口通信程序。

  7、嵌入式系統(tǒng)中多進程程序設(shè)計

  Linux系統(tǒng)進程概述:嵌入式系統(tǒng)的進程特點,進程操作,守護進程,相關(guān)的系統(tǒng)調(diào)用了解Linux系統(tǒng)中進程的概念,能夠編寫多進程程序編寫多進程程序,編寫一個守護進程程序,sleep系統(tǒng)調(diào)用任務(wù)管理、同步與通信Linux任務(wù)概述任務(wù)調(diào)度管道、信號共享內(nèi)存,任務(wù)管理 API,了解Linux系統(tǒng)任務(wù)管理機制,熟悉進程間通信的幾種方式,熟悉嵌入式Linux中的任務(wù)間同步與通信編寫一個簡單的管道程序?qū)崿F(xiàn)文件傳輸,編寫一個使用共享內(nèi)存的程序。

  嵌入式系統(tǒng)的分層與專業(yè)的分類

  1、硬件層,是整個嵌入式系統(tǒng)的根本,如果現(xiàn)在單片機及接口這塊很熟悉,并且能用C和匯編語言來編程的話,從嵌入式系統(tǒng)的硬件層走起來相對容易,硬件層也是驅(qū)動層的基礎(chǔ),一個優(yōu)秀的驅(qū)動工程師是要能夠看懂硬件的電路圖和自行完成CPLD的邏輯設(shè)計的,同時還要對操作系統(tǒng)內(nèi)核及其調(diào)度性相當?shù)氖煜さ?。但硬件平臺是基礎(chǔ),增值還要靠軟件。

  硬件層比較適合于,電子、通信、自動化、機電一體、信息工程類專業(yè)的人來搞,需要掌握的專業(yè)基礎(chǔ)知識有,單片機原理及接口技術(shù)、微機原理及接口技術(shù)、C語言。

  2、驅(qū)動層,這部分比較難,驅(qū)動工程師不僅要能看懂電路圖還要能對操作系統(tǒng)內(nèi)核十分的精通,以便其所寫的驅(qū)動程序在系統(tǒng)調(diào)用時,不會獨占操作系統(tǒng)時間片,而導至其它任務(wù)不能動行,不懂操作系統(tǒng)內(nèi)核架構(gòu)和實時調(diào)度性,沒有良好的驅(qū)動編寫風格,按大多數(shù)書上所說添加的驅(qū)動的方式,很多人都能做到,但可能連個初級的驅(qū)動工程師的水平都達不到,這樣所寫的驅(qū)動在應用調(diào)用時就如同windows下我們打開一個程序運行后,再打開一個程序時,要不就是中斷以前的程序,要不就是等上一會才能運行后來打開的程序。想做個好的驅(qū)動人員沒有三、四年功底,操作系統(tǒng)內(nèi)核不研究上幾編,不是太容易成功的,但其工資在嵌入式系統(tǒng)四層中可是最高的。

  驅(qū)動層比較適合于電子、通信、自動化、機電一體、信息工程類專業(yè)尤其是計算機偏體系結(jié)構(gòu)類專業(yè)的人來搞,除硬件層所具備的基礎(chǔ)學科外,還要對數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)原理、編譯原理都要十分精通了解。

  3、操作系統(tǒng)層,對于操作系統(tǒng)層目前可能只能說是簡單的移植,而很少有人來自已寫操作系統(tǒng),或者寫出缺胳膊少腿的操作系統(tǒng)來,這部分工作大都由驅(qū)動工程師來完成。操作系統(tǒng)是負責系統(tǒng)任務(wù)的調(diào)試、磁盤和文件的管理,而嵌入式系統(tǒng)的實時性十分重要。據(jù)說,XP操作系統(tǒng)是微軟投入300人用兩年時間才搞定的,總時工時是600人年,中科院軟件所自己的女媧Hopen操作系統(tǒng)估計也得花遇幾百人年才能搞定。因此這部分工作相對來講沒有太大意義。

  4、應用層,相對來講較為容易的,如果會在windows下如何進行編程接口函數(shù)調(diào)用,到操作系統(tǒng)下只是編譯和開發(fā)環(huán)境有相應的變化而已。如果涉及Jave方面的編程也是如此的。嵌入式系統(tǒng)中涉及算法的由專業(yè)算法的人來處理的,不必歸結(jié)到嵌入式系統(tǒng)范疇內(nèi)。但如果涉及嵌入式系統(tǒng)下面嵌入式數(shù)據(jù)庫、基于嵌入式系統(tǒng)的網(wǎng)絡(luò)編程和基于某此應用層面的協(xié)議應用開發(fā)(比如基于SIP、H.323、Astrisk)方面又較為復雜,并且有難度了。
猜你感興趣:

1.如何開始學習嵌入式

2.嵌入式學習心得體會演講稿

3.嵌入式系統(tǒng)基本知識

4.嵌入式培訓心得體會

5.嵌入式實訓心得體會3篇

3216602