1. 有沒有好的關於嵌入式linux方面的書籍大家給推薦推薦
嵌入式書籍推薦
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編程指南》林銳
盡可能多的編碼,要學好C,不能只注重C本身。演算法,架構方式等都很重要。
給你一個嵌入式Linux操作系統學習規劃吧
希望對你有所幫助
ARM+LINUX路線,主攻嵌入式Linux操作系統及其上應用軟體開發目標:
(1) 掌握主流嵌入式微處理器的結構與原理(初步定為arm9)
(2) 必須掌握一個嵌入式操作系統 (初步定為uclinux或linux,版本待定)
(3) 必須熟悉嵌入式軟體開發流程並至少做一個嵌入式軟體項目。
從事嵌入式軟體開發的好處是:
(1)目前國內外這方面的人都很稀缺。這一領域入門門檻較高,所以非專業IT人員很難切入這一領域;另一方面,是因為這一領域較新,目前發展太快,大多數人無條件接觸。
(2)與企業計算等應用軟體不同,嵌入式領域人才的工作強度通常低一些(但收入不低)。
(3)哪天若想創業,搞自已的產品,嵌入式不像應用軟體那樣容易被盜版。硬體設計一般都是請其它公司給訂做(這叫「貼牌」:OEM),都是通用的硬體,我們只管設計軟體就變成自己的產品了。
(4)興趣所在,這是最主要的。
從事嵌入式軟體開發的缺點是:
(1)入門起點較高,所用到的技術往往都有一定難度,若軟硬體基礎不好,特別是操作系統級軟體功底不深,則可能不適於此行。
(2)這方面的企業數量要遠少於企業計算類企業。
(3)有少數公司經常要碩士以上的人搞嵌入式,主要是基於嵌入式的難度。但大多數公司也並無此要求,只要有經驗即可。
(4)平台依託強,換平台比較辛苦。
興趣的由來:
1、成功觀念不同,不虛度此生,就是我的成功。
2、喜歡思考,挑戰邏輯思維。
3、喜歡C
C是一種能發揮思維極限的語言。關於C的精神的一些方面可以被概述成短句如下:
相信程序員。
不要阻止程序員做那些需要去做的。
保持語言短小精幹。
一種方法做一個操作。
使得它運行的夠快,盡管它並不能保證將是可移植的。
4、喜歡底層開發,討厭vb類開發工具(並不是說vb不好)。
5、發展前景好,適合創業,不想自己要死了的時候還是一個工程師。
方法步驟:
1、基礎知識:
目的:能看懂硬體工作原理,但重點在嵌入式軟體,特別是操作系統級軟體,那將是我的優勢。
科目:數字電路、計算機組成原理、嵌入式微處理器結構。
匯編語言、C/C++、編譯原理、離散數學。
數據結構和演算法、操作系統、軟體工程、網路、資料庫。
方法:雖科目眾多,但都是較簡單的基礎,且大部分已掌握。不一定全學,可根據需要選修。
主攻書籍:the c++ programming language(一直沒時間讀)、數據結構-C2。
2、學習linux:
目的:深入掌握linux系統。
方法:使用linux—〉linxu系統編程開發—〉驅動開發和分析linux內核。先看深,那主講原理。看幾遍後,看情景分析,對照深看,兩本交叉,深是綱,情是目。剖析則是0.11版,適合學習。最後深入代碼。
主攻書籍:linux內核完全剖析、unix環境高級編程、深入理解linux內核、情景分析和源代。
3、學習嵌入式linux:
目的:掌握嵌入式處理器其及系統。
方法:(1)嵌入式微處理器結構與應用:直接arm原理及匯編即可,不要重復x86。
(2)嵌入式操作系統類:ucOS/II簡單,開源,可供入門。而後深入研究uClinux。
(3)必須有塊開發板(arm9以上),有條件可參加培訓(進步快,能認識些朋友)。
主攻書籍:毛德操的《嵌入式系統》及其他arm9手冊與arm匯編指令等。
4、深入學習:
A、數字圖像壓縮技術:主要是應掌握MPEG、mp3等編解碼演算法和技術。
B、通信協議及編程技術:TCP/IP協議、802.11,Bluetooth,GPRS、GSM、CDMA等。
2010-8-21 16:46 回復
122.90.173.* 2樓
C、網路與信息安全技術:如加密技術,數字證書CA等。
D、DSP技術:Digital Signal Process,DSP處理器通過硬體實現數字信號處理演算法。
說明:太多細節未說明,可根據實際情況調整。重點在於1、3,不必完全按照順序作。對於學習c++,理由是c++不只是一種語言,一種工具,她還是一種藝術,一種文化,一種哲學理念、但不是拿來炫耀得東西。對於linux內核,學習編程,讀一些優秀代碼也是有必要的。
注意: 要學會舉一反多,有強大的基礎,很多東西簡單看看就能會。想成為合格的程序員,前提是必須熟練至少一種編程語言,並具有良好的邏輯思維。一定要理論結合實踐。
不要一味鑽研技術,雖然擠出時間是很難做到的,但還是要留點餘地去完善其他的愛好,比如宇宙,素描、機械、管理,心理學、游戲、科幻電影。還有一些不願意做但必須要做的!
技術是通過編程編程在編程編出來的。永遠不要夢想一步登天,不要做浮躁的人,不要覺得路途漫上。而是要編程編程在編程,完了在編程,在編程!等機會來了在創業(不要相信有奇跡發生,盲目創業很難成功,即便成功了發展空間也不一定很大)。
2. 軟體工程對社會的重要性
隨著信息化時代的到來,計算機軟體行業得到了很好的發展,人們對軟體的要求也日益增加,軟體技術正在影響著我們身邊的每一個人,這顯然已經成為當今社會中非常重要的一個組成部分,例如我們手上拿的手機,數碼相機,電腦,小汽車裡面的導航,家裡的智能電視等等,這些都是必須要依靠軟體的支持才能正常的運行,因此,我們可以明顯的看到軟體對我們生產生活的幫助。在當今社會,信息技術占據著市場的主流位置,而其中的軟體工程逐漸成熟化,在信息技術中占據著重要作用,並能夠為人類生活帶來便利條件,例如,我們現在足不出戶就可以買到我們需要的物品,這在以前是人們從未想過的事情,但是隨著信息化時代的到來,這些不可能的事情顯然已經成為現實,軟體技術對人們的生活產生極大的作用,對社會的幫助是非常大的,尤其是近幾年來,信息化已經遍布全國,我們每個人都能切身的享受到軟體工程帶給我們的便捷,從過去到現在以致未來的轉變,即純手工業向智能電子技術的轉變,信息化時代的開啟,軟體技術起著不可估量的作用。特別是將軟體技術應用於生產管理方面,規模化的批量工作代替傳統的人工操作模式,大大提升了工作效益和工作質量,方便了人們的生活,也不斷地推進著社會的生產力的發展。顯然,軟體技術現在已經深入到人們生活的方方面面。設想一下,如果不是信息化軟體技術的支持,我們怎麼可能會有如此方便的生活條件,因此說軟體技術在我們現代社會中起著不可忽視的作用,軟體技術也正推動著時代的進步。
在當今社會中,我們能切身的感受到信息化帶給我們生活中的幫助,在軟體工程的飛速發展中,軟體在全國各地也得到了廣泛的使用,如在學生中非常流行的有關Java程序員認證考試,是當前全球范圍內最受大家歡迎及重視的程序員資格認證中的一個,也就是說具備這一證書,就會爭取到一份比較好的工作機會和待遇。Java的可移植性比較好也是現在成長最快、使用率較高的軟體語言;大概150個許可證頒發機構、200所大學及50萬項目開發者青睞於Java語言;成千個應用程序都用它來編寫,有大量書籍是闡述和研究這門語言;因為它是開源的,所以它的下載量也超過了幾百萬次,可見,該語言的使用率極高。Java語言已經闖入計算機的心臟,正在改變著企業的計算環境。因為改語言的靈活性,並且安全穩定的為互聯網應用創造奇跡。因為Java語言計算環境可以獨立於平台使用、可移植性好及比較成熟,在生產使用中,可以降低企業的總成本,縮短產品的上市周期,安全穩定的運行,所以不少國家計算機技術公司來與我們國家合作,將Java編程作為合作的前提條件。用軟體工程的思想開發出相關購物平台,說到底還是數據管理軟體,深受國民的喜歡,不僅可以提高人們的生活質量,而且可以豐富人們的生活色彩,就拿我們現在人人皆知的淘寶來說,如果我們需要購買一件物品,我們根本都不需要像以前那樣非得自己去實體店購買,我們只用通過手機淘寶APP就可以足不出戶的買到自己喜歡的物品,這將很大程度上的節省了我們的時間,再比如,我們學生用的一些授課軟體,有了這些授課軟體,我們就可以足不出戶、隨時隨地的進行聽課,如果因為時間關系而錯過了直播,我們還可以在自己空閑的時間看錄播,我們還可以通過這些授課軟體來和世界最頂尖的教授進行面對面的交流,這樣的授課軟體對於教師和學生來說都節省了一大筆的費用,並且還不受人數以及場地的限制,現在人們對軟體的認識也有很大的提升。軟體工程在我們的生活中扮演著不可替代的作用,軟體工程的目標給軟體開發提出了明確的要求,軟體也有了一個系統的定義和目標。
在我們的生活中,我們隨處可見的都是信息化,在我國各行各業都離不開計算機軟體的支持,軟體為企業的管理帶來了極大的幫助,提高了企業的收益,減少了人力、物力、財力的消耗,軟體也為人們的生活增添了樂趣,在現代人們生活中,隨處可見的軟體的使用,科學技術的普及使得軟體工程融入到現代電子產品中,例如微信、QQ、手機中的各種APP,這些軟體的出現極大地豐富了人們的日常生活,我們可以通過微信或者手機QQ就可以實現面對面的視頻聊天,這樣就不會受到時間和地域的要求,我們隨時隨地就可以與朋友或親人面對面的交流。有了這樣的軟體,我們人與人之間的溝通就會越來越多,這樣的軟體也可以幫助我們建立良好的人脈關系,這樣就可以使我們的生活水平大大的提高了。隨著軟體工程的飛速發展,各種信息化時代的軟體數不勝數,商家可以通過多媒體方式,如視頻展示的方式來展示商品信息,利用多種信息技術來對產品做以修飾,如視頻讓人切身感受、3D技術讓人進入虛擬世界,人機互動讓人感受多樣全面,各式各樣的現代化信息技術,很大程度上的提升了人們的生活樂趣,使人們切身的感受到信息化時代的巨大魅力。
3. 自學ARM嵌入式應該先從哪些知識入手
我不知道你有沒有和arm相關的學習基礎,既然你說你是個新手,我就按照我如何學習arm的方法說說,-_-
1,arm是比較難的嵌入式方案,也是炙手可熱的嵌入式方案,所以學好arm高薪恨容易,所以在學好arm之前,你必須建立很好的學習興趣。
2,學習arm,不要著急上手arm開發板,不然遇到很多問題你都無法下手,建議你先認真大好基礎。現在arm一般和linux搭配使用,所以建議你慧槐先大好linux基礎,以後在上手arm就容易多了。
3,學習linux之後,你要曉得c語言還是蠻重要的。
4,在1,2之後希望你能夠擁有一塊開發板,不貴3,4百的樣子,我自己有3,4塊了,你先買個初級入門的,這樣你就可以將linux搭起來建立環境使用arm開發板了。
4,說起來輕巧,做起來難,希望你有持之以恆的精神,我大學2年級就開始 學習了,如果有什麼問題盡管聯系我,這是我的網站嵌入式分享網站www.ourunix.org,通過這個你自然知道如何學習了。希望你成功。
我現在在編譯android,前姿友准備移植呵呵,冊脊打字很費勁,所以只能寫到這了