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