本文主要介紹的是嵌入式系統(tǒng)開發(fā)學習心得體會及經(jīng)驗總結,首先介紹了嵌入式系統(tǒng)開發(fā)的三大關鍵點,其次推薦了嵌入式系統(tǒng)開發(fā)必讀的書籍,最后介紹了學習嵌入式系統(tǒng)開發(fā)的體會及經(jīng)驗總結。
嵌入式系統(tǒng)開發(fā)簡介
嵌入式系統(tǒng)開發(fā)是對于除了電腦之外的所有電子設備上操作系統(tǒng)的開發(fā),開發(fā)對象有手機,掌上電腦,機電系統(tǒng)等,一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統(tǒng)以及用 戶的應用程序等四個部分組成。
嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于應用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。它一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統(tǒng)以及用 戶的應用程序等四個部分組成,用于實現(xiàn)對其他設備的控制、監(jiān)視或管理等功能。
嵌入式系統(tǒng)一般指非PC系統(tǒng),它包括硬件和軟件兩部分。硬件包括處理器/微處理器、存儲器及外設器件和I/O端口、圖形控制器等。軟件部分包括操作系統(tǒng)軟件(OS)(要求實時和多任務操作)和應用程序編程。有時設計人員把這兩種軟件組合在一起。應用程序控制著系統(tǒng)的運作和行為;而操作系統(tǒng)控制著應用程序編程與硬件的交互作用。
嵌入式系統(tǒng)開發(fā)的三大關鍵點
1、嵌入式系統(tǒng)是相對于PC平臺而言的,使用的平臺一般是針對ARM,PPC,DSP等非PC平臺的,所以使用的編譯和調(diào)試工具不是VC6.0,而是不同的平臺需要專門的編譯開發(fā)工具,交叉編譯是嵌入式特有的概念;
2、嵌入式系統(tǒng)往往指帶有操作系統(tǒng)的系統(tǒng),以前簡單的系統(tǒng)可以直接在裸機(如51單片機)上開發(fā),而現(xiàn)在OS成為嵌入式的一個基本特征,已經(jīng)有各種實時內(nèi)核或者全功能的OS,因此對程序員要求較高;
3、嵌入式系統(tǒng)往往包括軟件和硬件兩個部分,軟件開發(fā)人員往往也需要知道硬件的知識,只有知道硬件的特性才能開發(fā)出高性能的程序。另外不想在PC上開發(fā),驅(qū)動程序都已經(jīng)有了,在嵌入式系統(tǒng)中由于所接的外設復雜,很多時候需要自己編寫驅(qū)動程序,結果是在程序開發(fā)之前一般需要看硬件手冊。
嵌入式系統(tǒng)開發(fā)從何學起?
這是一個初學者很想知道的問題,然而又是很難回答的問題,我初學時也是一樣的。學習嵌入式不能著急,我覺得最重要的還是打好基礎,從簡單的做起。其中的基本功主要有:
1、微機原理和接口要很熟悉,至少知道一門匯編語言,不是要你去記指令,而是要弄清楚處理器執(zhí)行的過程和常用的指令執(zhí)行的操作;
2、熟悉常用的體系結構。ARM架構處理器應用越來越廣泛,值得研究一下,當然還有很多的體系架構,開發(fā)時再看硬件手冊這個過程就是訓練自己閱讀手冊和查詢手冊的能力,手冊很長,往往只要知道個大概。細節(jié)需要在使用時查詢;
3、C語言編程:C語言大家都會用,我知道在學校學習時都是基于PC,基本不會用C語言程序訪問寄存器或者外設,而在嵌入式開發(fā)時你會發(fā)現(xiàn)有很多地方需要小心,舉個例子,一般中斷服務程序需要訪問的全局變量需要用volatile申明。
嵌入式系統(tǒng)開發(fā)必讀書籍推薦
1、針對入門級的教材
推薦高等教育出版社的全國計算機等級考試-三級教程(嵌入式系統(tǒng)開發(fā)技術),此書對嵌入式系統(tǒng)的整體把握還是很好的,此書的匯編指令介紹得也很不錯,盡管這本書較少提及linux方面的知識,也幾乎沒有u-boot方面的內(nèi)容,但每個部分簡明扼要,全書314頁左右,沒有太多代碼,讓沒有基礎的你,在閱讀的時候不至于淹沒于代碼的海洋,此書強烈建議大一新生直接使用,自學,并參加計算機三級考試,對嵌入式系統(tǒng)有一個輪廓性的認識。
2、與第一本書同時閱讀參考的教材
嵌入式系統(tǒng)基礎教程(俞建新,王健,宋健?。?,此書為全國重點大學計算機教材,同樣的特點,薄,但是這本書相對于第一本,更精,對比其中介紹DRAM和SRAM的內(nèi)容,就可以知道此書作者的用心程度,如果不考計算機等級考試,直接看這本入門即可,而且此書圖很豐富,在讓你不陷入代碼的同時,不陷入文字,更精準理解知識點。
3、linux操作系統(tǒng)使用
《鳥哥的Linux私房菜 》、文東戈老師的《linux操作系統(tǒng)實用教程》、劉憶智《linux從入門到精通》。
4、大名鼎鼎的韋東山教材
《嵌入式linux應用開發(fā)完全手冊》, 此書必讀,不可替代,沒有之一,在前兩本的熏陶下,你就會開始好奇嵌入式系統(tǒng)的工作原理,這時候你再泡入代碼,已經(jīng)可以開始在代碼中遨游,尤其韋老師寫書寫得很細致,對代碼不僅做了詳細注釋,還對其進行點評,相信結合代碼,你對嵌入式系統(tǒng)的硬件體系架構,特殊功能寄存器配置,中斷體系架構會有更深刻的理解,全書采取案例教學,并不對某些很細的知識點展開,所以你需要閱讀相應知識點更專業(yè)的教材,例如makefile,arm匯編,shell編程等等,這些都是體現(xiàn)在案例分析中,沒有很全面列出,但是這不影響此書成為嵌入式業(yè)界頂級教材的地位。
5、linux程序設計
推薦徐城老師編寫的《linux環(huán)境C程序設計》、電子科技大學李林老師編著的《linux程序設計實踐》和Neil Matthew的《linux程序設計》 。
6、linux內(nèi)核方面
好的教材有:韓國人寫的《arm linux內(nèi)核源碼剖析》和德國人寫的《深入linux內(nèi)核架構》,都是翻譯本。
7、linux驅(qū)動方面
國內(nèi)最好的教材:宋寶華老師的《Linux設備驅(qū)動開發(fā)詳解:基于最新的Linux 4.0內(nèi)核》,美國人寫的 Linux設備驅(qū)動程序(中文版第三版)也是經(jīng)典教材。
8、《程序員的自我修養(yǎng)-鏈接、裝載與庫》。
9、《深入淺出嵌入式底層軟件開發(fā)》
10、《ARM+LINUX入門與實踐 》
11、《嵌入式Linux系統(tǒng)工程師標準培訓教材》
嵌入式系統(tǒng)開發(fā)學習心得體會
以下主要是講在嵌入式開發(fā)學習和應用階段,需要注意的一些細節(jié)和一些習慣,相信我的嵌入式開發(fā)學習心得對你會有幫助。
都說字如其人,但作為嵌入式工程師來講,編制程序的習慣同樣能夠反應出其水平,每位工程師都會有自己的程序設計風格和邏輯思路,所以想要成為一名合格的嵌入式工程師,形成良好的編程習慣是非常有必要的,如果便編寫的程序結構合理、清晰、便于執(zhí)行,便于調(diào)試和維護,不僅自己看得懂,別人也可以看懂,這樣的程序何樂而不為呢?下面就簡單來了解下基本的編程習慣需注意的幾點內(nèi)容,也就是我的嵌入式開發(fā)學習心得。
1、模塊化的程序結構編程習慣。
模塊化設計簡單來講就是程序的編寫用主程序、子程序和子過程等框架把軟件的主要結構和流程描述出來,同時定義和調(diào)試好各個框架之間的輸入和輸出鏈接關系,通過一些列的以功能塊為單位的算法描述進行設計,使程序復雜度、程序設計、調(diào)試和維護等等操作過程更為簡單化。
說到這里我想起了學習時實操項目的一些經(jīng)歷,如果要設計一款單片機控制器,該控制器接收串口發(fā)送來的文字信息,顯示在128X64的單色液晶屏上。通過約定的協(xié)議方式來確定文字的字體、大小、文字內(nèi)容等什么位置顯示、最終這些信息會以什么樣的方式顯示出來。根據(jù)模塊化的程序設計思想,程序代碼分布在串口數(shù)據(jù)收發(fā)模塊、數(shù)據(jù)協(xié)議解析處理模塊、LCD文字顯示處理模塊和主程序模塊四個模塊內(nèi)。經(jīng)過簡單的分析和設計思想,使每個模塊都形成目的明確、功能單一的程序代碼,然后每個模塊再通過頭文件,將模塊中的接口函數(shù)、全局變量、結構體等內(nèi)容導出。最終系統(tǒng)功能就會很好地實現(xiàn)。
2、清晰移動的命名規(guī)則編程習慣
命名規(guī)則對于嵌入式工程師來講在工作中扮演者不可或缺的角色,對于一般的事物來講,我們可以通過名字便可知道與它相關的一系列信息,同樣在編寫程序的過程中,我們也可以通過簡單的命名來實現(xiàn)所寫程序的可讀性,但在命名過程中我們要注意程序當中的這些函數(shù)、變量、和常量等元素不能夠隨意命名,如果你只是簡單隨意的命名就會使程序的易讀性大大降低,當然程序的維護性也會大打折扣。
講到命名規(guī)則的相關內(nèi)容,大家不妨可以了解了解華清遠見授課老師的一則案例講解內(nèi)容,通過簡單的了解之后,肯定獲益良多,命名管道的簡單使用。
3、簡潔明了的注釋方法編程習慣
在編寫程序的過程中注釋是相當有必要的,恰當?shù)淖⑨尶梢院芎玫膶⒊绦蚰K清晰的描述出來,當然在編寫程序過程中,復雜的算法需要加上流程說明,這時候恰當?shù)淖⑨尵涂梢詫⒑瘮?shù)的功能作用描述的非常具體了,同時還可將重要的變量作用與用途標注的清晰具體是非常有幫助的。
4、清晰易讀的文本格式編程習慣
無規(guī)矩不成方圓,通過程序代碼書寫的格式就可以大概了解你的程序質(zhì)量,程序代碼并不是你隨意堆砌在,必須要格式工整。程序書寫時,必須要有縮進,而且每一條語句必須要換行。通過恰當?shù)乃钥梢院芮逦淖x懂代碼的嵌套關系。程序是最復雜的東西,是需要用智力去把握的智力產(chǎn)品。良好的格式能使程序結構一目了然,幫助你和別人理解它,幫助你的思維,也幫助你發(fā)現(xiàn)程序中不正常的地方,使程序中的錯誤更容易被發(fā)現(xiàn)。
嵌入式系統(tǒng)開發(fā)經(jīng)驗總結
1、目標要明確,不要得過且過,不要追逐熱門的東西。不管在什么時候,心里都要有自己的信念和理想,不要被其他東西左右了自己。
2、要從興趣和競爭出發(fā),因為這才是你產(chǎn)生動力源的地方。學東西時,要讓自己先喜歡上它,要學會享受學習它的時間,喜歡喬***的都知道,喬老爺子最常說的一句就是要享受比賽的時間。因為只有你喜歡上了它,享受了它,才不會被它所產(chǎn)生的壓力壓倒自己,不要產(chǎn)生一種厭惡的心理。而且心態(tài)要調(diào)整,不要一味的蠻學,死學,在沒有什么興趣學的時候可以先玩幾天,在回過頭來,或者用其他的方式來轉(zhuǎn)換。
3、要抱著一種十年方能磨一劍的心理,扎扎實實從基礎開始,不要為高速開發(fā)的一些現(xiàn)象所迷惑,那些都只是軟件的功勞。我個人認為搞編程,英語和數(shù)學很重要,大家一定要時時的抓,至于怎么抓那就是另外一回事了,當然其他的知識也要汲取, 可以多接觸點天文,地理, 人文方面的東西來補充自己。
-
嵌入式系統(tǒng)
+關注
關注
41文章
3551瀏覽量
129104 -
嵌入式系統(tǒng)開發(fā)
關注
0文章
9瀏覽量
1948
發(fā)布評論請先 登錄
相關推薦
評論