十年研发经验嵌入式工程师书籍推荐
生活随笔
收集整理的這篇文章主要介紹了
十年研发经验嵌入式工程师书籍推荐
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 從事嵌入式研發行業十年,認為學習就是要不斷的吸納知識,在研發過程中,經常會遇到一些問題,這種發現問題并解決問題的過程就是進步。為什么選擇學習嵌入式?嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一,同時也是當今IT領域僅存的幾個金領職位之一。當前的中國IT人才面臨嚴重的“后繼乏人”, 而且這種缺口由于培訓缺乏、教育模式等原因造成的,而缺口最大的,就是高級IT人才。如果你從事的IT培訓不專業,面對競爭越來越激烈的職場,基本找不到 工作。據專家預測,嵌入式每年人才缺口在30萬左右。嵌入式行業平均薪資分布工欲善其事,必先利其器,除了推薦的書籍外,也推薦一下我用的開發板,我學習用的是飛凌的OK6410,感覺算是入門不錯的板子,剛剛看到他們官方微博貌似A8的210和ARM9的2416準備促銷呢,有50元的京東購物卡送,想入手的可以關注下。ARM+Linux嵌入式底層內核驅動方向學習總體路線圖? 附上ARM學習路徑圖,希望對學習者能有所啟發。 基礎學習Ⅰ---Linux入門 ? ?? ???目前嵌入式主要開發環境有 Linux、Wince等;Linux因其開源、開發操作便利而被廣泛采用。而Linux操作系統也只是一個簡單的操作系統,簡單的使用對于嵌入式開發人 員來說價值并不很高,真正有價值的是掌握Linux的基本服務和Linux的設計理念、思想,這對于嵌入式開發人員的長期發展是很極其重要的。Linux 系統有很多發行版,RedHat、Ubuntu、Fedora等。作為嵌入式開發人員,我們沒有必要把精力放到使用哪個Linux發行版上,而是盡快把 Linux系統盡快安裝好。如果打算堅持長期學習,那么建議您把自己的電腦做成雙系統,而不要在虛擬機上安裝。 Ubuntu系統下載地址:http://www.ubuntu.org.cn/A)經典書籍推薦:? 鳥哥的Linux私房菜-完整版 http://download.eeworld.com.cn/detail/solarelec/366551 B)經典學習視頻推薦:Linux操作系統入門基礎學習Ⅱ---C語言C語言是嵌入式開發必備的基礎知識。在Linux下從事C語言的開發,你會覺得更為順暢、更為自然,因為C語言是因unix的出現而誕生的,Linux內 核幾乎完全是由C語言編寫完成的。學習C語言,如果不會用指針,那么就稱不上會C語言。做嵌入式開發指針更顯得尤為重要,所以做嵌入式開發除了掌握位操 作、限定詞等,對指針的掌握是不可或缺的。而且要掌握多級指針、函數指針等等。涉及到指針,那么就會講到內存分配。在大學中,學習C語言一般的學習很少講 到內存分配,但是如果期望從事嵌入式開發,那么就必須懂得C語言是怎么做內存分配管理的。指針之外,還要學習模塊化編譯處理、指針與數組、gcc、 Makefile、GDB、遞歸、結構體、宏定義使用等。C語言是整棟嵌入式大廈的基礎,所以在學習嵌入式時,必須把C語言重視起來,多敲代碼,多練。一 名優秀的程序員必定是通過“體力勞動”再轉向“腦力勞動的”,這也是為什么我們要有“寫不出代碼=0”思想的原因所在。 ? ? 如 果說C語言相當于文字,那么數據結構就相當于在造句、寫文章。代碼質量有一部分取決于對數據結構的掌握程度。在數據結構部分我們要把鏈表、樹、排序作 為學習重點。而且我們也可以查看一些比較常見的函數(如strcopy、strcat、printf等)在內核中是如何實現的,以及編寫代碼模擬堆棧,這 不僅有利于編寫代碼質量的提高,而且還可以初步了解Linux內核精髓,為今后工作打下堅實的基礎。 ? ?? ???C++、QT在嵌入式開發領域,是用來開發圖形界面的,希望從事上層應用開發及圖形界面,那么在C++、QT方面需要比較深入的學習。??A)經典書籍推薦:? ?? C程序設計語言(第2版·新版) http://download.eeworld.com.cn/detail/nn50/556255 C語言核心技術 http://download.eeworld.com.cn/detail/Timson/277541 數據結構分析與算法分析 C語言描述 http://download.eeworld.com.cn/detail/%E8%BE%9B%E6%98%95/28395 經典C語言書籍《C和指針》 http://download.eeworld.com.cn/detail/border1999/556912 C陷阱與缺陷(中文) http://download.eeworld.com.cn/detail/sinceyoulove/457934 C Primer Plus(第五版)中文版 http://download.eeworld.com.cn/detail/tiankai001/2431 ? GNU MAKE 中文手冊 http://download.eeworld.com.cn/detail/nishisb/220030 C++ GUI Qt 4編程(第二版)(書+源代碼) http://download.eeworld.com.cn/detail/tiankai001/563543 B)經典學習視頻推薦:C語言入門C)經典學習案例: 1、學員成績管理系統2、計算器3、電子詞典4、文件壓縮器基礎進階---Linux應用程序設計 ? ???Linux的思想源于Unix。Linux繼承了Unix的優點,但 是沒有用UNIX的代碼,所有程序都是重新編寫的,而且Linux與Unix的源碼級兼容。Linux是類Unix操作系統。Linux 不僅符合 POSIX 標準,而且還包括其它 UNIX 標準的多種特性,例如,UNIX 的 System V 接口文檔(System V Interface Document,SVID)和伯克利軟件發布(Berkeley Software Distribution,BSD)版本。Linux 采用了折衷的策略,包含了 UNIX 幾個典型特性當中最實用的一些功能: ? ???Linux 采用了 SVR4 的進程間通信(IPC)機制:共享內存、消息隊列、信號。 ? ???Linux 支持 BSD Socket 網絡編程接口。 ? ???許多 Linux 發行版采用 SysV init 機制,支持運行級別。 此階段的學習是從事嵌入式上層應用開發以及底層開發人員的必修課程。進程、線程、信號、文件鎖、socket是這部分內容的重點。要把這些內容學的透徹非 要下些苦功夫不可。而且函數是系統提供給我們的,難免要對計算機系統深入理解一番。TCP/IP協議也是要涉及到的。有問題建議用Google搜索及登陸 chinaunix論壇。通過這個階段的學習,我們就可以初步實現一些應用程序的開發了,如做自己的shell命令解析器、簡單的聊天軟件、視頻多播等。 A)經典書籍推薦:? 《UNIX環境高級編程》高清掃描版 http://download.eeworld.com.cn/detail/Timson/1161 深入理解計算機系統 http://download.eeworld.com.cn/detail/huhuhah0009/530147 unix 網絡編程 http://download.eeworld.com.cn/detail/lb5761311/554533 《TCP/IP協議詳解》 中文版 http://download.eeworld.com.cn/detail/Timson/874 B)經典學習視頻推薦:Linux環境高級編程C)經典學習案例: 1、串口監聽程序? ?2、圖片瀏覽器? ?? ?3、MP3播放器? ?? ???4、聊天程序? ?? ?? ?5、 ftp程序 6、音頻廣播程序? ?7、ping的實現? ???8、DDos攻擊程序? ?9、ARP攻擊程序嵌入式入門---ARM體系結構 ? ? 從這部分開始,我們將真正進入嵌入式開發學習階段。首先我們要知道采用哪種處理器。目前通用嵌入式處理器有ARM、MIPS、PowerPC、X86等。 從市場產品占有率上看,ARM處理器遠遠領先于同類其它處理器,并逐步掠奪傳統51單片機和英特爾市場份額。據招聘網站統計,目前用人單位在技術水平上要 求開發人員掌握ARM9及以上平臺的開發技術。ARM公司在發布ARM11產品后,更改以往的數字標記更新方式,轉為發布ARM Cortex。但是Cortex并不是更高端,而是全新系列的處理器,比如Cortex M3,它主要應用于機械加工、工控領域,目的是取代以前的ARM7處理器。 ? ? 在開始學習前,建議有一塊自己的開發板,目前ARM9 2440的開發板價格在400-600元之間,ARM11 6410的開發板價格要高一些,最便宜的也要1200元以上。在此,提醒大家盡量不要買mini開發板,雖然mini開發板的價格要便宜些,但是與正常開 發板相比,mini板功能是不完善的。嵌入式匯編有別于X86匯編,所以如果以前沒有接觸過匯編語言,那么沒有必要先去學X86匯編再學嵌入式匯編,可以 直接學習嵌入式匯編。除了匯編我們還要學習ARM指令集。有了開發板,我們要下載相對應處理器的DataSheet及開發板電路原理圖。ARM體系結構的 學習我們是不能完全照抄別人代碼的,因為我們自己手中的開發板及處理器與別人是不同的,除非所用的代碼是根據你手中的開發板來編寫的。所以,我們要先去看 書、看視頻資料理解原理及工作方式等,然后根據自己開發板的電路原理圖和DataSheet來編寫代碼,達到理解外圍設備工作原理和操作硬件的目的。? ARM嵌入式系統開發:軟件設計與優化[中文版] http://download.eeworld.com.cn/detail/bootloader/27476 嵌入式Linux應用開發完全手冊? http://download.eeworld.com.cn/detail/tyw/301888 B)經典學習視頻推薦: 1)??嵌入式掃盲篇——十問嵌入式2)ARM體系結構與Bootloader開發3)嵌入式ARM Linux開發——ARM匯編C)經典學習案例: 1. ARM模擬器開發? ?? ? 2. Watchdog控制程序? ?? ???3. RTC時鐘控制程序 4. Uart控制程序? ?? ?? ?? ?5. LCD控制程序? ?? ?? ?? ?? ?? ???6. 觸摸屏控制程序 7. DMA控制程序? ?? ?? ? 8. 音頻控制程序? ?? ?? ?? ?? ?? ???9. 網卡控制程序 10. 文件系統制作? ?? ???11. ARM-Linux移植嵌入式提升---Linux內核、驅動 ? ?? ?? ?眾所周知嵌入式開發包含至少兩個級別,一個是嵌入式內核驅動級別,另外一個是嵌入式應用層開發,而薪酬高的、最具價值的無疑是嵌入式內核驅動級別的開發 者。真正的嵌入式高手或者企業中的核心開發人員,一定是嵌入式底層的內核驅動開發工程師,這些工程師成長比較緩慢,造成對內核驅動人才的大量需求,所以這 些人才是真正企業需要的香餑餑。掌握驅動開發會讓自己的核心能力有極大的飛躍,真正實現嵌入式最有價值的就業。 ? ?? ?? ?由于Linux內核更新速度很快,書籍和視頻不可能及時更新,所以我們再看書和視頻后,要自己動手下載內核源碼包,去看內核中的代碼,在這里可以充分檢驗 C語言、數據結構等基礎知識的掌握程度。而驅動的編寫還是要借助外設硬件電路原理圖和芯片手冊。內核和驅動的知識是讓我們根據不同的硬件,編寫對應的驅 動、合理剪裁內核、制作文件系統,并移植到硬件開發板上。如果手里有ARM11 6410及以上的開發板,可以試試在裸板上編寫驅動并移植Android系統到開發板上吧。? 《深入理解Linux內核》高清掃描版 http://download.eeworld.com.cn/detail/Timson/1397 Linux設備驅動程序中文版第三版 http://download.eeworld.com.cn/detail/huhuhah0009/525516 Linux內核設計與實現 http://download.eeworld.com.cn/detail/JoeBeav/49450 精通LINUX設備驅動程序開發 http://download.eeworld.com.cn/detail/%E6%AC%A3%E4%B9%8B/82189 B)經典學習案例: 1. GPIO驅動? ?? ?? ?? ?? ? 2. RTC時鐘驅動? ?3. WatchDog驅動? ?4. Udev移植? ?? ?5. 觸摸屏輸入設備驅動 6. LCD顯示設備驅動? ?7. DMA驅動? ?? ???8. 音頻設備驅動? ?? ???9. Nand Flash塊設備驅動??10. 網絡設備驅動 硬件工程師的書籍(等等)? 《高速數字設計手冊》《high speed digital design》黑魔書 http://download.eeworld.com.cn/detail/tyw/561997 CADENCE高速電路板設計與仿真(原理圖與PCB設計-第4版) http://download.eeworld.com.cn/detail/Timson/218366 《信號完整性揭秘》于博士 完整版 http://download.eeworld.com.cn/detail/zsm1681/556345 信號電源完整性仿真分析與實踐_邵鵬編著 http://download.eeworld.com.cn/detail/tiankai001/563544 電磁兼容的印制電路板設計(原書第二版) http://download.eeworld.com.cn/detail/yaoniming3k/39090 Cadence高速電路板設計與仿真-信號與電源完整性分析第4版 http://download.eeworld.com.cn/detail/hzqydq/306239 ? EMC電磁兼容設計與測試案例分析(第二版) http://download.eeworld.com.cn:88/detail/kq851211/563498 此帖出自下載中心專版論壇 |
5.jpg?
8.jpg?
11.jpg?
總結
以上是生活随笔為你收集整理的十年研发经验嵌入式工程师书籍推荐的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用两个0和两个9组成的小数,一个0都不读
- 下一篇: 在小公司、中等规模公司和大公司工作有什么