——作者:範,UEA0908班,上官嵌入式研究室
妳為什麽選擇學習嵌入式?
嵌入式系統無疑是目前最熱門、最有前景的IT應用領域之壹,也是當今IT領域所剩不多的黃金崗位之壹。目前,中國的IT人才正面臨著接班人的嚴重短缺。
而且這種差距是培訓教育模式缺失造成的,最大的差距是高級IT人才。如果從事的是不專業的IT培訓,在競爭越來越激烈的職場中幾乎找不到。
工作。據專家預測,嵌入式系統每年的人才缺口在30萬左右。
即將推出的職業發展解釋視頻
視頻主要講解了什麽樣的人適合做嵌入式行業,嵌入式行業的從業人員需要具備哪些基本素質,嵌入式行業的特點以及嵌入式行業的現狀和發展。
嵌入式R&D職業解說視頻(1)
嵌入式R&D方向職業解說視頻(2)
嵌入式R&D方向職業解說視頻(3)
嵌入式R&D方向職業解說視頻(4)
嵌入式R&D方向職業解說視頻(5)
ARM+Linux嵌入式底層內核驅動方向學習總體路線圖
基礎學習ⅰ——Linux介紹
目前,主要的嵌入式開發環境有
Linux,Wince等。;Linux因其開源、開發和操作方便而被廣泛使用。而Linux操作系統只是壹個簡單的操作系統,簡單的給嵌入式開發者使用。
價值不是很高。真正有價值的是掌握Linux的基礎服務和Linux的設計理念和思路,這對嵌入式開發者的長遠發展非常重要。Linux操作系統
系統有很多發行版,比如RedHat,Ubuntu,Fedora等等。作為嵌入式開發人員,我們不需要關註使用哪個Linux發行版,而是要盡快。
盡快安裝Linux系統。如果妳打算長期堅持學習,那麽建議妳把自己的電腦做成雙系統,而不是安裝在虛擬機上。
安裝
基礎學習ⅱ-C語言
c語言是嵌入式開發必不可少的基礎知識。在Linux下從事C語言的開發,妳會覺得更加流暢自然,因為C語言是因為unix的出現而誕生的,而在Linux內部。
內核幾乎全部用C語言編寫。學習C語言,如果妳不會使用指針,那麽妳就不會說C語言。做嵌入式開發指針尤為重要,所以除了掌握位操作,嵌入式開發很重要。
作品、限定詞等。,掌握指針是必不可少的。還要掌握多級指針,函數指針等等。說到指針,那麽我們就來說說內存分配。在大學裏,壹般學習C語言的學習很少講。
到內存分配,但是如果妳想從事嵌入式開發,那麽妳必須了解C語言是如何做內存分配管理的。除了指針,妳還應該學習模塊化編譯處理,指針和數組,gcc,
Makefile,GDB,遞歸,結構,宏定義等。C語言是整個嵌入式建築的基礎,所以學習嵌入式的時候壹定要重視C語言,多打代碼,多練習。壹個
壹個好的程序員必須通過“體力勞動”轉向“腦力勞動”,這就是為什麽我們要有“不會寫代碼=0”的想法。
如果說C語言相當於單詞,那麽數據結構就相當於造句和寫文章。代碼的質量部分取決於對數據結構的掌握。在數據結構部分,我們應該做鏈表、樹和排序
專註學習。而且我們也可以看到壹些常見的函數(比如strcopy,strcat,printf等。)在內核中實現,並編寫代碼模擬堆棧,其中
不僅有利於提高編寫代碼的質量,還可以初步了解Linux內核的精髓,為以後的工作打下堅實的基礎。
在嵌入式開發領域,使用C++和QT開發圖形界面。如果想從事上層的應用開發和圖形界面,需要多學習C++和QT。
b)推薦經典學習視頻:
1-1c語言編輯器vi的使用
1-2c語言的編譯過程及編譯器gcc
2-1c語言的數據類型
2-2數據快速參考
2-3c語言運算符和表達式
3-1c語言的分支結構
3-2c語言的循環結構
4-1c語言功能的定義和傳遞
4-2c語言函數調用
5-1-1c語言中的壹維數組
5-1-2 2D陣列和多維陣列
5-1-3c語言字符數組
5-2-1c語言結構結構
5-2-2C語言聯盟
6-1c語言中指針的概念
6-2c語言中的指針和壹維數組
6-3指針和2D數組和字符
6-4指針和結構,聯合體
6-5c語言中的指針和函數
指針常量和6-6c語言中的常量
7c語言存儲空間管理
8-1c語言存儲模型分析
8-2雙向循環鏈表的創建和增加
雙向循環鏈表的8-3數據管
c)經典學習案例:
1、學生成績管理系統2、計算器3、電子詞典4、文件壓縮器
基本高級- Linux應用程序設計
Linux的想法源於Unix。Linux繼承了UNIX的優點,但不使用Unix代碼,所有程序都是重寫的,Linux在源代碼層面兼容Unix。Linux是壹個類似Unix的操作系統。Linux操作系統
不僅符合POSIX標準,還包括了其他UNIX標準的許多特性,例如,UNIX系統V接口文檔(System V interface
Document,SVID)和Berkeley軟件分發(BSD)版本。Linux采取了壹種折中的策略,包括
UNIX的幾個典型特性中壹些最實用的功能:
Linux采用SVR4的IPC機制:* *共享內存、消息隊列和信號。
Linux支持BSD Socket網絡編程接口。
許多Linux發行版使用SysV init。
機制,支持運行級別。
這個階段的學習是嵌入式上層應用開發和底層開發人員的必修課。進程、線程、信號、文件鎖、套接字是這壹部分的重點。徹底學習這些內容需要下壹番苦功。而且功能是系統提供給我們的,必然要對計算機系統有深入的了解。還涉及到TCP/IP協議。如果您有任何問題,請使用Google搜索並登錄chinaunix論壇。通過這壹階段的學習,可以初步實現壹些應用的開發,比如制作自己的shell命令解析器,簡單的聊天軟件,視頻組播等等。
a)經典書籍推薦:
b)推薦經典學習視頻:
Linux網絡開發-1,ARP攻擊原理
Linux網絡開發-2、ARP攻擊案例分析
Linux網絡開發-3、ARP攻擊程序代碼分析及套接字構建
c)經典學習案例:
1,串行偵聽器
2.圖片瀏覽器3,MP3播放器4,聊天程序5,ftp程序。
6、音頻廣播節目7、ping的實現
8.DDos攻擊程序9。ARP攻擊程序
嵌入式系統介紹- ARM架構
從這部分開始,我們才會真正進入嵌入式開發的學習階段。首先,我們需要知道使用哪種處理器。目前通用的嵌入式處理器有ARM、MIPS、PowerPC、X86等。在市場份額上,ARM處理器遙遙領先於其他同類處理器,逐步掠奪傳統51單片機和Intel的市場份額。據招聘網站統計,目前用人單位在技術層面要求開發者掌握ARM9及以上平臺的開發技術。ARM11產品發布後,ARM公司改變了以往更新數字標簽的方式,轉而發布ARM。
皮層.但Cortex並不是更高端的,而是新系列的處理器,比如Cortex。
M3主要用於機械加工和工業控制領域,旨在取代之前的ARM7處理器。
在妳開始學習之前,建議有自己的開發板。目前,ARM9
2440的開發板價格在400-600元之間,ARM11。
6410的開發板價格較高,最便宜的也要1200多元。在這裏,我想提醒大家,盡量不要買迷妳開發板。雖然迷妳開發板的價格更便宜,但是相比正常開發板,迷妳開發板的功能並不完善。嵌入式匯編不同於X86匯編,所以如果妳之前沒有接觸過匯編語言,在嵌入式匯編之前沒有必要學習X86匯編,可以直接學習嵌入式匯編。除了匯編,我們還要學習ARM指令集。有了開發板,我們需要下載相應處理器的數據表和開發板的電路原理圖。我們學習ARM架構不能完全照搬別人的代碼,因為我們自己手裏的開發板和處理器跟別人不壹樣,除非用的代碼是根據妳手裏的開發板寫的。所以要先看書,看視頻資料,了解原理和工作模式,然後根據自己開發板的電路原理圖和數據表寫代碼,了解外圍設備的工作原理,操作硬件。
b)推薦經典學習視頻:
1)嵌入式識字文章
嵌入式漫遊1
嵌入式漫遊2
嵌入式漫遊3
關於嵌入式的十個問題1-什麽是嵌入式,創業
十問嵌入式2-嵌入式實例iphone
十個嵌入式問題3-嵌入式潛在客戶
十問嵌入式4-嵌入式學習
五臂嵌入式十個問題概述
十個嵌入式6臂問題概述
開發板
嵌入式7臂單片機十問
十問嵌入式8-匯編語言的功能
嵌入式9操作系統的選擇
十問嵌入式10-編程語言選擇
2)嵌入式開發概述
嵌入式開發入門經典課程-1
嵌入式開發介紹經典課程-2
嵌入式開發入門經典課程-3
嵌入式開發入門經典課程-4
嵌入式開發入門經典課程-5
嵌入式開發入門經典課程-6
嵌入式開發入門經典課程-7
嵌入式開發入門經典課程-8
嵌入式開發入門經典課程-9
嵌入式開發入門經典課程-10
嵌入式開發入門經典課程-11
嵌入式開發入門經典課程-12
嵌入式開發入門經典課程-13
3)ARM架構和Bootloader開發。
1,ARM基本概念介紹及開發板使用教程
2、編譯器高級應用及裸機代碼編寫教程
3.ARM指令和ARM組件介紹
4.ARM組裝高級課程和APCS規範詳解。
5.ARM架構和異常處理機制的詳細說明。
6.ARM中斷機制詳解及看門狗驅動開發實例。
7-1,ARM外部中斷機制及led驅動開發實例詳解
7-2.ARM嵌入式系統開發的ARM外部中斷機制詳解及實例。
8.AMBA總線結構和ARM時鐘配置
9.時序圖和NAND的詳細說明
閃存驅動程序開發示例
10-1.內存控制器和SDRAM原理詳解(壹)
10-2.存儲器控制器和SDRAM原理詳解(下)
11,UART串口細節和通信開發實例
12與ARM協處理器CP15的配置原理
13,從零開始寫Bootloader的開發過程詳解
c)經典學習案例:
1.ARM模擬器開發2。看門狗控制程序3。
RTC時鐘控制程序
Uart控制程序5。液晶控制程序6。
觸摸屏控制程序
7.DMA控制程序8。音頻控制程序9。網卡控制程序
10.
文件系統制作11。ARM-Linux移植
嵌入式升級- Linux內核和驅動程序
眾所周知,嵌入式開發至少包括兩個層面,壹個是嵌入式內核驅動層面,壹個是嵌入式應用層開發,而工資高、最有價值的開發者無疑是嵌入式內核驅動層面。真正的嵌入式專家或者企業中的核心開發人員,必須是嵌入式底層內核驅動的開發工程師。這些工程師成長緩慢,導致內核驅動人才需求量很大,所以這些人才才是真正企業需要的燙手山芋。掌握驅動開發會讓妳的核心能力有壹個大的飛躍,真正實現嵌入式系統最有價值的就業。
由於Linux內核更新快,書籍和視頻無法及時更新,所以看完書籍和視頻後,要自己下載內核源代碼包,看看內核中的代碼,在這裏可以充分檢驗對C語言、數據結構等基礎知識的掌握程度。驅動還是借助外圍硬件電路原理圖和芯片說明書編寫的。內核和驅動的知識讓我們可以根據不同的硬件,編寫相應的驅動,合理的裁剪內核,制作文件系統,移植到硬件開發板。如果妳手裏有ARM11。
6410及以上的開發板,可以嘗試在裸板上寫驅動,把Android系統移植到開發板上。
b)經典學習案例:
1.GPIO驅動器2。RTC時鐘驅動器3。
看門狗驅動程序4。Udev移植5。觸摸屏輸入設備驅動程序
6.LCD顯示設備驅動程序7。DMA驅動程序8。
音頻設備驅動程序9。Nand閃存塊設備驅動程序10。網絡設備驅動程序