嵌入式linux系統工程師標准培訓教材
⑴ 學嵌入式Linux什麼教材比較好
沒有經典教材,應為技術發展太快太新了。只有適合自己的才行。
《ARM9嵌入式系統設計回與開發應用答》,這本書很好,值得買
嵌入式linux應用開發完全手冊》也可以看看
要是想主要參考一下linux的話,可以看倪繼利的《linux內核分析及編程》
⑵ 嵌入式Linux系統工程師都學些什麼
需要對Linux系統有足夠了解和認識,還需要深入學習C語言。
⑶ 成為一名嵌入式Linux開發工程師需要學習哪些知識
一:C語言 嵌入式Linux工程師的學習需要具備一定的C語言基礎,語言是嵌入式領域最重要也是最主要的編程語言,通過大量編程實例重點理解C語言的基礎編程以及高級編程知識。包括:基本數據類型、數組、指針、結構體、鏈表、文件操作、隊列、棧等。
二:Linux基礎 Linux操作系統的概念、安裝方法,詳細了解Linux下的目錄結構、基本命令、編輯器VI ,編譯器GCC,調試器GDB和 Make 項目管理工具, Shell Makefile腳本編寫等知識,嵌入式開發環境的搭建。
三:Linux系統編程 重點學習標准I/O庫,Linux多任務編程中的多進程和多線程,以及進程間通信(pipe、FIFO、消息隊列、共享內存、signal、信號量等),同步與互斥對共享資源訪問控制等重要知識,主要提升對Linux應用開發的理解和代碼調試的能力。
四:Linux網路編程 計算機網路在嵌入式Linux系統應用開發過程中使用非常廣泛,通過Linux網路發展、TCP/IP協議、socket編程、TCP網路編程、UDP網路編程、Web編程開發等方面入手,全面了解Linux網路應用程序開發。重點學習網路編程相關API,熟練掌握TCP協議伺服器的編程方法和並發伺服器的實現,了解HTTP協議及其實現方法,熟悉UDP廣播、多播的原理及編程方法,掌握混合C/S架構網路通信系統的設計,熟悉HTML,Javascript等Web編程技術及實現方法。
五:數據結構與演算法 數據結構及演算法在嵌入式底層驅動、通信協議、及各種引擎開發中會得到大量應用,對其掌握的好壞直接影響程序的效率、簡潔及健壯性。此階段的學習要重點理解數據結構與演算法的基礎內容,包括順序表、鏈表、隊列、棧、樹、圖、哈希表、各種查找排序演算法等應用及其C語言實現過程。
六:C++ 、QT C++是Linux應用開發主要語言之一,本階段重點掌握面向對象編程的基本思想以及C++的重要內容。圖形界面編程是嵌入式開發中非常重要的一個環節。由於QT具有跨平台、面向對象、豐富API、支持2D/3D渲染、支持XML、多國語等強大功能,在嵌入式領域的GUI開發中得到了廣范的應用,在本階段通過基於QT圖形庫的學習使學員可以熟練編寫GUI程序,並移植QT應用程序到Cortex-A8平台。包括IDE使用、QT部件及布局管理器、信息與槽機制的應用、滑鼠、鍵盤及繪圖事件處理及文件處理的應用。
七:Cortex A8 、Linux 平台開發 通過基於ARM Cortex-A8處理s5pv210了解晶元手冊的基本閱讀技巧,掌握s5pv210系統資源、時鍾控制器、電源管理、異常中斷控制器、nand flash控制器等模塊,為底層平台搭建做好准備。Linux平台包括內核裁減、內核移植、交叉編譯、GNU工具使用、內核調試、Bootloader介紹、製作與原理分析、根文件系統製作以及向內核中添加自己的模塊,並在s5pv210實驗平台上運行自己製作的Linux系統,集成部署Linux系統整個流程。同時了解Android操作系統開發流程。Android系統是基於Linux平台的開源操作系統,該平台由操作系統、中間件、用戶界面和應用軟體組成,是首個為移動終端打造的真正開放和完整的移動軟體,目前它的應用不再局限於移動終端,還包括數據電視、機頂盒、PDA等消費類電子產品。
八:驅動開發 驅動程序設計是嵌入式Linux開發工作中重要的一部分,也是比較困難的一部分。本階段的學習要熟悉Linux的內核機制、驅動程序與用戶級應用程序的介面,掌握系統對設備的並發操作。熟悉所開發硬體的工作原理,具備ARM硬體介面的基礎知識,熟悉ARM Cortex-A8處理器s5pv210各資源、掌握Linux設備驅動原理框架,熟悉工程中常見Linux高級字元設備、塊設備、網路設備、USB設備等驅動開發,在工作中能獨立勝任底層驅動開發。
以上就是列出的關於一名合格嵌入式Linux開發工程師所必學的理論知識,其實,作為一個嵌入式開發人員,專業知識和項目經驗同樣重要,所以在我們的理論學習中也要有一定的項目實踐,鍛煉自己的項目開發能力。
⑷ 合格的linux嵌入式開發工程師需要掌握哪些知識
一個合格的嵌入式軟體開發工程師要掌握哪些知識?
跟著下面的學習步驟學習,如果都掌握了,我想了合格的嵌入式軟體開發工程師非你莫屬。加油了
嵌入式基礎課程
9天輕松掌握C語言
D1 必備Linux命令和C語言基礎D2 數據類型、常量、變數及運算符D3 C語言輸入輸出專題D4 C語言控制語句D5 C語言數組和字元串D6 指針專題一D7 指針專題二D8 函數專題1D9 函數專題2L2
Linux 及C語言高級開發
D1 軟體包管理及shell命令D2 Linux shell命令D3 Linux shell腳本編程D4 Linux C語言高級編程D5 MakefileL3
數據結構全攻略
D1 數據結構順序表D2 單鏈表上D3 單鏈表下D4 循環鏈表及線性表的應用D5 棧及其實現D6 隊列實現及應用舉例上D7 隊列實現及應用舉例下D8 樹和二叉樹上D9 樹和二叉樹下D10 查找上D11 查找下D12 排序
嵌入式底層核心課程
嵌入式Linux下文件I/O精講
D1 標准I/O上D2 標准I/O下D3 Linux下文件I/OD4 庫的製作及使用L5
Linux並發程序設計你該這么學
D1 進程編程及守護進程D2 進程編程及守護進程2D3 線程專題D4 Unix進程間通信方式上D5 Unix進程間通信方式下D6 System V IPC對象上D7 System V IPC對象下L6
Linux網路編程必修篇
D1 網路基礎上D2 網路基礎下D3 TCP編程D4 並發伺服器D5 UDP編程D6 IO多路復用D7 TCP、IP協議原理D8 網路編程擴展上D9 網路編程擴展下L7
嵌入式資料庫之sqlite3
D1 嵌入式資料庫之sqlite3上D2 嵌入式資料庫之sqlite3下L8
⑸ 想學嵌入式Linux,《嵌入式Linux應用程序開發詳解》和《嵌入式Linux應用程序開發標准教程》哪本好啊!
開發板用友善之臂的吧
mini2440 連3.5寸屏500塊錢的樣子
有好幾張DVD學習光碟
這款口碑比較高
嵌入式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內核,學習編程,讀一些優秀代碼也是有必要的。
注意: 要學會舉一反多,有強大的基礎,很多東西簡單看看就能會。想成為合格的程序員,前提是必須熟練至少一種編程語言,並具有良好的邏輯思維。一定要理論結合實踐。
不要一味鑽研技術,雖然擠出時間是很難做到的,但還是要留點餘地去完善其他的愛好,比如宇宙,素描、機械、管理,心理學、游戲、科幻電影。還有一些不願意做但必須要做的!
技術是通過編程編程在編程編出來的。永遠不要夢想一步登天,不要做浮躁的人,不要覺得路途漫上。而是要編程編程在編程,完了在編程,在編程!等機會來了在創業(不要相信有奇跡發生,盲目創業很難成功,即便成功了發展空間也不一定很大)。
嵌入式書籍推薦
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高級培訓內部教材
給你一個「嵌入式Linux實戰就業班」大綱供你參考:
歷時四個月,通過對嵌入式Linux系統全面的學習,能夠獨立勝任嵌入式Linux應用開發、系統開發、驅動開發等多方面工作,完成學習100%保證就業。
第一階段:嵌入式C高級編程
本期目標:在嵌入式領域中大部分低層開發,都會用到C語言。C語言簡潔、緊湊、使用方便靈活加上GNU在實際項目開發中所做的擴展,使得C語言在整個嵌入式開發過程中起著至關重要的作用。更重要的是在嵌入式平台下可移植性比較強。一個精通C語言程序設計的程序員,可以很容易地進入Linux、WinCE、Vxworks、uc/os等嵌入式操作系統下的軟體開發工作。本階段學習目標是掌握C語言基本知識、鞏固C編程語法基礎,以及深入C語言高級編程和數據結構與演算法,為將來的程序設計工作打下堅實的基礎。
第二階段:Linux應用及系統編程
本期目標:嵌入式Linux應用開發和系統開發是嵌入式Linux中最重要的一部分,也是企業人才需求最廣的一部分。本期學習的主要目標是精通嵌入式Linux下的程序設計,熟練掌握嵌入式Linux的開發環境、shell命令解釋器、系統編程以及網路編程,熟悉QT GUI編開發,深刻體會整個嵌入式Linux項目開發流程,強化學員對Linux應用開發的能力。最後能夠獨立完成shell命令解析器、飛鴿傳書、基於QT的網路黑白棋對戰游戲、Mplayer應用開發等項目。在工作中能很快適應項目中所涉及到的多任務編程及UI界面開發,並且能快速轉移到其它操作系統應用開發中。
第三階段:嵌入式Linux平台開發
本期目標:本階段將使學員掌握從零開始搭建嵌入式Linux運行環境,包括內核裁減、內核移植、交叉編譯、內核調試、Bootloader介紹與原理分析、根文件系統製作以及向內核中添加自己的模塊,並在s3c2440實驗平台上運行自己製作的Linux系統,集成部署Linux系統整個流程。同時了解Android操作系統開發流程。Android系統是基於Linux平台的開源手機操作系統,該平台由操作系統、中間件、用戶界面和應用軟體組成,是首個為移動終端打造的真正開放和完整的移動軟體,目前它的應用不再局限於移動終端,還包括數據電視、機頂盒、PDA等消費類電子產品。
第四階段:嵌入式微處理器及Linux設備驅動開發
本期目標:驅動程序設計是嵌入式Linux開發工作中重要的一部分,也是比較困難的一部分。本階段課程讓學員熟悉Linux的內核機制、驅動程序與用戶級應用程序的介面,掌握系統對設備的並發操作。熟悉所開發硬體的工作原理,具備ARM硬體介面的基礎知識,熟悉ARM處理器S3c2440各資源、掌握Linux設備驅動原理框架,熟悉工程中常見Linux高級字元設備、塊設備、網路設備、USB設備等驅動開發,在工作中能獨立勝任底層驅動開發。
第五階段:綜合項目實踐
本期目標:以公司項目開發流程完成一個實際項目,讓學員了解真實項目的開發流程,並學會將所學知識應用到項目開發中,根據真實項目的管理過程,培養學員項目團隊協同開發能力,項目文檔編寫能力和新知識的學習能力,掌握需求分析、規格設計、風險評估、時程規劃、人員分配等,積累項目開發經驗。以下列舉出部分項目,可以根據學員興趣愛好、技術特點自行選擇,詳細說明請參考《凌陽科技項目開發參考題目》。
⑺ 想成為嵌入式工程師需要學習哪些內容
大致分為三個階段:基礎篇、進階篇、大咖篇。
入門嵌入式工程師
此階段主要是前期的入門過程,主要針對入行沒多久的新人。其實成功沒有捷徑,所以打好基礎才是關鍵。嵌入式開發要學什麼主要包含以下4個方面的內容:
1.電路知識 首先你要學習電路、模電、數電,認識電阻、電容、三極體,基礎器件要知道,放大電路、集成運放、時序電路基本電路能看懂,不然看電路圖一定是雲里霧里,也就無法進行後續的工作。硬體產品的設計實現,包括器件選型、原理圖和PCB設計、電路調試,都需要過硬的電路基礎。
2.C語言
C語言是嵌入式開發中最重要的編程語言,要對這門語言有深入的理解,畢竟不僅僅要會寫程序,看懂他人程序也很重要。最基本的數據類型、數組、指針、結構體,鏈表、文件操作等都要會,掌握基本語法和語句,不然你要能區分指針數組與數組指針嗎?
3.單片機 單片機入門相對簡單,通過單片機的學習可以熟悉單片機的硬體結構,包括I/O口、AD轉換、通信(串口、並口、I2C、CAN、USB、乙太網、ZigBee技術等)、顯示(LED、LCD等)、控制(PWM等控制技術)、數據處理(圖形、圖像、語音、視頻等的處理或識別)等,學好單片機可以為採用嵌入式系統奠定良好的基礎。
4Linux基礎
Linux的源碼和架構都是開放的,在嵌入式系統中應用尤為廣泛,學習Linux對於系統的開發會有很大的幫助。詳細了解Linux下的目錄結構、基本命令、編輯器VI、編譯器GCC、調試器GDB和 Make 項目管理工具,Shell Makefile腳本編寫等知識,以及嵌入式開發環境的搭建。
中級嵌入式工程師
經過第一個階段的學習,你已經可以進行嵌入式開發工作了,但是要進階依舊還有很多知識要學,而這個階段也將是第一個分水嶺,使得優秀的嵌入式工程師得以脫穎而出。此階段雖然只有三項,但涉及的知識非常廣,要想學好需要花費大量的精力。
1.Linux編程
系統編程可以直接跟內核及核心系統程序庫對話,深入了解Linux內核。掌握Linux系統編程主要提升對Linux應用開發的理解和代碼調試的能力。由於網路應用開發越來越廣泛,通過Linux網路發展、TCP/IP協議、socket編程、TCP網路編程、UDP網路編程、Web編程開發等方面入手,可以全面了解Linux網路應用程序開發。
2數據結構與演算法 數據結構及演算法在嵌入式底層驅動、通信協議及各種引擎開發中得到了廣泛的應用,語言編譯要使用棧、散列表以及語法樹;操作系統中用隊列、存儲管理表及目錄樹等;資料庫系統運用線型表、多鏈表及索引表進行數據管理等等,對其掌握的好壞直接影響程序的效率、簡潔及健壯性。
3.QT、DSP、FPGA
Linux沒有自己界面,學習QT編程可以創建藝術級的圖形用戶界面所需的所有功能,從而更好的實現人機交互控制。而如今用戶對於圖形圖像的要求也越來越高,這就需要DSP、FPGA技術來設計開發更好的嵌入式視覺系統。
高級嵌入式工程師
學習了前兩個階段的知識,你已經可以勝任大部分嵌入式工作了,但是距離大咖仍有一定的差距,其實已經到了第二個分水嶺。這部分更多涉及系統層面,沒有全方位的知識將會很難下手。
1操作系統平台開發 除了Linux外,嵌入式操作系統還有ARM、WINCE、uC/OS II、Vxworks、uClinux等,不同的系統有著不同的使用環境,你需要學習掌握系統的各個模塊,為底層平台搭建做好准備。熟悉各個操作系統的特點以及系統的內核移植,確保操作系統能在某個微處理器或微控制器上運行。隨著手機智能硬體的快速興起,Android操作系統開發也越來越重要。
2驅動開發 驅動程序設計是嵌入式Linux開發工作中非常重要的一部分。不僅要熟悉Linux的內核機制、驅動程序與用戶級應用程序的介面,掌握系統對設備的並發操作。還要具備ARM硬體介面的基礎知識,熟悉ARM Cortex處理器各資源、掌握Linux設備驅動原理框架,以及工程中常見Linux高級字元設備、塊設備、網路設備、USB設備的驅動開發。
當你到達這個位置的時候,可以說你已經是一個人生贏家了,而真正的學習過程如同一場漫長的修行,在這個過程中,必定有各種各樣的困難。當然了,嵌入式工作中更多的需要實踐以及經驗的積累,相信守得雲開見月明,你也可成為一名優秀的嵌入式工程師。需要嵌入式培訓,可以來到華清的星創客精英訓練營,專門培訓中高端嵌入式工程師。
⑻ 學習Linux 嵌入式系統基礎哪本參考書好
學習linux嵌入式系統: ①[嵌入式Linux應用開發完全手冊] ps:網上有下,不錯的書! ②嵌入式微處專理器結構與應用:arm原理及屬匯編。 ③嵌入式操作系統類:ucOS/II簡單,開源 其實,學習linux嵌入式系統,最主要還是把linux的基礎打扎實,當你把基礎(linux上的常用操作)搞好,將linux的內核學習通,在轉向ARM嵌入式平台或者其他的平台。不要一開始就直接學習ARM嵌入式,畢竟它只是個平台,換一種思路而已,你的linux弄熟了,轉向嵌入式就很容易上手了; 還有就是:理論指導一切,這是搞技術的都要知道的,必須把基礎打牢,但是不能只停留在理論基礎上,要多上機實踐,加強動手,在實踐中運用理論知識! 有機會,參加個培訓,是入門的好辦法,對就業也有幫助。 linux的學習資料:《Linux就該這么學》 最後,祝你成功,在linux嵌入式學習中找到快樂·····謝謝
⑼ 嵌入式Linux系統工程師標准培訓教材1是不是用c語言教的
教材什麼的不知道抄。襲
不過 Linux 內核和 glibc 都是 C 語言寫的。所以嵌入式至少會 C 語言,寫驅動必然要接觸到內核用的 C 語言。
但是高級應用就不一定了,只要能寫出可以運行的程序,什麼語言都可以。但這個似乎就不是嵌入式的范疇了。