【課程簡介】
階段:嵌入式系統(tǒng)開發(fā)基礎(chǔ)理論
職場定位:
1. 嵌入式 Linux 軟件開發(fā)工程師(Embedded Linux Software Development Engineer);
2. C++開發(fā)工程師(C++ Development Engineer )。
3. Linux C 語言開發(fā)工程師
本期目標:嵌入式系統(tǒng)是現(xiàn)在熱門的計算機應(yīng)用領(lǐng)域之一,嵌入式 C/C++語言在其中起著至關(guān)重要的作用。一個精通 C/C++語言程序設(shè)計的程序員,可以很容易地進入 Linux、Vxworks 等嵌入式操作系統(tǒng)下的軟件開發(fā)工作。本階段學習目標是掌握 Linux 操作系統(tǒng)的使用,打好 C 語言基礎(chǔ)、進一步深入學習 C 語言編程并精通常用的數(shù)據(jù)結(jié)構(gòu),為將來從事應(yīng)用開發(fā)及底層課程的學習打下基礎(chǔ)。通過本階段的學習,學員還可以精通使用 C++語言編程,為學習Qt圖形化界面編程相關(guān)開發(fā),打下良好基礎(chǔ)。通過本期學習,還可以熟練掌握嵌入式 Linux的開發(fā)環(huán)境,為將來做底層嵌入式開發(fā)工作打基礎(chǔ)。
課程大綱:
Linux 操作系統(tǒng)使用
本課程從零起點,講述了 Linux 內(nèi)核的起源、發(fā)展歷程以及目前廣泛的應(yīng)用場合;概述了 Linux 系統(tǒng)的基本組成框架及組件功能;詳細介紹 Linux 下的文件管理、用戶管理、網(wǎng)絡(luò)管理、軟件管理等基本命令;以及包括 VI 編輯器,GCC 編譯器,GDB 調(diào)試器和 Make 項目管理工具、Shell 編程等在內(nèi)的 C 語言環(huán)境搭建知識。
完成:《文件管理器》、《用戶管理器》
嵌入式 Linux C 語言編程
C 語言是嵌入式領(lǐng)域重要也是主要的編程語言,本課程將在學員 C語言基礎(chǔ)知識之上,通過大量編程實例重點講解 C 語言的編程知識,包括函數(shù)與程序結(jié)構(gòu)、指針、數(shù)組、常用算法、庫函數(shù)的使用等知識。
完成:《字符串處理器》、《學生信息管理系統(tǒng)》
嵌入式 Linux C 語言數(shù)據(jù)結(jié)構(gòu)及經(jīng)典算法編程
數(shù)據(jù)結(jié)構(gòu)是一門非常重要的基礎(chǔ)課,在 Linux 內(nèi)核、底層驅(qū)動、通信協(xié)議及實際開發(fā)中都有大量應(yīng)用。本課程重點講解數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)內(nèi)容,包括順序表、鏈表、隊列、棧、樹、圖、哈希表、各種查找和排序算法等。每種重要的數(shù)據(jù)結(jié)構(gòu)都會介紹其理論知識及 C 語言的實現(xiàn),還會結(jié)合實例講解其在實際中的應(yīng)用。
完成:《死亡游戲》、《四則運算計算器》、《球鐘》、《電文編碼器》、《排課系統(tǒng)》
C++語言編程
本課程主要讓學員從 C 到 C++、C++新增特性、C 和 C++兼容及差異、內(nèi)存模型和名字空間、標準流、對象和類、運算符重載、模板、類繼承、多態(tài)、異常、轉(zhuǎn)換函數(shù)、智能指針及 STL、熟悉面向?qū)ο缶幊陶Z言。
嵌入式 Linux 項目開發(fā)流程
本課程主要讓學員從宏觀了解嵌入式 Linux 開發(fā)環(huán)境搭建和項目開發(fā)流程,讓學員建立起整體架構(gòu)的概念,包括嵌入式產(chǎn)品需求分析和選型、硬件平臺、移植、啟動代碼、驅(qū)動開發(fā)、系統(tǒng)部署等整個過程。
第二階段:嵌入式系統(tǒng)開發(fā)核心課程
職場定位:
1. 嵌入式 Linux 軟件開發(fā)工程師(Embedded Linux Software Development Engineer);
2. C++開發(fā)工程師(C++ Development Engineer )。
3. Qt 圖形化界面程序開發(fā)工程師(Qt GUI Development Engineer)。
4. Linux 內(nèi)核工程師(Linux Kernel Development Engineer);
5. Linux 驅(qū)動工程師(Linux Driver Development Engineer );
本期目標:參加本期培訓的學員應(yīng)該掌握嵌入式 C 語言編程技巧和 Linux 底層開發(fā)的編程技巧。嵌入式 Linux 應(yīng)用開發(fā)和 Linux 底層開發(fā)是嵌入式 Linux 中重要的一部分,也是企業(yè)人才需求廣的一部分。本期學習的主要目標是精通嵌入式 Linux 下的程序設(shè)計,熟悉嵌入式Linux 開發(fā)流程,強化學員對 Linux 應(yīng)用開發(fā)的理解和編碼調(diào)試的能力。同時掌握bootloader 和 kernel 的移植技能,了解 ARM 體系結(jié)構(gòu)和編程,具備 ARM 硬件接口的基礎(chǔ)知識,并了解 Linux 內(nèi)核開發(fā)相關(guān)內(nèi)容,在初步掌握 Linux 下的驅(qū)動程序開發(fā)方法的基礎(chǔ)上,通過典型應(yīng)用場景的分析舉例,深入掌握 Linux 驅(qū)動程序的開發(fā)技巧,讓學員能夠熟練的移植或編寫不同類型的設(shè)備驅(qū)動程序。
課程大綱:
6. 嵌入式 Linux 應(yīng)用編程
嵌入式 Linux 應(yīng)用開發(fā)是嵌入式 Linux 中重要的一部分,也是就業(yè)面廣的方向。本課程的主要目標是精通嵌入式 Linux 下的程序設(shè)計,精通嵌入式 Linux 開發(fā)環(huán)境,強化學員對 Linux 應(yīng)用開發(fā)的理解和編碼調(diào)試的能力,包括系統(tǒng)編程、標準 I/O、文件 I/O、庫的制作和使用等。
完成:《文件的復制》、《文件加密解密器》、《LS 的實現(xiàn)》
7.嵌入式 Linux 并發(fā)程序設(shè)計
并發(fā)程序設(shè)計,是應(yīng)用開發(fā)中非常重要的一部分內(nèi)容,如何實現(xiàn)程序的并發(fā)是重點,又是難點。包括:多進程編程,進程間通信機制,多線程編程,多線程間的同步和互斥機制等。本課程會結(jié)合大量的案例來講解。
完成:《多進程實現(xiàn)文件復制》、《命令行解釋器》、《生產(chǎn)者和消費者》、《司機售票員問題》
8.嵌入式 Linux 網(wǎng)絡(luò)編程
應(yīng)用開發(fā)的絕大部分項目都涉及到了網(wǎng)絡(luò)功能,有一個好的網(wǎng)絡(luò)編程功底,是從事 Linux 應(yīng)用開發(fā)的基礎(chǔ)。包括:網(wǎng)絡(luò)體系結(jié)構(gòu),TCP/IP協(xié)議,TCP 及 UDP 編程,服務(wù)器模型,超時控制,協(xié)議分析,抓包等。在講解過程中,結(jié)合了大量實例并使用 wireshark 抓包工具分析。
完成:《文件服務(wù)器》、《網(wǎng)絡(luò)聊天室》、《ping 客戶端》、《網(wǎng)絡(luò)嗅探器》
9.嵌入式數(shù)據(jù)庫開發(fā)
能熟練的操作并使用一種數(shù)據(jù)庫,是一個開發(fā)人員的基本技能。本課程重點講解在嵌入式開發(fā)中有著廣泛應(yīng)用的的 SQLITE 數(shù)據(jù)庫。包括:數(shù)據(jù)庫的設(shè)計、SQL 語句、使用 C 語言來控制數(shù)據(jù)庫等。
完成:《人力資源管理系統(tǒng)》
10.嵌入式 Linux 應(yīng)用綜合項目
對于一個開發(fā)人員,必須有一定代碼量的積累,才能從根本上提高自己的編程能力。本課程讓學員獨立完成一個應(yīng)用層的綜合項目, 該項目涉及到了應(yīng)用開發(fā)中的關(guān)鍵技術(shù),包括內(nèi)存管理、鏈表、文件 I/O、多進程、多線程、網(wǎng)絡(luò)編程和數(shù)據(jù)庫等。
完成:《在線詞典》
11.Qt 應(yīng)用編程
本課程主要讓學員掌握 Qt 應(yīng)用編程的主要方法,熟悉 Qt 中的主要組件和常用圖形界面組件,熟悉 Qt 中事件驅(qū)動和信號槽機制,熟悉 Qt的 2D 技術(shù),熟悉 Qt 的進程、線程及網(wǎng)絡(luò)編程,并完成一個基于 Qt 的文件下載工具的編寫。
完成:《基于網(wǎng)絡(luò)編程和數(shù)據(jù)庫完成項目》
12.ARM 處理器編程
ARM 是嵌入式領(lǐng)域主要的 CPU 處理器,了解 ARM 處理器的基礎(chǔ)知識將為后面課程的底層開發(fā)打好堅實基礎(chǔ),本課程內(nèi)容包括 ARM 處理器體系結(jié)構(gòu)、編程環(huán)境、指令集、尋址方式、調(diào)試、匯編和混合編程等方面的內(nèi)容,為后面移植課程的學習打好基礎(chǔ)。學完此課程學員可獲得ARM 公司全球統(tǒng)一授權(quán)培訓證書。
13.ARM 硬件接口開發(fā)
本課程包含 ARM 處理器體系結(jié)構(gòu)、編程環(huán)境、指令集、尋址方式、調(diào)試、匯編和混合編程等方面知識,重點介紹 ARM 的常用接口開發(fā)及硬件電路設(shè)計基礎(chǔ)(包括 IO、串口、看門狗、PWM 定時器、ADC、實時時鐘、SPI、I2C 等),為后續(xù)的課程打好基礎(chǔ)。結(jié)合 FS4412 開發(fā)板和自主研發(fā)的 Cortex-A9 仿真器。
完成:
1、基于 Cortex-A9 的 GPIO
2、基于 Cortex-A9 的 PWM
3、基于 Cortex-A9 的鍵盤中斷
4、基于 Cortex-A9 的串口實驗
5、基于 Cortex-A9 的 RTC 驅(qū)動
6、基于 Cortex-A9 的 ADC 驅(qū)動
7、基于 Cortex-A9 的看門狗實驗
8、基于 Cortex-A9 的 I2C、SPI 接口實驗
14.嵌入式 Linux 系統(tǒng)開發(fā)
Linux 的新版本在內(nèi)核驅(qū)動框架上有了較大的改動,引入設(shè)備樹的概念。華清遠見投入大量研發(fā)精力,移植了新的 Linux-3.14 操作系統(tǒng),編寫了全套的設(shè)備驅(qū)動教學程序。在 Linux 系統(tǒng)移植課程中,詳細講解 Uboot-2013.01 和 Linux-3.14 在 FS4412 平臺的移植過程。
完成:
1、搭建交叉開發(fā)環(huán)境
2、移植 UBOOT 支持 FS4412 開發(fā)板(exynos4412)
3、移植 Linux-3.14 內(nèi)核支持 FS4412 開發(fā)板
4、制作自己的根文件系統(tǒng)
15.嵌入式 Linux 內(nèi)核開發(fā)
本課程是驅(qū)動開發(fā)的基礎(chǔ)課程,深入內(nèi)核細節(jié),了解 Linux 相關(guān)運行機理,為后面的驅(qū)動開發(fā)打好理論基礎(chǔ),內(nèi)容包括內(nèi)核源碼結(jié)構(gòu)、內(nèi)存管理、進程管理、中斷管理、系統(tǒng)調(diào)用、內(nèi)核同步、時鐘和定時器管理、信號、調(diào)度、進程間通信、文件系統(tǒng)和 I/O 設(shè)備管理等方面的內(nèi)容。
16.嵌入式 Linux 驅(qū)動開發(fā)基礎(chǔ)
驅(qū)動開發(fā)既要熟悉相關(guān)硬件的操作又要深入理解內(nèi)核中驅(qū)動框架和相關(guān)機制。前面的 ARM 和系統(tǒng)移植課程為驅(qū)動課程打下基礎(chǔ)。驅(qū)動課程的學習需要循序漸進,從簡單的內(nèi)核模塊開始,逐步添加相關(guān)代碼,實現(xiàn)對設(shè)備的各種復雜操作。驅(qū)動中的相關(guān)機制不需要死記硬背,要理解背后的內(nèi)核設(shè)計思想。此外,驅(qū)動和應(yīng)用層各種編程接口密切相關(guān),學習時要相互關(guān)聯(lián)。
完成:
1、內(nèi)核模塊編寫、編譯和使用
2、字符設(shè)備驅(qū)動框架
3、互斥機制、阻塞和非阻塞 IO、設(shè)備輪詢、導步通知
4、中斷注冊、中斷處理函數(shù)編寫、內(nèi)核相關(guān)延時機制
5、內(nèi)核內(nèi)存分配、釋放和映射
6、設(shè)備模型、設(shè)備節(jié)點自動創(chuàng)建
7、I2C 子系統(tǒng)、SPI 子系統(tǒng)
8、塊設(shè)備、網(wǎng)絡(luò)設(shè)備驅(qū)動編寫
17.嵌入式 Linux 驅(qū)動開發(fā)
驅(qū)動開發(fā)是嵌入式 Linux 開發(fā)難度高的內(nèi)容,也是目前嵌入式行業(yè)緊缺的人才之一。有了前面課程知識的鋪墊,本課程將重點講解嵌入式 Linux 下常用接口驅(qū)動的編寫方法,內(nèi)容包括:
1、塊設(shè)備驅(qū)動:掌握塊設(shè)備驅(qū)動的原理、學會 ramdisk 的編寫;
2、網(wǎng)卡驅(qū)動:掌握 Linux 網(wǎng)卡設(shè)備驅(qū)動的移植及編寫;
3、 mtd 設(shè)備驅(qū)動:掌握 linux 下的 flash 存儲設(shè)備驅(qū)動的移植及 編寫;
4、 frambuffer 驅(qū)動:掌握 frambuffer 設(shè)備驅(qū)動的移植及編寫;
5、 eMMC/sd 設(shè)備驅(qū)動:掌握 eMMC/sd 設(shè)備驅(qū)動的移植及編寫;
6、 videvo 設(shè)備驅(qū)動:掌握 v4l2 內(nèi)核框架,熟悉 video 設(shè)備驅(qū)動 的移植及編寫;
7、 usb 設(shè)備驅(qū)動:掌握 USB 設(shè)備的移植及編寫。
18. 綜合案例的實戰(zhàn)訓練
在第二階段課程中,為了幫助學員充分有效地掌握核心知識點在企業(yè)中的具體應(yīng)用,并開始逐步按照企業(yè)需求、流程和規(guī)范進行實戰(zhàn)訓練,在嵌入式 Linux 應(yīng)用開發(fā)、系統(tǒng)內(nèi)核開發(fā)的課程講授過程中全部采用項目驅(qū)動的方式,將來自合作企業(yè)的全真案例貫穿于課程中。通過這種方式帶領(lǐng)學員分析企業(yè)崗位的真實技術(shù)需求,進行案例演練,從而快速掌握相關(guān)的技能和開發(fā)技巧。
第三階段:嵌入式系統(tǒng)開發(fā)拓展與實踐
職場定位:
1. 嵌入式 Linux 軟件開發(fā)工程師(Embedded Linux Software Development Engineer);
2. C++開發(fā)工程師(C++ Development Engineer )。
3. Qt 圖形化界面程序開發(fā)工程師(Qt GUI Development Engineer)。
4. Linux 內(nèi)核工程師(Linux Kernel Development Engineer);
5. Linux 驅(qū)動工程師(Linux Driver Development Engineer );
本期目標:參加本期培訓的學員應(yīng)該掌握嵌入式 Linux 和 Qt 應(yīng)用開發(fā)、系統(tǒng)開發(fā)和驅(qū)動開發(fā)的綜合能力。本期學習的主要目標是掌握嵌入式產(chǎn)品開發(fā)從需求分析到詳細設(shè)計整個過程的開發(fā)內(nèi)容,并通過技術(shù)專題的講解,幫助學員進一步體驗 Linux 驅(qū)動程序開發(fā)的技巧,并積累足夠的設(shè)備驅(qū)動開發(fā)經(jīng)驗。同時,本期課程還重點講解嵌入式 Linux 在移動開發(fā)領(lǐng)域的典型應(yīng)用--Android 操作系統(tǒng),全面了解 Android 系統(tǒng)的開發(fā)過程和行業(yè)前景,在專業(yè)講師的帶領(lǐng)下,實戰(zhàn)體驗 Android 應(yīng)用程序的開發(fā)及底層的系統(tǒng)移植及驅(qū)動開發(fā)。后,本期將重點花一個月時間,讓學員從零開始完整完成一個真實項目的設(shè)計,使學員在鞏固所學內(nèi)容的同時,迅速積累項目設(shè)計經(jīng)驗,達到并超過企業(yè)用人需求,另外,通過實際項目案例,可以發(fā)現(xiàn)學員知識薄弱環(huán)節(jié)進行重點加強。目前嵌入式學院提供的真實項目包括嵌入式Linux 和 Android 兩個方向,包括:智能家居系統(tǒng)、智能手表、智能小車、倉儲物聯(lián)網(wǎng)系統(tǒng)、智能農(nóng)業(yè)系統(tǒng)、智能 TV 系統(tǒng)、便攜式智能醫(yī)療系統(tǒng)、遠程視頻監(jiān)控系統(tǒng)、車載導航系統(tǒng)、安防監(jiān)控系統(tǒng)等,每期學員可完整完成其中一個項目。
課程大綱:
19.嵌入式 Linux 在移動開發(fā)領(lǐng)域的典型應(yīng)用--手機 Android 操作系統(tǒng)
介紹嵌入式 Linux 在移動開發(fā)領(lǐng)域的典型應(yīng)用 Android 系統(tǒng),了解Android 系統(tǒng)如何由嵌入式 Linux 衍生出來的,以及 Android 系統(tǒng)和嵌入式 Linux 系統(tǒng)差異化,了解 Android 系統(tǒng)的體系結(jié)構(gòu)、開發(fā)特點以及關(guān)鍵技術(shù)點,并重點學習 ARM 對 Android 系統(tǒng)的支持現(xiàn)狀,掌握 ARM平臺上的 Android 相關(guān)開發(fā)工具和解決方案,重點講解 Android 系統(tǒng)在 ARM 平臺上的移植過程,介紹 Android 系統(tǒng)底層驅(qū)動開發(fā)和嵌入式Linux 驅(qū)動開發(fā)的差異化,后介紹 ARM+Andriod 平臺組合的行業(yè)應(yīng)用前景,使學員全面了解 Android 系統(tǒng)的開發(fā)過程及發(fā)展前景。
20.Android 底層系統(tǒng)開發(fā)
通過本課程的學習,學員可以掌握從 Ubuntu 系統(tǒng)上搭建 Android 開發(fā)環(huán)境開始,到終 Android 系統(tǒng)硬件抽象層分析,從簡單到復雜,從基礎(chǔ)深入到架構(gòu),以源碼分析為主線,架構(gòu)設(shè)計理解為藍圖,上手實驗為目的,系統(tǒng)介紹 Android 系統(tǒng)移植與架構(gòu)開發(fā)要點。其中主要內(nèi)容為:下載編譯 Android 源碼、Android 系統(tǒng)啟動流程分析、定制產(chǎn)品系統(tǒng)、Android 移植技術(shù)要點分析、硬件抽象層實戰(zhàn)等。
完成:《智能醫(yī)療平板系統(tǒng)深度定制》、《基于 Android 系統(tǒng)的移動設(shè)備開機速度優(yōu)化》
21.嵌入式 Linux 項目實踐
在第二階段課程中,為了幫助學員充分有效地掌握核心知識點在企業(yè)中的具體應(yīng)用,并開始逐步按照企業(yè)需求、流程和規(guī)范進行實戰(zhàn)訓練,在嵌入式 Linux 應(yīng)用開發(fā)、系統(tǒng)內(nèi)核開發(fā)的課程講授過程中全部采用項目驅(qū)動的方式,將來自合作企業(yè)的全真案例貫穿于課程中。通過這種方式帶領(lǐng)學員分析企業(yè)崗位的真實技術(shù)需求,進行案例演練,從而快速掌握相關(guān)的技能和開發(fā)技巧。
完成:
1、基于 ARM Cortex-A9+Cortex-M0 的倉儲物聯(lián)網(wǎng)系統(tǒng)
2、基于 FSPAD_733 雙核平板的智能家居系統(tǒng)
3、FarsightTV 智能網(wǎng)絡(luò)機頂盒
4、車載導航系統(tǒng)項目
5、基于 ARM Cortex-A9 的安防監(jiān)控項目
6、VR 智能家居
7、wifi 智能小車
8、便攜式智能醫(yī)療系統(tǒng)
9、智能農(nóng)業(yè)綜合實訓系統(tǒng)
【面向?qū)W員】
大專及以上學歷
【學習模式】
面授/線上
【上課時間】
面授時間:4~5個月
【培訓教材】
【名師介紹】
張老師
· 2010年畢業(yè)于同濟大學計算機系;
· 威勝集團擔任嵌入式項目軟件開發(fā)負責人;
· 國網(wǎng)和南網(wǎng)的智能電表和智能控制終端的開發(fā);
· 多年Linux內(nèi)核驅(qū)動開發(fā)經(jīng)驗;
· 嵌入式教學經(jīng)驗豐富
【就業(yè)風云榜】
【教學環(huán)境】
100%滿意度
華清遠見
綜合
環(huán)境 : 5.0師資 : 5.0教學 : 5.0