




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、ARM+Linux嵌入式底層內(nèi)核驅(qū)動方向?qū)W習總體路線圖 基礎(chǔ)學習-Linux入門 目前嵌入式主要開發(fā)環(huán)境有 Linux、Wince等;Linux因其開源、開發(fā)操作便利而被廣泛采用。而Linux操作系統(tǒng)也只是一個簡單的操作系統(tǒng),簡單的使用對于嵌入式開發(fā)人 員來說價值并不很高,真正有價值的是掌握Linux的基本服務和Linux的設(shè)計理念、思想,這對于嵌入式開發(fā)人員的長期發(fā)展是很極其重要的。Linux 系統(tǒng)有很多發(fā)行版,RedHat、Ubuntu、Fedora等。作為嵌入式開發(fā)人員,我們沒有必要把精力放到使用哪個Lin
2、ux發(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)結(jié)構(gòu)與終端控制臺5、RHEL5 Linux安裝6、Linux下尋求幫助7、文件相關(guān)命令初步8、系統(tǒng)命令初步9、用戶及組管理初步10、文件屬性11、文件夾屬性及umask12、Linux編輯器及VIM初步13、Linux查找及壓縮14、文本處理及正則表達式15、linux下X圖形顯示體系16、進程控制1
3、7、進程優(yōu)先級前臺后臺18、變量快捷鍵19、bash運算符及啟動腳本20、shell腳本及交互121、shell腳本及交互222、shell腳本流程控制23、shell腳本sed&awk24、Linux安裝軟件基礎(chǔ)學習-C語言 C語言是嵌入式開發(fā)必備的基礎(chǔ)知識。在Linux下從事C語言的開發(fā),你會覺得更為順暢、更為自然,因為C語言是因unix的出現(xiàn)而誕生的,Linux內(nèi) 核幾乎完全是由C語言編寫完成的。學習C語言,如果不會用指針,那么就稱不上會C語言。做嵌入式開發(fā)指針更顯得尤為重要,所以做嵌入式開發(fā)除了
4、掌握位操 作、限定詞等,對指針的掌握是不可或缺的。而且要掌握多級指針、函數(shù)指針等等。涉及到指針,那么就會講到內(nèi)存分配。在大學中,學習C語言一般的學習很少講 到內(nèi)存分配,但是如果期望從事嵌入式開發(fā),那么就必須懂得C語言是怎么做內(nèi)存分配管理的。指針之外,還要學習模塊化編譯處理、指針與數(shù)組、gcc、 Makefile、GDB、遞歸、結(jié)構(gòu)體、宏定義使用等。C語言是整棟嵌入式大廈的基礎(chǔ),所以在學習嵌入式時,必須把C語言重視起來,多敲代碼,多練。一 名優(yōu)秀的程序員必定是通過“體力勞動”再轉(zhuǎn)向“腦力勞動的”,這也是為什么我們要有“寫不出代碼=0”思想的原因所在。 如果說C語言相當于文字,那么數(shù)據(jù)結(jié)
5、構(gòu)就相當于在造句、寫文章。代碼質(zhì)量有一部分取決于對數(shù)據(jù)結(jié)構(gòu)的掌握程度。在數(shù)據(jù)結(jié)構(gòu)部分我們要把鏈表、樹、排序作 為學習重點。而且我們也可以查看一些比較常見的函數(shù)(如strcopy、strcat、printf等)在內(nèi)核中是如何實現(xiàn)的,以及編寫代碼模擬堆棧,這 不僅有利于編寫代碼質(zhì)量的提高,而且還可以初步了解Linux內(nèi)核精髓,為今后工作打下堅實的基礎(chǔ)。 C+、QT在嵌入式開發(fā)領(lǐng)域,是用來開發(fā)圖形界面的,希望從事上層應用開發(fā)及圖形界面,那么在C+、QT方面需要比較深入的學習。 C)經(jīng)典學習案例:1、學員成績
6、管理系統(tǒng)2、計算器3、電子詞典4、文件壓縮器 基礎(chǔ)進階-Linux應用程序設(shè)計 Linux的思想源于Unix。Linux繼承了Unix的優(yōu)點,但是沒有用UNIX的代碼,所有程序都是重新編寫的,而且Linux與Unix的源碼級兼容。Linux是類Unix操作系統(tǒng)。Linux 不僅符合 POSIX 標準,而且還包括其它 UNIX 標準的多種特性,例如,UNIX 的 System V 接口文檔(System V Interface Document,SVID)和伯克利軟件發(fā)布(Berkeley Software Distribution,B
7、SD)版本。Linux 采用了折衷的策略,包含了 UNIX 幾個典型特性當中最實用的一些功能: Linux 采用了 SVR4 的進程間通信(IPC)機制:共享內(nèi)存、消息隊列、信號。 Linux 支持 BSD Socket 網(wǎng)絡編程接口。 許多 Linux 發(fā)行版采用 SysV init 機制,支持運行級別。此階段的學習是從事嵌入式上層應用開發(fā)以及底層開發(fā)人員的必修課程。進程、線程、信號、文件鎖、socket是這部分內(nèi)容的重點。要把這些內(nèi)容學的透徹非要下些苦
8、功夫不可。而且函數(shù)是系統(tǒng)提供給我們的,難免要對計算機系統(tǒng)深入理解一番。TCP/IP協(xié)議也是要涉及到的。有問題建議用Google搜索及登陸chinaunix論壇。通過這個階段的學習,我們就可以初步實現(xiàn)一些應用程序的開發(fā)了,如做自己的shell命令解析器、簡單的聊天軟件、視頻多播等。A)經(jīng)典書籍推薦: B)經(jīng)典學習視頻推薦: Linux網(wǎng)絡開發(fā)-1、ARP攻擊原理Linux網(wǎng)絡開發(fā)-2、ARP攻擊實例分析Linux網(wǎng)絡開發(fā)-3、ARP攻擊程序代碼分析和socket構(gòu)造C)經(jīng)典學習案例:1、串口監(jiān)聽程序 2、圖片瀏覽器 &
9、#160; 3、MP3播放器 4、聊天程序 5、 ftp程序6、音頻廣播程序 7、ping的實現(xiàn) 8、DDos攻擊程序 9、ARP攻擊程序嵌入式入門-ARM體系結(jié)構(gòu) 從這部分開始,我們將真正進入嵌入式開發(fā)學習階段。首先我們要知道
10、采用哪種處理器。目前通用嵌入式處理器有ARM、MIPS、PowerPC、X86等。從市場產(chǎn)品占有率上看,ARM處理器遠遠領(lǐng)先于同類其它處理器,并逐步掠奪傳統(tǒng)51單片機和英特爾市場份額。據(jù)招聘網(wǎng)站統(tǒng)計,目前用人單位在技術(shù)水平上要求開發(fā)人員掌握ARM9及以上平臺的開發(fā)技術(shù)。ARM公司在發(fā)布ARM11產(chǎn)品后,更改以往的數(shù)字標記更新方式,轉(zhuǎn)為發(fā)布ARM Cortex。但是Cortex并不是更高端,而是全新系列的處理器,比如Cortex M3,它主要應用于機械加工、工控領(lǐng)域,目的是取代以前的ARM7處理器。 在開始學習前,建議有一塊自己的開
11、發(fā)板,目前ARM9 2440的開發(fā)板價格在400-600元之間,ARM11 6410的開發(fā)板價格要高一些,最便宜的也要1200元以上。在此,提醒大家盡量不要買mini開發(fā)板,雖然mini開發(fā)板的價格要便宜些,但是與正常開發(fā)板相比,mini板功能是不完善的。嵌入式匯編有別于X86匯編,所以如果以前沒有接觸過匯編語言,那么沒有必要先去學X86匯編再學嵌入式匯編,可以直接學習嵌入式匯編。除了匯編我們還要學習ARM指令集。有了開發(fā)板,我們要下載相對應處理器的DataSheet及開發(fā)板電路原理圖。ARM體系結(jié)構(gòu)的學習我們是不能完全照抄別人代碼的,因為我們自己手中的開發(fā)板及處理器與別人是不同的,除非所用的
12、代碼是根據(jù)你手中的開發(fā)板來編寫的。所以,我們要先去看書、看視頻資料理解原理及工作方式等,然后根據(jù)自己開發(fā)板的電路原理圖和DataSheet來編寫代碼,達到理解外圍設(shè)備工作原理和操作硬件的目的。B)經(jīng)典學習視頻推薦:1)嵌入式掃盲篇 嵌入式漫談1嵌入式漫談2嵌入式漫談3十問嵌入式1-什么是嵌入式,創(chuàng)業(yè)十問嵌入式2-嵌入式實例iphone十問嵌入式3-嵌入式前景十問嵌入式4-嵌入式學習十問嵌入式5-ARM概述十問嵌入式6-ARM概述 開發(fā)板十問嵌入式7-ARM與單片機十問嵌入式8-匯編語言的作用十問嵌入式9-操作系統(tǒng)的選擇十問嵌入式10-編程語言選擇 2
13、)嵌入式開發(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)典教程-13 3)ARM體系結(jié)構(gòu)與Bootloader開發(fā)1、ARM基礎(chǔ)概念介紹與開發(fā)板使用教程 2、編譯器高級應用與裸機代碼編寫教程3、ARM指令與ARM匯編入門4、ARM匯編高級教程與APCS規(guī)范詳解5、ARM
14、體系結(jié)構(gòu)詳解與異常處理機制6、ARM中斷機制詳解與Watchdog驅(qū)動開發(fā)實例7-1、ARM外部中斷機制詳解與LED驅(qū)動開發(fā)實例7-2、ARM嵌入式開發(fā)之ARM外部中斷機制詳解與實例8、AMBA總線結(jié)構(gòu)與ARM時鐘配置9、時序圖詳解與NAND FLASH驅(qū)動開發(fā)實例10-1、內(nèi)存控器與SDRAM原理詳解(上)10-2、內(nèi)存控器與SDRAM原理詳解(下)11、UART串口詳解與通信開發(fā)實例12、ARM協(xié)處理器CP15配置原理13、從零開始寫B(tài)ootloader開發(fā)過程詳解C)經(jīng)典學習案例:1. ARM模擬器開發(fā) 2. Watchdog控制程序&
15、#160; 3. RTC時鐘控制程序4. Uart控制程序 5. LCD控制程序 6. 觸摸屏控制程序7. DMA控制程序 8. 音頻控制程序
16、0; 9. 網(wǎng)卡控制程序10. 文件系統(tǒng)制作 11. ARM-Linux移植嵌入式提升-Linux內(nèi)核、驅(qū)動 眾所周知嵌入式開發(fā)包含至少兩個級別,一個是嵌入式內(nèi)核驅(qū)動級別,另外一個是嵌入式應用層開發(fā),而薪酬高的、最具價值的無疑是嵌入式內(nèi)核驅(qū)動級別的開發(fā)者。真正的嵌入式高手或者企業(yè)中的核心開發(fā)人員,一定是嵌入式底層的內(nèi)核驅(qū)動開發(fā)工程師,
17、這些工程師成長比較緩慢,造成對內(nèi)核驅(qū)動人才的大量需求,所以這些人才是真正企業(yè)需要的香餑餑。掌握驅(qū)動開發(fā)會讓自己的核心能力有極大的飛躍,真正實現(xiàn)嵌入式最有價值的就業(yè)。 由于Linux內(nèi)核更新速度很快,書籍和視頻不可能及時更新,所以我們再看書和視頻后,要自己動手下載內(nèi)核源碼包,去看內(nèi)核中的代碼,在這里可以充分檢驗C語言、數(shù)據(jù)結(jié)構(gòu)等基礎(chǔ)知識的掌握程度。而驅(qū)動的編寫還是要借助外設(shè)硬件電路原理圖和芯片手冊。內(nèi)核和驅(qū)動的知識是讓我們根據(jù)不同的硬件,編寫對應的驅(qū)動、合理剪裁內(nèi)核、制作文件系統(tǒng),并移植到硬件開發(fā)板上。如果手里有ARM11 6410及以上的開發(fā)板,可以試試在裸板上編寫驅(qū)動并移植Android系統(tǒng)到開發(fā)板上吧。B)經(jīng)典學習案例:1. GPIO驅(qū)動
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 云南省昭通一中教研聯(lián)盟2024-2025學年高一上學期期中質(zhì)量檢測地理試題(A卷)(含答案)
- 江蘇省連云港市海州區(qū)2024-2025學年七年級上學期期末生物學試題(含答案)
- 水處理技術(shù)開發(fā)合同
- 人工智能金融風險評估與控制手冊
- 生物學基因工程研究熱點練習題集編選
- 股份制公司運營指南
- 航空模型制造安全責任協(xié)議
- 高分子化學材料性質(zhì)題庫
- 語言學語言應用知識問答
- 高中英語閱讀技巧課:如何快速找到文章主旨與細節(jié)教案
- 2024年蘇州健雄職業(yè)技術(shù)學院高職單招語文歷年參考題庫含答案解析
- 2024年大慶醫(yī)學高等??茖W校高職單招語文歷年參考題庫含答案解析
- 四川省綿陽市2025屆高三上學期第二次診斷性考試語文試題(含答案)
- 2025年1月 浙江首考英語試卷
- 2024年07月威海市商業(yè)銀行校園招考大學生報到筆試歷年參考題庫附帶答案詳解
- 房屋修繕工程難點、重點分析及應對措施
- 《汽豐田服務流程》課件
- 財務管理(山東聯(lián)盟-青島科技大學)知到智慧樹章節(jié)測試課后答案2024年秋青島科技大學
- 2024初中語文新教材培訓:閱讀綜合實踐欄目的設(shè)計與使用解讀
- 《高壓直流輸電換流閥用金屬管狀電阻器技術(shù)規(guī)范(征求意見稿)》
- GJB9001C-2017版標準培訓課件
評論
0/150
提交評論