成為嵌入式高手的技能升級路線

日期:2018-01-28

文章標(biāo)題:成為嵌入式高手的技能升級路線

文章內(nèi)容:

01? ? ??Linux平臺搭建與環(huán)境熟悉??

了解linux系統(tǒng);區(qū)分各種版本的Linux系統(tǒng),以便于拓展 Linux視野。

1、Linux 簡介;

2、Linux 系統(tǒng)的主要特點;

3、Linux 的組成;

4、主要的 Linux 版本;

5、嵌入式 Linux簡介與發(fā)展

02? ? 虛擬機(jī)安裝和LINUX系統(tǒng)安裝??

1、虛擬機(jī)安裝;

2、Linux系統(tǒng)的安裝;

3、Linux系統(tǒng)的常用軟件的安裝;

4、Linux快速入門

5、 熟悉運用 Linux環(huán)境下,常用命令的操作與系統(tǒng)設(shè)置,如常用的 Shell;掌握基本的 Shell 應(yīng)用

03? ?嵌入式LINUX環(huán)境搭建??

1、 ?建立嵌入式 Linux開發(fā)環(huán)境

2、 ?熟悉嵌入式開發(fā)平臺

3、 ?嵌入式 Linux開發(fā)工具

4、 ? Linux下的調(diào)試技巧

5、 ?MAKE工程管理器

6、 ?硬件環(huán)境的搭建;arm-linux-gcc與 gcc安裝配置

04? ?U-Boot: 了解 U-Boot 的作用及工作流程;

了解Bootloader 的代碼結(jié)構(gòu)、編譯過程;

移植U-Boot;掌握常用的U-Boot命令

1、 ?Bootloader介紹

2、 ?u-boot工程介紹

3、 ?u-boot的編譯使用

4、 ?u-boot源碼分析

5、 ?u-boot資源分配

6、 ?配置編譯u-boot

7、 ?u-boot移植過程

8、 ?u-boot常用命令操作

9、 ?添加u-boot新命令

10、設(shè)置u-boot環(huán)境變量

11、 u-boot驅(qū)動添加如網(wǎng)卡:DM9000

05? ?LINUX內(nèi)核移植:熟悉內(nèi)核的原碼結(jié)構(gòu)

和kbuild Makefile語法;

掌握和內(nèi)核、驅(qū)動模塊編譯相關(guān)的原理及方法

1、Linux內(nèi)核介紹

2、Linux內(nèi)核特點

3、Linux內(nèi)核源代碼結(jié)構(gòu)

4、Linux內(nèi)核選項解析

5、Linux內(nèi)核編譯鏈接

6、內(nèi)核模塊編譯、使用方法

06? ?LINUX根文件系統(tǒng)?

1、busybox 包移植、編譯

2、Linux跟文件系統(tǒng)制作過程

3、根文件系統(tǒng)介紹

4. nfs文件服務(wù)器系統(tǒng)搭建

07? ?Linux驅(qū)動開發(fā)

驅(qū)動開發(fā)是嵌入式Linux開發(fā)難度最高的內(nèi)容,也是目前嵌入式行業(yè)最緊缺的人才之一。本課程介紹嵌入式Linux驅(qū)動開發(fā)相關(guān)概念及開發(fā)流程,了解驅(qū)動開發(fā)的關(guān)鍵技術(shù)點,重點講解嵌入式Linux下常用接口驅(qū)動的編寫方法,包括:

1、字符型LED驅(qū)動開發(fā)(GPIO口驅(qū)動)

2、按鍵驅(qū)動開發(fā)(中斷驅(qū)動,在驅(qū)動中中斷程序的編寫,消息隊列的應(yīng)用

3、ADC驅(qū)動開發(fā)

4、網(wǎng)卡驅(qū)動開發(fā)

5、串口驅(qū)動開發(fā)

6、液晶屏(TFT彩屏驅(qū)動開發(fā)

7、觸摸屏驅(qū)動+tslib(中間插件移植與設(shè)置),

8、USB驅(qū)動開發(fā)+USB無線網(wǎng)卡移植

9、IIS驅(qū)動開發(fā)+maplay移植與應(yīng)用(mp3播放)+mplayer移植與應(yīng)用(視頻播放Mp4/廣告機(jī)等播放)

10、SD驅(qū)動開發(fā)

11、RTC驅(qū)動開發(fā)

12、電源管理方法

08? ?Linux應(yīng)用學(xué)習(xí)

嵌入式Linux應(yīng)用開發(fā)和系統(tǒng)開發(fā)是嵌入式Linux中最重要的一部分,也是企業(yè)人才需求最廣的一部分。主要目標(biāo)是精通嵌入式Linux下的程序設(shè)計,熟練掌握嵌入式Linux的開發(fā)環(huán)境、系統(tǒng)編程以及網(wǎng)絡(luò)編程,熟悉C++、QT編程并且深刻體會整個嵌入式Linux項目開發(fā)流程,強化學(xué)員對Linux應(yīng)用開發(fā)的能力。

1、Linux系統(tǒng)中的進(jìn)程的概念,在應(yīng)用程序中線程與父子進(jìn)程的創(chuàng)建與應(yīng)用

2、線程之間、進(jìn)程之間的通信

3、進(jìn)程間通信基本概念

4、管道(PIPE)

5、信號(SIGNAL)

6、內(nèi)存映射(MAPPED MEMORY)

7、消息隊列(MESSAGE QUEUE)

8、信號量(SEMAPHORE)

9、共享內(nèi)存(SHARE MEMORY)@

10、tcPip協(xié)議在應(yīng)用程序中的編程開發(fā)(SOCKET套接字編程開發(fā))

10.1. ISO/OSI七層協(xié)議模型與IP網(wǎng)絡(luò)四層模式

10.2.TCP/IP協(xié)議簇

10.3. 基于嵌入式Linux的TCP/IP網(wǎng)絡(luò)結(jié)構(gòu)

10.4. 基于嵌入式Linux的SOCKET編程

10..5.UDP與TCP的區(qū)別

10.6. UDP SERVER-CLIENT關(guān)系程

11、文件讀寫與存儲

09? ? QT移植與開發(fā)

了解嵌入式Linux下的幾種常見GUI及其特點,重點能掌握QT的有關(guān)內(nèi)容,具備QT程序設(shè)計能力。了解嵌入式數(shù)據(jù)庫的配置與開發(fā)。

1 、嵌入式Linux GUI介紹

2、嵌入式QT開發(fā)包移植

3、QT介紹及其信號插槽機(jī)制

4、 QT圖形界面編程技術(shù)

5、QT應(yīng)用程序與Linux驅(qū)動的銜接

6、 QT在實際項目中具體應(yīng)用

10? ?無線通訊應(yīng)用

1、無線wifi模塊應(yīng)用

2、3G模塊應(yīng)用

11? ?嵌入式系統(tǒng)應(yīng)用程序,驅(qū)動程序調(diào)試

1、Linux基本工具調(diào)試使用。GDB,insight調(diào)試等

2、Linux應(yīng)用程序的編程

3、嵌入式產(chǎn)品程序打包與發(fā)布

12? ?嵌入式項目綜合調(diào)試,產(chǎn)品發(fā)布

了解真實項目的開發(fā)流程,掌握如何將所學(xué)知識應(yīng)用到項目開發(fā)中。將模擬真實項目的管理過程,培養(yǎng)學(xué)員項目團(tuán)隊協(xié)同開發(fā)能力,項目文檔編寫能力和新知識的學(xué)習(xí)能力,為下一步就業(yè)做好知識上和心理上的充分準(zhǔn)備


嵌入式Linux開發(fā)第一學(xué)習(xí)階段,主要打好基礎(chǔ),學(xué)好C編程,Linux系統(tǒng)編程。

1、C語言編程基礎(chǔ)

2、嵌入式開發(fā)基礎(chǔ):Linux概述安裝,shell命令,vim編輯器,GCC,GDB,Makefile,交叉開發(fā)環(huán)境構(gòu)建

3、嵌入式Linux系統(tǒng)編程:shell編程,文件編程,串口編程,進(jìn)程編程,線程編程,網(wǎng)絡(luò)編程

4、嵌入式項目開發(fā):數(shù)據(jù)采集控制系統(tǒng),串口服務(wù)器


嵌入式LININX開發(fā)第二學(xué)習(xí)階段,掌握ARM匯編程序設(shè)計,驅(qū)動程序設(shè)計。

1、ARM體系結(jié)構(gòu):ARM體系,ARM指令,Thumb指令,匯編程序設(shè)計,邏輯程序開發(fā)

2、Linux內(nèi)核移植:bootloader,內(nèi)核配置,文件系統(tǒng)

3、驅(qū)動程序開發(fā):驅(qū)動架構(gòu)模型,字符設(shè)備驅(qū)動,塊設(shè)備驅(qū)動,網(wǎng)絡(luò)驅(qū)動

4、嵌入式項目開發(fā):智能家居系統(tǒng),視頻監(jiān)控系統(tǒng)


嵌入式LININX開發(fā)第三學(xué)習(xí)階段,掌握C++面向?qū)ο蟪绦蛟O(shè)計,Qt編程。

1、C++語言編程基礎(chǔ)

2、QT編程開發(fā):QT開發(fā)基礎(chǔ),QT布局與控件,QT繪圖,QT事件,QT網(wǎng)絡(luò)通信,QT數(shù)據(jù)庫,QT移植

3、嵌入式項目開發(fā):車載監(jiān)控管理系統(tǒng),工業(yè)能源管理系統(tǒng)


嵌入式設(shè)計應(yīng)具備的基本技能

1、Linux 基礎(chǔ)

安裝Linux操作系統(tǒng)、 Linux文件系統(tǒng)、 Linux常用命令、 Linux啟動過程詳解 。熟悉Linux服務(wù),能夠獨立安裝Linux操作系統(tǒng), 能夠熟練使用Linux系統(tǒng)的基本命令, 認(rèn)識Linux系統(tǒng)的常用服務(wù)。安裝Linux操作系統(tǒng), Linux基本命令實踐, 設(shè)置Linux環(huán)境變量 ,定制Linux的服務(wù), Shell 編程基礎(chǔ),使用vi編輯文件, 使用Emacs編輯文件 使用其他編輯器。

2、Shell 編程基礎(chǔ)

認(rèn)識后臺程序Bash,編程熟悉Linux系統(tǒng)下的編輯環(huán)境, 熟悉Linux下的各種Shell, 熟練進(jìn)行shell編程。熟悉vi基本操作, 熟悉Emacs的基本操作, 比較不同shell的區(qū)別 ,編寫一個測試服務(wù)器是否連通的shell腳本程序, 編寫一個查看進(jìn)程是否存在的shell腳本程序, 編寫一個帶有循環(huán)語句的shell腳本程序。

3、Linux 下的 C 編程基礎(chǔ)

Linux C語言環(huán)境概述, Gcc使用方法, Gdb調(diào)試技術(shù), AutoconfAutomake 、Makefile 代碼優(yōu)化 ,熟悉Linux系統(tǒng)下的開發(fā)環(huán)境 ,熟悉Gcc編譯器 ,熟悉Makefile規(guī)則編寫、Hello,World程序, 使用 make命令編譯程序, 編寫帶有一個循環(huán)的程序, 調(diào)試一個有問題的程序。

4、嵌入式系統(tǒng)開發(fā)基礎(chǔ)

嵌入式系統(tǒng)概述 ,交叉編譯, 配置TFTP服務(wù), 配置NFS服務(wù), 下載Bootloader和內(nèi)核 ,嵌入式Linux應(yīng)用軟件開發(fā)流程,熟悉嵌入式系統(tǒng)概念以及開發(fā)流程, 建立嵌入式系統(tǒng)開發(fā)環(huán)境,制作cross_gcc工具鏈, 編譯并下載U-boot, 編譯并下載Linux內(nèi)核 ,編譯并下載Linux應(yīng)用程序。

5、嵌入式系統(tǒng)移植

Linux內(nèi)核代碼, 平臺相關(guān)代碼分析, ARM平臺介紹 ,平臺移植的關(guān)鍵技術(shù) ,移植Linux內(nèi)核到 ARM平臺 ,了解移植的概念, 能夠移植Linux內(nèi)核,移植Linux2.6內(nèi)核到 ARM9開發(fā)板。

6、嵌入式 Linux 下串口通信

串行I/O的基本概念, 嵌入式Linux應(yīng)用軟件開發(fā)流程 ,Linux系統(tǒng)的文件和設(shè)備 與文件相關(guān)的系統(tǒng)調(diào)用, 配置超級終端和MiniCOM, 能夠熟悉進(jìn)行串口通信 ,熟悉文件I/O 編寫,串口通信程序 ,編寫多串口通信程序。

7、嵌入式系統(tǒng)中多進(jìn)程程序設(shè)計

?Linux系統(tǒng)進(jìn)程概述 ,嵌入式系統(tǒng)的進(jìn)程特點 ,進(jìn)程操作 ,守護(hù)進(jìn)程 ,相關(guān)的系統(tǒng)調(diào)用,了解Linux系統(tǒng)中進(jìn)程的概念, 能夠編寫多進(jìn)程程序,編寫多進(jìn)程程序, 編寫一個守護(hù)進(jìn)程程序, sleep系統(tǒng)調(diào)用任務(wù)管理、同步與通信,Linux任務(wù)概述,任務(wù)調(diào)度 ,管道 、信號 、共享內(nèi)存 ,任務(wù)管理 API ,了解Linux系統(tǒng)任務(wù)管理機(jī)制 ,熟悉進(jìn)程間通信的幾種方式, 熟悉嵌入式Linux中的任務(wù)間同步與通信,編寫一個簡單的管道程序,實現(xiàn)文件傳輸 ,編寫一個使用共享內(nèi)存的程序。

8、嵌入式系統(tǒng)中多線程程序設(shè)計

線程的基礎(chǔ)知識 ,多線程編程方法, 線程應(yīng)用中的同步問題,了解線程的概念 ,能夠編寫簡單的多線程程序,編寫一個多線程程序。

9、嵌入式 Linux 網(wǎng)絡(luò)編程

網(wǎng)絡(luò)基礎(chǔ)知識, 嵌入式Linux中TCP/IP網(wǎng)絡(luò)結(jié)構(gòu) ,socket 編程 ,常用 API函數(shù), 分析Ping命令的實現(xiàn), 基本UDP套接口編程, 許可證管理 PPP協(xié)議 ,GPRS 了解嵌入式Linux網(wǎng)絡(luò)體系結(jié)構(gòu), 能夠進(jìn)行嵌入式Linux環(huán)境下的socket 編程 ,熟悉UDP協(xié)議、PPP協(xié)議, 熟悉GPRS, 使用socket 編寫代理服務(wù)器 ,使用socket 編寫路由器,編寫許可證服務(wù)器, 指出TCP和UDP的優(yōu)缺點, 編寫一個web服務(wù)器 ,編寫一個運行在 ARM平臺的網(wǎng)絡(luò)播放器。

10、GUI 程序開發(fā)

GUI基礎(chǔ) 、嵌入式系統(tǒng)GUI類型、 編譯QT、 進(jìn)行QT開發(fā),熟悉嵌入式系統(tǒng)常用的GUI ,能夠進(jìn)行QT編程,使用QT編寫“Hello,World”程序, 調(diào)試一個加入信號/槽的實例, 通過重載QWidget 類方法處理事件。

11、Linux 字符設(shè)備驅(qū)動程序

設(shè)備驅(qū)動程序基礎(chǔ)知識, Linux系統(tǒng)的模塊, 字符設(shè)備驅(qū)動分析 ,fs_operation結(jié)構(gòu), 加載驅(qū)動程序,了解設(shè)備驅(qū)動程序的概念 。

了解Linux字符設(shè)備驅(qū)動程序結(jié)構(gòu) ,能夠編寫字符設(shè)備驅(qū)動程序,編寫Skull驅(qū)動 ,編寫鍵盤驅(qū)動,編寫I/O驅(qū)動 ,分析一個看門狗驅(qū)動程序, 對比Linux2.6內(nèi)核與2.4內(nèi)核中字符設(shè)備驅(qū)動的不同。

Linux 塊設(shè)備驅(qū)動程序塊設(shè)備,驅(qū)動程序工作原理 ,典型的塊設(shè)備,驅(qū)動程序分析, 塊設(shè)備的讀寫請求隊列,了解Linux塊設(shè)備驅(qū)動程序結(jié)構(gòu) ,能夠編寫簡單的塊設(shè)備驅(qū)動程序,比較字符設(shè)備與塊設(shè)備的異同 ,編寫MMC卡驅(qū)動程序 ,分析一個文件系統(tǒng) ,對比Linux2.6內(nèi)核與2.4內(nèi)核中塊設(shè)備驅(qū)動的不同。

12、文件系統(tǒng)

虛擬文件系統(tǒng), 文件系統(tǒng)的建立, ramfs內(nèi)存文件系統(tǒng), proc文件系統(tǒng) ,devfs 文件系統(tǒng)。 MTD技術(shù)簡介, MTD塊設(shè)備初始化, MTD塊設(shè)備的讀寫操作了解,Linux系統(tǒng)的文件系統(tǒng) ,了解嵌入式Linux的文件系統(tǒng) ,了解MTD技術(shù) 能夠編寫簡單的文件系統(tǒng),為 ARM9開發(fā)板添加 MTD支持 移植,JFFS2文件系統(tǒng) 通過proc文件系統(tǒng)修改操作系統(tǒng)參數(shù), 分析romfs 文件系統(tǒng)源代碼 ,創(chuàng)建一個cramfs 文件系統(tǒng)。


簡單地總結(jié)一下硬件開發(fā)的基本過程:

1、明確硬件總體需求情況,如CPU處理能力、存儲容量及速度、I/O端口的分配、接口要求、電平要求、特殊電路要求等等。

2、根據(jù)需求分析制定硬件總體方案,尋求關(guān)鍵器件及相關(guān)技術(shù)資料、技術(shù)途徑和技術(shù)支持,充分考慮技術(shù)可行性、可靠性和成本控制,并對開發(fā)調(diào)試工具提出明確要求。關(guān)鍵器件可試著去索取樣品。

3、總體方案確定后,做硬件和軟件的詳細(xì)設(shè)計,包括繪制硬件原理圖、軟件功能框圖、PCB設(shè)計、同時完成開發(fā)元器件清單。

4、做好PCB板后,對原理設(shè)計中的各個功能單元進(jìn)行焊接調(diào)試,必要時修改原理圖并作記錄。

5、軟硬件系統(tǒng)聯(lián)調(diào)。一般情況下,經(jīng)過調(diào)試后原理及PCB設(shè)計上有所調(diào)整,需要二次投板。

6、可靠性測試、穩(wěn)定性測試,通過驗收,項目完成! ?

硬件工程師應(yīng)具備的基本技能:

? ? (1)由需求分析至總體方案、詳細(xì)設(shè)計的規(guī)劃創(chuàng)造能力;

? ? (2)熟練運用設(shè)計工具,設(shè)計原理圖、PCB板的能力;

? ? (3)熟練運用單片機(jī)、DSP、PLD、FPGA等進(jìn)行軟硬件開發(fā)調(diào)試的能力;

? ? (4)熟練運用仿真工具、示波器、信號發(fā)生器、邏輯分析儀等調(diào)測硬件的能力;

? ? (5)掌握常用的標(biāo)準(zhǔn)電路的設(shè)計能力,如復(fù)位電路、常用濾波器電路、功放電路、高速信號傳輸線的匹配電路等;

? ? (6)故障定位、解決問題的能力;

? ? (7)設(shè)計文檔的組織編寫技能。 ?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,117評論 6 537
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,860評論 3 423
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,128評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,291評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,025評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,421評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,477評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,642評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,177評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,970評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,157評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,717評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,410評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,821評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,053評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,896評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,157評論 2 375

推薦閱讀更多精彩內(nèi)容