嵌入式學(xué)習是一個(gè)循序漸進(jìn)的過(guò)程,如果是希望向嵌入式軟件方向發(fā)展的話(huà),目前最常見(jiàn)的是嵌入式Linux方向,關(guān)注這個(gè)方向,我認為大概分3個(gè)階段: 1、嵌入式linux上層應用,包括QT的GUI開(kāi)發(fā) 2、嵌入式linux系統開(kāi)發(fā) 3、嵌入式linux驅動(dòng)開(kāi)發(fā) 嵌入式目前主要面向的幾個(gè)操作系統是,LINUX,WINCE、VxWorks等等 Linux是開(kāi)源免費的,而且其源代碼是開(kāi)放的,更加適合我們學(xué)習嵌入式。 你可以嘗試以下路線(xiàn): (1) C語(yǔ)言是所有編程語(yǔ)言中的強者,單片機、DSP、類(lèi)似ARM的種種芯片的編程都可以用C語(yǔ)言搞定),因此必須非常熟練的掌握。 推薦書(shū)籍:《The C Programming Language》 這本經(jīng)典的教材是老外寫(xiě)的,也有中譯版本。 (2) 操作系統原理,是必需的,如果你是計算機專(zhuān)業(yè)畢業(yè)那也就無(wú)所謂了,如果是非計算機專(zhuān)業(yè)的就必須找一本比較淺顯的計算機原理書(shū)籍看一看,把啥叫“進(jìn)程”“線(xiàn)程”“系統調度”等等基本問(wèn)題搞清楚。 (3)Linux操作系統就是用C語(yǔ)言編寫(xiě)的,所以你也應該先學(xué)習下Linux方面的編程,只有你會(huì )應用了,才能近一步去了解其內核的精髓。 推薦書(shū)籍:《UNIX環(huán)境高級編程》(第2版) (4) 了解ARM的架構,原理,以及其匯編指令,我們在嵌入式開(kāi)發(fā)中,一般很少去寫(xiě)匯編,但是最起碼的要求是能夠看懂a(chǎn)rm匯編。 (5) 系統移植的時(shí)候,就需要你從最下層的 bootloader開(kāi)始,然后內核移植,文件系統移植等。而移植這部分對硬件的依賴(lài)是非常大的,其配置步驟也相對復雜,也沒(méi)有太多詳細資料。 (6) 驅動(dòng)開(kāi)發(fā) linux驅動(dòng)程序設計既是個(gè)極富有挑戰性的領(lǐng)域,又是一個(gè)博大精深的內容。 linux驅動(dòng)程序設計本質(zhì)是屬于linux內核編程范疇的,因而是對linux內核和內核編程是有要求的。在學(xué)習前你要想了解linux內核的組成,因為每一部分要詳細研究的話(huà)足夠可以擴展成一本厚書(shū)。 以上只不過(guò)是大概的框架,在實(shí)際的開(kāi)發(fā)中還會(huì )涉及很多東西,比如:交叉編譯、makefile、shell腳本等等,所以說(shuō)學(xué)習嵌入式的周期較長(cháng),門(mén)檻較高,自學(xué)的話(huà)更是需要較強的學(xué)習能力和專(zhuān)業(yè)功底。只要能堅持下來(lái)一定會(huì )取得成功! 嵌入式是一個(gè)比較大的概念,有四個(gè)分支(主要): 1、微控制器(單片機為例); 2、微處理器(arm為例); 3、dsp(數字信號處理); 4、soc(片上系統); 對于我們初學(xué)者而言,首先要學(xué)習單片機,以51為代表,等你學(xué)好51之后,可以深入學(xué)習更艱難的東西; 當然,并不是說(shuō)你只需要學(xué)習單片機;要想學(xué)好單片機,你還得學(xué)c語(yǔ)言,得學(xué)匯編,得學(xué)一大堆應用軟件;等到單片機能夠掌握的不錯的時(shí)候又需要自己進(jìn)行原理圖、PCB板的設計;還得掌握系統設計的工程管理什么的;比較多。。。。 單片機還是比較簡(jiǎn)單的,等到學(xué)好之后,開(kāi)始學(xué)習arm的時(shí)候,你就接觸的多了,什么操作系統啊、驅動(dòng)編寫(xiě)啊、內核移植啊、應用程序的添加啊、上位機的編寫(xiě)啊,,那個(gè)就多了,,不過(guò)到時(shí)候你就全知道了。。。 ARM+LINUX路線(xiàn),主攻嵌入式Linux操作系統及其上應用軟件開(kāi)發(fā)目標: (1)掌握主流嵌入式微處理器的結構與原理(初步定為arm9) (2)必須掌握一個(gè)嵌入式操作系統(初步定為uclinux或linux,版本待定) (3)必須熟悉嵌入式軟件開(kāi)發(fā)流程并至少做一個(gè)嵌入式軟件項目。 從事嵌入式軟件開(kāi)發(fā)的好處是: (1)目前國內外這方面的人都很稀缺。這一領(lǐng)域入門(mén)門(mén)檻較高,所以非專(zhuān)業(yè)IT人員很難切 入這一領(lǐng)域;另一方面,是因為這一領(lǐng)域較新,目前發(fā)展太快,大多數人無(wú)條件接觸。 (2)與企業(yè)計算等應用軟件不同,嵌入式領(lǐng)域人才的工作強度通常低一些(但收入不低)。 (3)哪天若想創(chuàng )業(yè),搞自已的產(chǎn)品,嵌入式不像應用軟件那樣容易被盜版。硬件設計一般 都是請其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設計軟件就變成自己的產(chǎn)品了。 (4)興趣所在,這是最主要的。 從事嵌入式軟件開(kāi)發(fā)的缺點(diǎn)是: (1)入門(mén)起點(diǎn)較高,所用到的技術(shù)往往都有一定難度,若軟硬件基礎不好,特別是操作系統級軟件功底不深,則可能不適于此行。 (2)這方面的企業(yè)數量要遠少于企業(yè)計算類(lèi)企業(yè)。 (3)有少數公司經(jīng)常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數公司也并無(wú)此要求,只要有經(jīng)驗即可。 (4)平臺依托強,換平臺比較辛苦。 興趣的由來(lái): 1、成功觀(guān)念不同,不虛度此生,就是我的成功。 2、喜歡思考,挑戰邏輯思維。 3、喜歡C語(yǔ)言 4、喜歡底層開(kāi)發(fā),討厭vb類(lèi)開(kāi)發(fā)工具(并不是說(shuō)vb不好)。 5、發(fā)展前景好,適合創(chuàng )業(yè),不想自己要死了的時(shí)候還是一個(gè)工程師。 以下課程可免費試聽(tīng)C語(yǔ)言、電子、PCB、STM32、Linux、FPGA、JAVA、安卓等。 想學(xué)習的你和我聯(lián)系預約就可以免費聽(tīng)課了。 宋工企鵝號:3524-6590-88 Tel/WX:173--1795--1908 |