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