現在嵌入式開發越來越吃香,很多人都想要學習卻不知道要從何下手。本文分析了學習嵌入式軟件開發需要具備哪些基本知識和技能,開發學習的基本步驟,并給出了各種參考資料及網站,同時小編還推薦了學習嵌入式開發的書籍。
學嵌入式開發入門
一、軟硬件的基本技能
關于ARM+linux,涉及軟硬件兩塊,要求通吃,這種人才比較適合成長為嵌入式系統架構師
1、硬件包括處理器的體系結構及硬件總線接口兩部分
1)處理器的體系結構
需要對微機原理、單片機、處理器等有所了解,基本上搞明白一種處理器如ARM、MIPS、PPC、DSP,學習其他的就很快了
2)硬件總線接口
最底層的,驅動開發是最常見的工作了。
這需要對各種硬件總線接口等有所了解,如IIS、IIC、UART、SPI、CAN、MDIO、USB、PCI、PCMCIA、SDRAM、FLASH及EEPROM等,設備千差萬別,但基本的連接都是通過這些接口進行的,搞明白了接口剩下的就是具體芯片的事了。
2、軟件主要包括開發語言及操作系統開發
1)開發語言
嵌入式軟開以C語言開發為主,要求精通指針、結構指針、指針函數及所有的數據類型轉換,對const、static、volatile、packed、aligned等關鍵字有深入的認識。
2)操作系統開發
如果想搞嵌入式軟件開發的話,不學點操作系統方面的知識你會發現沒什么市場。現在基本上是個平臺都想跑個操作系統,控制類的uC/OS-II,eCos,這些都是小型的操作系統,學起來簡單,但在求職中市場小。
手機類的,如Windows Mobile、Sybian、PalmOS及Andriod,搞Sybian、PalmOS的人還不多,Windows Mobile和Andriod還是挺火的,也是未來的領導者。
網絡通信類的,如VxWorks、Linux等大型復雜的操作系統,也是企業要求最多的,還有不太知名的OSE,但其在基站設備中占據了50%的市場份額。
當然還有不帶MMU的,如uClinux、Nucleus等。
個人感覺尤其是Linux是目前求職市場中最火的,主要是由于其開源的優勢,很多單位都在往這方面投入以減少成本。
如果以前對操作系統方面了解較少的話,個人建議可以先學學uC/OS-II,簡單易上手,主要是借此學習操作系統的相關知識。
然后主打Linux,要結合開發板來學,這樣才上手的快。
二、開發板
廣州優龍、華恒等都是比較知名的開發板廠家,配套的資料比較完善,相應的技術支持也不錯,可以考慮。
三、開發流程及參考書目
嵌入式開發需要遵循一個基本的流程,首先是開發環境及流程,然后是驅動開發和應用程序開發,最后就是深入內核的海洋,學習設計理念及方法,最高境界就是就是將這些設計思路嫻熟的運用在任意一個應用環境中,那時候就是神了~~~
1、嵌入式開發設計流程:
1)ARM嵌入式Linux系統構造與驅動開發范例
2)嵌入式設計及Linux驅動開發指南
3)嵌入式Linux應用程序開發詳解
都屬于Linux開發設計流程方面的入門書籍,嵌入式開發的基礎
2、Linux驅動開發:
1)嵌入式系統接口設計與Linux驅動程序開發 北京航空航天大學出版社 劉淼 強烈推薦; 包括各種硬件總線接口范例,接口開發必備
2)Linux設備驅動程序《Linux Device Drivers third edition》,Linux驅動開發必備經典,粗讀查詢即可,當然最基本的字符設備驅動和塊設備驅動必須熟練掌握
3、 Linux應用程序開發:
UNIX環境高級編程
UNIX網絡編程全卷
4、Linux內核開發:
內核完全注釋,源代碼級的分析,但版本較低
深入理解Linux內核Understanding the Linux Kernel,太深了,東西太多,最后看合適
Linux內核設計與實現Linux Kernel Development,內核整體結構和基本理論知識
5、ARM:
ARM體系結構與編程,杜春蕾
ARM應用系統開發詳解
四、相關Linux網站
1、各種Linux論壇
http://www.linuxforum.net/forum/ubbthreads.php
http://www.linuxsir.org/bbs/
http://bbs.chinaunix.net/
http://www.linuxeden.com/forum/
http://www.linuxfans.org/bbs/index.php
2、開源網站
http://sourceforge.net/
http://www.denx.de
http://www.pudn.com/
http://download.chinaunix.net/
3、內核源代碼學習下載
http://lxr.linux.no/linux+v2.6.19/
http://www.kernel.org/pub/linux/kernel/
學嵌入式開發需要看哪些書籍_推薦
一、Linux基礎
1、《Linux與Unix Shell 編程指南》
二、C語言基礎
1、《C Primer Plus,5th Edition》【美】Stephen Prata著
2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)著
3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)
4、《嵌入式Linux應用程序開發詳解》
三、Linux內核
1、《深入理解Linux內核》(第三版)
2、《Linux內核源代碼情景分析》毛德操 胡希明著
四、研發方向
1、《UNIX Network Programming》(UNP)
2、《TCP/IP詳解》
3、《Linux內核編程》
4、《Linux設備驅動開發》(LDD)
5、《Linux高級程序設計》 楊宗德著
五、硬件基礎
1、《ARM體系結構與編程》杜春雷著
2、S3C2410 Datasheet
六、英語基礎
1、《計算機與通信專業英語》
七、系統教程
1、《嵌入式系統――體系結構、編程與設計》
2、《嵌入式系統――采用公開源代碼和StrongARM/Xscale處理器》毛德操 胡希明著
3、《Building Embedded Linux Systems》
4、《嵌入式ARM系統原理與實例開發》 楊宗德著
八、理論基礎
1、《算法導論》
2、《數據結構(C語言版)》
3、《計算機組織與體系結構?性能分析》
4、《深入理解計算機系統》【美】Randal E. Bryant David O‘’Hallaron著
5、《操作系統:精髓與設計原理》
6、《編譯原理》
7、《數據通信與計算機網絡》
8、《數據壓縮原理與應用》
九、C語言書籍推薦
1、The C programming language 《C程序設計語言》
2、Pointers on C 《C和指針》
3、C traps and pitfalls 《C陷阱與缺陷》
4、Expert C Lanuage 《專家C編程》
5、Writing Clean Code -----Microsoft Techiniques for Developing Bug-free C Programs
《編程精粹--Microsoft 編寫優質無錯C程序秘訣》
6、Programming Embedded Systems in C and C++ 《嵌入式系統編程》
7、《C語言嵌入式系統編程修煉》
8、《高質量C++/C編程指南》林銳
-
嵌入式開發
+關注
關注
18文章
1030瀏覽量
47574
發布評論請先 登錄
相關推薦
評論