linux嵌入式學習路線(新版)_第1頁
linux嵌入式學習路線(新版)_第2頁
linux嵌入式學習路線(新版)_第3頁
linux嵌入式學習路線(新版)_第4頁
linux嵌入式學習路線(新版)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、嵌入式學習路線圖 嵌入式開發(fā)學習路線圖                                              

2、                              為什么選擇學習嵌入式?       嵌入式系統(tǒng)無疑是當前最熱門最有發(fā)展前途的IT應用領域之一,同時也是當今IT領域僅存的幾個金領職位之一。當前的中國IT人才面臨嚴重的“后繼乏人”,

3、 而且這種缺口由于培訓缺乏、教育模式等原因造成的,而缺口最大的,就是高級IT人才。如果你從事的IT培訓不專業(yè),面對競爭越來越激烈的職場,基本找不到 工作。據(jù)專家預測,嵌入式每年人才缺口在30萬左右。 嵌入式行業(yè)平均薪資分布  嵌入式職業(yè)發(fā)展講解視頻        視頻中主要講解什么樣的人適合從事嵌入式行業(yè)、嵌入式行業(yè)從業(yè)人員需要具備哪些基本素質、嵌入式行業(yè)的特點以及嵌入式行業(yè)的現(xiàn)狀與發(fā)展。嵌入式研發(fā)方向職業(yè)生涯講解視頻(1)嵌入式研發(fā)方向職業(yè)生涯講解視頻(2)嵌入式研發(fā)方向職業(yè)生涯講解視頻(3)

4、嵌入式研發(fā)方向職業(yè)生涯講解視頻(4)嵌入式研發(fā)方向職業(yè)生涯講解視頻(5)  ARM+Linux嵌入式底層內核驅動方向學習總體路線圖 基礎學習-Linux入門       目前嵌入式主要開發(fā)環(huán)境有 Linux、Wince等;Linux因其開源、開發(fā)操作便利而被廣泛采用。而Linux操作系統(tǒng)也只是一個簡單的操作系統(tǒng),簡單的使用對于嵌入式開發(fā)人 員來說價值并不很高,真正有價值的是掌握Linux的基本服務和Linux的設計理念、思想,這對于嵌入式開發(fā)人員的長期發(fā)展是很極其重要的。Linux 系統(tǒng)有很多發(fā)

5、行版,RedHat、Ubuntu、Fedora等。作為嵌入式開發(fā)人員,我們沒有必要把精力放到使用哪個Linux發(fā)行版上,而是盡快把 Linux系統(tǒng)盡快安裝好。如果打算堅持長期學習,那么建議您把自己的電腦做成雙系統(tǒng),而不要在虛擬機上安裝。Ubuntu系統(tǒng)下載地址: A)經(jīng)典書籍推薦: B)經(jīng)典學習視頻推薦: 1、Linux學習建議2、UNIX like系統(tǒng)的特點3、UNIX原則4、系統(tǒng)結構與終端控制臺5、RHEL5 Linux安裝6、Linux下尋求幫助7、文件相關命令初步8、系統(tǒng)命令初步9、用戶及組管理初步10、文件屬性11、文件夾屬性及umask12、Linux

6、編輯器及VIM初步13、Linux查找及壓縮14、文本處理及正則表達式15、linux下X圖形顯示體系16、進程控制17、進程優(yōu)先級前臺后臺18、變量快捷鍵19、bash運算符及啟動腳本20、shell腳本及交互121、shell腳本及交互222、shell腳本流程控制23、shell腳本sed&awk24、Linux安裝軟件 基礎學習-C語言        C語言是嵌入式開發(fā)必備的基礎知識。在Linux下從事C語言的開發(fā),你會覺得更為順暢、更為自然,因為C語言是因unix的出現(xiàn)而誕生的,Linux內 核幾

7、乎完全是由C語言編寫完成的。學習C語言,如果不會用指針,那么就稱不上會C語言。做嵌入式開發(fā)指針更顯得尤為重要,所以做嵌入式開發(fā)除了掌握位操 作、限定詞等,對指針的掌握是不可或缺的。而且要掌握多級指針、函數(shù)指針等等。涉及到指針,那么就會講到內存分配。在大學中,學習C語言一般的學習很少講 到內存分配,但是如果期望從事嵌入式開發(fā),那么就必須懂得C語言是怎么做內存分配管理的。指針之外,還要學習模塊化編譯處理、指針與數(shù)組、gcc、 Makefile、GDB、遞歸、結構體、宏定義使用等。C語言是整棟嵌入式大廈的基礎,所以在學習嵌入式時,必須把C語言重視起來,多敲代碼,多練。一 名優(yōu)秀的程序員必定是通過“體

8、力勞動”再轉向“腦力勞動的”,這也是為什么我們要有“寫不出代碼=0”思想的原因所在。 如果說C語言相當于文字,那么數(shù)據(jù)結構就相當于在造句、寫文章。代碼質量有一部分取決于對數(shù)據(jù)結構的掌握程度。在數(shù)據(jù)結構部分我們要把鏈表、樹、排序作 為學習重點。而且我們也可以查看一些比較常見的函數(shù)(如strcopy、strcat、printf等)在內核中是如何實現(xiàn)的,以及編寫代碼模擬堆棧,這 不僅有利于編寫代碼質量的提高,而且還可以初步了解Linux內核精髓,為今后工作打下堅實的基礎。       C+、QT在嵌入式開發(fā)領域,是用來開發(fā)圖形界面

9、的,希望從事上層應用開發(fā)及圖形界面,那么在C+、QT方面需要比較深入的學習。 A)經(jīng)典書籍推薦:    B)經(jīng)典學習視頻推薦:1-1c語言編輯器vi的使用1-2c語言編譯過程及編譯器gcc2-1c語言的數(shù)據(jù)類型2-2數(shù)據(jù)快速引用2-3c語言運算符及表達式3-1c語言的分支結構3-2c語言的循環(huán)結構4-1c語言函數(shù)的定義及傳4-2c語言函數(shù)調用5-1-1c語言的一維數(shù)組5-1-2二維數(shù)組及多維數(shù)組5-1-3c語言字符數(shù)組5-2-1c語言結構體-Struct5-2-2C語言聯(lián)合體-Union6-1c語言指針的概念6-2c語言指針與一維數(shù)組6-3指針

10、與二維數(shù)組及字符6-4指針與結構體、聯(lián)合體6-5c語言指針與函數(shù)6-6c語言指針常量與常量7c語言存儲空間管理8-1c語言存儲模型分析8-2雙向循環(huán)鏈表的創(chuàng)建增8-3雙向循環(huán)鏈表的數(shù)據(jù)管 C)經(jīng)典學習案例:1、學員成績管理系統(tǒng)2、計算器3、電子詞典4、文件壓縮器 基礎進階-Linux應用程序設計      Linux的思想源于Unix。Linux繼承了Unix的優(yōu)點,但是沒有用UNIX的代碼,所有程序都是重新編寫的,而且Linux與Unix的源碼級兼容。Linux是類Unix操作系統(tǒng)。Linux 不僅符合 POSIX 標準,

11、而且還包括其它 UNIX 標準的多種特性,例如,UNIX 的 System V 接口文檔(System V Interface Document,SVID)和伯克利軟件發(fā)布(Berkeley Software Distribution,BSD)版本。Linux 采用了折衷的策略,包含了 UNIX 幾個典型特性當中最實用的一些功能:      Linux 采用了 SVR4 的進程間通信(IPC)機制:共享內存、消息隊列、信號。      Linux 支持 BSD Socket 網(wǎng)絡編程接口。    

12、;  許多 Linux 發(fā)行版采用 SysV init 機制,支持運行級別。此階段的學習是從事嵌入式上層應用開發(fā)以及底層開發(fā)人員的必修課程。進程、線程、信號、文件鎖、socket是這部分內容的重點。要把這些內容學的透徹非要下些苦功夫不可。而且函數(shù)是系統(tǒng)提供給我們的,難免要對計算機系統(tǒng)深入理解一番。TCP/IP協(xié)議也是要涉及到的。有問題建議用Google搜索及登陸chinaunix論壇。通過這個階段的學習,我們就可以初步實現(xiàn)一些應用程序的開發(fā)了,如做自己的shell命令解析器、簡單的聊天軟件、視頻多播等。A)經(jīng)典書籍推薦:  B)經(jīng)典學習視頻推薦: Lin

13、ux網(wǎng)絡開發(fā)-1、ARP攻擊原理Linux網(wǎng)絡開發(fā)-2、ARP攻擊實例分析Linux網(wǎng)絡開發(fā)-3、ARP攻擊程序代碼分析和socket構造C)經(jīng)典學習案例:1、串口監(jiān)聽程序   2、圖片瀏覽器      3、MP3播放器        4、聊天程序         5、 ftp程序6、音頻廣播程序   7、ping的實現(xiàn)   &

14、#160; 8、DDos攻擊程序   9、ARP攻擊程序嵌入式入門-ARM體系結構       從這部分開始,我們將真正進入嵌入式開發(fā)學習階段。首先我們要知道采用哪種處理器。目前通用嵌入式處理器有ARM、MIPS、PowerPC、X86等。從市場產(chǎn)品占有率上看,ARM處理器遠遠領先于同類其它處理器,并逐步掠奪傳統(tǒng)51單片機和英特爾市場份額。據(jù)招聘網(wǎng)站統(tǒng)計,目前用人單位在技術水平上要求開發(fā)人員掌握ARM9及以上平臺的開發(fā)技術。ARM公司在發(fā)布ARM11產(chǎn)品后,更改以往的數(shù)字標記更新方式,轉為發(fā)布ARM Cortex。

15、但是Cortex并不是更高端,而是全新系列的處理器,比如Cortex M3,它主要應用于機械加工、工控領域,目的是取代以前的ARM7處理器。        在開始學習前,建議有一塊自己的開發(fā)板,目前ARM9 2440的開發(fā)板價格在400-600元之間,ARM11 6410的開發(fā)板價格要高一些,最便宜的也要1200元以上。在此,提醒大家盡量不要買mini開發(fā)板,雖然mini開發(fā)板的價格要便宜些,但是與正常開發(fā)板相比,mini板功能是不完善的。嵌入式匯編有別于X86匯編,所以如果以前沒有接觸過匯編語言,那么沒有必要先去學X86匯編再學嵌入式匯編,可

16、以直接學習嵌入式匯編。除了匯編我們還要學習ARM指令集。有了開發(fā)板,我們要下載相對應處理器的DataSheet及開發(fā)板電路原理圖。ARM體系結構的學習我們是不能完全照抄別人代碼的,因為我們自己手中的開發(fā)板及處理器與別人是不同的,除非所用的代碼是根據(jù)你手中的開發(fā)板來編寫的。所以,我們要先去看書、看視頻資料理解原理及工作方式等,然后根據(jù)自己開發(fā)板的電路原理圖和DataSheet來編寫代碼,達到理解外圍設備工作原理和操作硬件的目的。B)經(jīng)典學習視頻推薦:1)嵌入式掃盲篇 嵌入式漫談1嵌入式漫談2嵌入式漫談3十問嵌入式1-什么是嵌入式,創(chuàng)業(yè)十問嵌入式2-嵌入式實例iphone十問嵌入式3-嵌

17、入式前景十問嵌入式4-嵌入式學習十問嵌入式5-ARM概述十問嵌入式6-ARM概述 開發(fā)板十問嵌入式7-ARM與單片機十問嵌入式8-匯編語言的作用十問嵌入式9-操作系統(tǒng)的選擇十問嵌入式10-編程語言選擇   2)嵌入式開發(fā)概述 嵌入式開發(fā)入門經(jīng)典教程-1嵌入式開發(fā)入門經(jīng)典教程-2嵌入式開發(fā)入門經(jīng)典教程-3嵌入式開發(fā)入門經(jīng)典教程-4嵌入式開發(fā)入門經(jīng)典教程-5嵌入式開發(fā)入門經(jīng)典教程-6嵌入式開發(fā)入門經(jīng)典教程-7嵌入式開發(fā)入門經(jīng)典教程-8嵌入式開發(fā)入門經(jīng)典教程-9嵌入式開發(fā)入門經(jīng)典教程-10嵌入式開發(fā)入門經(jīng)典教程-11嵌入式開發(fā)入門經(jīng)典教程-12嵌入式開發(fā)入門經(jīng)

18、典教程-13  3)ARM體系結構與Bootloader開發(fā)1、ARM基礎概念介紹與開發(fā)板使用教程2、編譯器高級應用與裸機代碼編寫教程3、ARM指令與ARM匯編入門4、ARM匯編高級教程與APCS規(guī)范詳解5、ARM體系結構詳解與異常處理機制6、ARM中斷機制詳解與Watchdog驅動開發(fā)實例7-1、ARM外部中斷機制詳解與LED驅動開發(fā)實例7-2、ARM嵌入式開發(fā)之ARM外部中斷機制詳解與實例8、AMBA總線結構與ARM時鐘配置9、時序圖詳解與NAND FLASH驅動開發(fā)實例10-1、內存控器與SDRAM原理詳解(上)10-2、內存控器與SDRAM原理詳解(下)11、UAR

19、T串口詳解與通信開發(fā)實例12、ARM協(xié)處理器CP15配置原理13、從零開始寫B(tài)ootloader開發(fā)過程詳解C)經(jīng)典學習案例:1. ARM模擬器開發(fā)       2. Watchdog控制程序        3. RTC時鐘控制程序4. Uart控制程序            5. LCD控制程序              &#

20、160;     6. 觸摸屏控制程序7. DMA控制程序          8. 音頻控制程序                    9. 網(wǎng)卡控制程序10. 文件系統(tǒng)制作        11. ARM-Linux移植嵌入式提升-Linux內核、驅動      

21、60; 眾所周知嵌入式開發(fā)包含至少兩個級別,一個是嵌入式內核驅動級別,另外一個是嵌入式應用層開發(fā),而薪酬高的、最具價值的無疑是嵌入式內核驅動級別的開發(fā)者。真正的嵌入式高手或者企業(yè)中的核心開發(fā)人員,一定是嵌入式底層的內核驅動開發(fā)工程師,這些工程師成長比較緩慢,造成對內核驅動人才的大量需求,所以這些人才是真正企業(yè)需要的香餑餑。掌握驅動開發(fā)會讓自己的核心能力有極大的飛躍,真正實現(xiàn)嵌入式最有價值的就業(yè)。        由于Linux內核更新速度很快,書籍和視頻不可能及時更新,所以我們再看書和視頻后,要自己動手下載內核源碼包,去看內核

22、中的代碼,在這里可以充分檢驗C語言、數(shù)據(jù)結構等基礎知識的掌握程度。而驅動的編寫還是要借助外設硬件電路原理圖和芯片手冊。內核和驅動的知識是讓我們根據(jù)不同的硬件,編寫對應的驅動、合理剪裁內核、制作文件系統(tǒng),并移植到硬件開發(fā)板上。如果手里有ARM11 6410及以上的開發(fā)板,可以試試在裸板上編寫驅動并移植Android系統(tǒng)到開發(fā)板上吧。B)經(jīng)典學習案例:1. GPIO驅動                2. RTC時鐘驅動   3. WatchDog驅動   4. Udev移植  

23、    5. 觸摸屏輸入設備驅動6. LCD顯示設備驅動   7. DMA驅動        8. 音頻設備驅動        9. Nand Flash塊設備驅動  10. 網(wǎng)絡設備驅動UEA-嵌入式底層驅動開發(fā)者 V8.2版-項目案例        嵌入式開發(fā)課程涉及領域非常廣泛。從硬件時序圖到體系機構、從驅動到各種協(xié)議規(guī)范

24、、從操作系統(tǒng)內核到應用層開發(fā)。整個過程觸及海量的系統(tǒng)開發(fā)知識和少量硬件體系知識。嵌入式開發(fā)分成應用層開發(fā)和底層驅動開發(fā)。伴隨著嵌入式領域如消費電子、移動設備、智能工控等行業(yè)應用的興起,龐大的市場需求刺激了眾多企業(yè)紛紛投向嵌入式開發(fā)行業(yè)。行業(yè)的迅猛增長伴隨著人才需求的極度短缺,國內大學教育與實際需求脫軌的同時,造成了人才斷層,所以一門好的嵌入式課程必須有足夠的嵌入式項目實踐做支撐。企業(yè)實際開發(fā)項目      Linux環(huán)境下的視頻點播系統(tǒng)      從零開發(fā)ARM-Linux嵌

25、入式設備的Bootloader      Android智能手機      ARM Cortex A9雙核平板電腦1、Linux環(huán)境下的視頻點播系統(tǒng)        PPLIVE、PPS等網(wǎng)絡電視相對于傳統(tǒng)電視由于提供靈活的點播方式,倍受人們歡迎?;贑/S架構的網(wǎng)絡程序不僅用于網(wǎng)絡電視,同樣適用于嵌入式領域的網(wǎng)絡程序,如QQ的服務端軟件、網(wǎng)絡游戲、銀行使用的排號機、餐廳的點餐系統(tǒng)等。而這些系統(tǒng)服務

26、器端大多數(shù)才用的是UNIX/LINUX平臺的系統(tǒng)及網(wǎng)絡程序。通過該項目的演練,可以為目前最熱門的研發(fā)職業(yè)生涯打下堅實的技術基礎。該項目目前用于尚觀內部學員自習時間觀看教學視頻。項目說明視頻2、從零開發(fā)ARM-Linux嵌入式設備的Bootloader        一個嵌入式 Linux 系統(tǒng)從軟件的角度看通常可以分為四個層次: 引導加載程序、Linux 內核、文件系統(tǒng)、用戶應用程序。簡單地說,BootLoader就是在操作系統(tǒng)內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間的映射

27、圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調用操作系統(tǒng)內核準備好正確的環(huán)境。 通常,BootLoader 是嚴重地依賴于硬件而實現(xiàn)的,所以就要求嵌入式開發(fā)從業(yè)人員必須具備開發(fā)Bootloader的能力。尚觀要求學員具備從零首寫B(tài)ootloader的能力,這樣不僅能輕松勝任企業(yè)職位要求,對于掌握真正嵌入式開發(fā)本質具有強有力的幫助。 3、Android智能手機        Google的Android系統(tǒng)不僅取得了手機市場廣闊占有率,同時也被平板電腦廠商和其他智能終端以及大量的嵌入式設備生產(chǎn)廠

28、商所采用。這主要歸結于Android的開源、可修改、可移植等特性。采用Android系統(tǒng)不僅能減少企業(yè)產(chǎn)品研發(fā)人力、財力的投入,還能幫助企業(yè)縮短研發(fā)周期增快產(chǎn)品上市速度,保證產(chǎn)品具備先期競爭實力。Android的普及勢必促使研發(fā)人員具備底層驅動研發(fā)能力。尚觀以企業(yè)實際Android手機研發(fā)為實例,基于ARM11 6410平臺真實開發(fā)底層驅動,移植Android系統(tǒng),最終實現(xiàn)Android智能手機。 4、ARM Cortex A9雙核平板電腦        該項目直接在雙核A9處理器上運行主流的Androi

29、d系統(tǒng),學員需要憑借ARM11的經(jīng)驗再進一步理解更新架構,在原來代碼的基礎上,重寫基于A9的Bootloader及相關驅動,讓Android系統(tǒng)運行在A9雙核處理器上。該平臺采用7寸平板顯示,擁有主流智能平板配置。   技術強化真實案例1、嵌入式C語言強化部分案例         自己設計一個指法練習的游戲程序         自己設計一個漢諾塔游戲2、數(shù)據(jù)結構部分案例   &

30、#160;     成績管理系統(tǒng)         電子詞典         文件壓縮器         計算器3、c+程序設計案例         串口監(jiān)聽程序      

31、0;  模板庫的實現(xiàn)(MyTL)         編寫自己的圖片瀏覽器4、Linux系統(tǒng)程序設計案例         串口監(jiān)聽程序         圖片瀏覽器         MP3播放器5、Linux網(wǎng)絡程序設計案例    &#

32、160;    聊天程序         ftp程序         ping的實現(xiàn)         DDos攻擊程序         ARP攻擊程序6、ARM嵌入式開發(fā)案例      &#

33、160;  ARM模擬器開發(fā)         Watchdog控制程序         RTC時鐘控制程序         Uart控制程序         LCD控制程序         DMA控制程序         音頻控制程序    &#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論