非電腦專業,導師基本做單片機的項目,所以基本靠自學,經過兩年實踐,證明該學習路線基本可靠 所以分亨給對嵌入式Linux感興趣的學弟學妹 要學的東西真的很多,這裡僅提供入門之道,分為基礎知識和實踐兩個部分 第一部分,專業知識 C語言學習 《C和指針》 《C專家編程》 《C陷阱與缺陷》 上面三本書,認 ...
非電腦專業,導師基本做單片機的項目,所以基本靠自學,經過兩年實踐,證明該學習路線基本可靠
所以分亨給對嵌入式Linux感興趣的學弟學妹
要學的東西真的很多,這裡僅提供入門之道,分為基礎知識和實踐兩個部分
第一部分,專業知識
C語言學習
《C和指針》
《C專家編程》
《C陷阱與缺陷》
上面三本書,認真看吧,特別是C和指針,可以當教材看,認真做做書後習題,我從這本書中受益菲淺
後兩本用於提高,比如可以知道: char * const*(*next)() 是個啥東西, i+++j為什麼是 (i++)+j之類
還有一些常見的面試試如判斷一個鏈表是否有環, 怎麼判斷一個數是有符號數還是無符號數,書中都有涉及
打好C語言基礎,不管是以後讀源代碼,還是寫程式,或者應付筆試都是很重要的
數據結構與演算法
《數據結構基礎(C語言版)》
《演算法設計與分析》 王曉東
數據結構那本書對我最大的幫助應該在於理解遞歸吧,這對以後學習動態規化和分治演算法都很有幫助
當然也熟悉了樹,鏈表,棧,排序演算法等
個人比較得意的是有一次筆試中出現了字元串匹配演算法,自己寫了個KMP演算法,所以學的時侯認真學,不要總想學這個到底有沒有用。
嵌入式對演算法要求不是很高,理解動態規劃和分治即可
電腦系統結構
《深入理解電腦系統》
兩個面試問題:程式優化有哪些方法, 一個while迴圈里有很多if語句,對程式有什麼影響,看完這本書,你可以找到答案
另外,書中對有符號數無符號數,彙編,程式的鏈接,caceh,流水線,虛擬存儲管理都得介紹得比較詳細
最後書里有個棧溢出的實驗,值得一試
Linux編程入門
《Unix操作系統設計》 Maurice J.bach著 陳葆珏 等譯
《Unix/Linux編程實踐教程》 Burce Molay著 楊宗源 等譯
這兩本書雖然都比較老了,但是都相當經典
一個操作系統理論,一個編程實踐,對我幫助最大的是對文件系統的描述及一些相關的系統調用,fifo,信號的編程等等
可以說是這本書帶我走進了Linux 的大門
如果以上兩本書找不到,市面上新出了一些Linux編程的書,貌似很多都不錯,自己上China-pub上看看
Linux 編程進階
《Unix環境高級編程》
《Unix 網路編程》
過於經典,不多作介紹
內核學習
《Linux內核設計與實現》
《深入理解Linux內核》 第三版
過於經典,不多作介紹,只強調一點,多讀幾遍
驅動學習
《Linux設備驅動程式》
《Linux設備驅動開發詳解》
一本國外的經典,最註重驅動整體框架的分析,同時包括與驅動程式相關的東西,如同步機制,記憶體管理,中斷等等
一本國內人的經典,前面一部分對上一本書作了一個總結,後面一部分是具體的外設驅動
arm學習
《ARM體繫結構與編程》
《ARM嵌入式系統開發-軟體設計與優化》
第一本書的ARM指令講得很好,第二本的中斷及記憶體管理很到位,書中還介紹了一些程式優化的方法
另外還有一些書籍,可以根據自己興趣看看:
《C++ Primer》講得很全,適合當參考書
《TCP/IP 詳解 (捲一)》個人覺得比《用TCP/IP進行網際互聯》更適合程式員讀,作者做了很多實驗,並且貼出了實驗結果,相當直觀
《程式員的自我修養-鏈接、裝載與庫》我從中學到一些位置無關代碼還有動態庫的裝載的知識
《編程珠璣》、《編程之美》開拓思維,還有一些常見的演算法題,都可以從中找到原型
第二部分,實踐
你可以不參加培訓班,但你必須得有開發板,我是自己買的mini2440開發板
學習過程如下:
1.理解ELF文件格式:代碼段,數據段之類,理解鏈接地址,運行地址(記不太清了),網上有經典的資料,名字好像是《arm學習報告一二三》
2.按照 《2410開發完全流程》走一遍,就是把2440當單片機用,裡面有SDRAM,MMU,GPIO,NADN Flash, 中斷的實驗,比較不錯
3.學習vivi, uboot, 最經典的資料就是《vivi開發筆記》
上面提到的資料,網上都可以免費下載,在這裡感謝作者們的無私奉獻
4.終於可以從事內核的移植,驅動的開發了,推薦的教程是韋東山的《嵌入式Linux應用開發完全手冊》這本書相當實用,所謂實用,就是你按照它的步驟編譯內核,根文件系統,移植Uboot是可以成功的(不要以為這些東西很簡單,一些莫名其妙的錯誤會讓你束手無策)
5.最後就是不斷的編程,看源代碼,最好參與些相關的項目
以上只是我個人的方法,大家學習習慣可能不一樣,情況也不一樣,所以僅供參考
但所列的書籍都是相當經典的
最後,把口語練好,要不,你將錯過以下公司:intel,AMD, Marvell
成績能考好點就考好點吧,在找工作時還是很有用的,基本上說找工作成績不重要的,大部分都是成績不好的,所以他們體會不到這個的重要性(這麼說可能也有些偏激,但基本是實事)