課程內容
2、Linux基礎:Linux操作系統(tǒng)的概念、安裝方法,都可以詳細了解下Linux下的目錄結構、基本命令、編輯器VI、編譯器GCC,調試器GDB和Make項目管理工具。
3、Linux系統(tǒng)編程:主要是重點學習標準I/O庫,Linux多任務編程中的多進程和多線程,以及進程間通信,同步與互斥對共享資源訪問控制等重點知識,主要提升對Linux應用開發(fā)的理解和代碼調試的能力。
4、Linux網(wǎng)絡編程:計算機網(wǎng)絡在嵌入式Linux系統(tǒng)應用開發(fā)過程中使用非常廣泛,通過Linux網(wǎng)絡發(fā)展、TCP/IP協(xié)議、socket編程、TCP網(wǎng)絡編程、UDP網(wǎng)絡編程、Web編程開發(fā)等方面入手,全面了解Linux網(wǎng)絡應用程序開發(fā)。
5、數(shù)據(jù)結構域算法:數(shù)據(jù)結構及算法在嵌入式底層驅動、通信協(xié)議、及各種引擎開發(fā)中會得到大量應用,對其掌握的好壞直接影響程序的效率、簡潔及健壯性。
6、Cortex-A9系列,基于exynos芯片的linux驅動開發(fā)。通過uboot制作,內核裁剪、移植,文件系統(tǒng)制作、掛載搭建arm-linux運行環(huán)境!學習設備驅動的編寫與使用,外部中斷、定時器中斷、同步機制、異步機制等內核機制,掌握linux驅動的編寫方法。學習平臺設備總線、輸入子系統(tǒng)、i2c子系統(tǒng)等內核總線,掌握linux內核中驅動管理方法。此外,還有LCD屏、觸摸屏、WIFI、攝像頭等實戰(zhàn)模塊。
7、驅動開發(fā):驅動程序設計是嵌入式Linux開發(fā)中重要的一部分,也是比較困難的一部分。本階段的學習要熟悉Linux的內核機制、驅動程序與用戶級應用程序的接口,掌握系統(tǒng)對設備的并發(fā)操作。
8、C++、QT:C++是Linux應用開發(fā)的主要語言之一,在這一階段重要的是掌握面向對象編程的基本思想以及C++的重要內容。
課程目標
2、掌握Linux操作系統(tǒng)使用,括命令,Shell,系統(tǒng)配置
3、掌握進行Linux下應用編程及系統(tǒng)調用
4、精通ARM CORTEX-A9體系結構以及開發(fā)
5、精通Bootloader移植、開發(fā)
6、精通Linux系統(tǒng)移植,內核裁減,調試
7、精通Linux常用接口驅動開發(fā)及驅動移植
8、精通用開發(fā)及系統(tǒng)移植
適合人群
2、基礎良好的在讀研究生或者即將畢業(yè)的應屆畢業(yè)生
3、熟悉Linux應用和框架開發(fā),希望從上到下走通Linux系統(tǒng)的工程師
4、希望做驅動,做系統(tǒng)移植的工程師
5、有手機硬件維修基礎,希望走向軟件開發(fā)的特殊愛好者
6、在應用職工程師想提升個人技術水平者
課程內容
課程大綱
階段:Linux基礎 | |
1、C程序結構、編譯原理、基本數(shù)據(jù)類型、輸入、輸出函數(shù) |
2、linux程序設計,編譯器 |
3、Makefile 學習 | 4、Shell編程 |
|
|
第二階段: C程序設計 | |
1、C程序結構、編譯原理、基本數(shù)據(jù)類型 |
2、運算符、表達式、流程控制、關鍵字 |
3、函數(shù)、數(shù)組,排序算法 | 4、精講指針 |
5、預處理 |
6、結構體、共用體、枚舉型 |
7、線性結構(鏈表) | 8、堆棧應用和舉例、棧與遞歸的實現(xiàn) |
9、階段項目實戰(zhàn) |
|
|
|
第三階段: Linux 高級系統(tǒng)編程 | |
1、創(chuàng)建和使用庫 |
2、文件和目錄的維護、掃描目錄 |
3、基于文件描述符的文件操作(非緩沖) | 4、多進程 |
5、多進程,進程間通信 |
6、多線程編程 |
7、Socket網(wǎng)絡編程 | 8、階段項目實戰(zhàn) |
9、IO多路復用 |
|
|
|
第四階段:Cortex-M4/7 驅動開發(fā) | |
1、Cortex-M4 介紹,開發(fā)環(huán)境搭建,GPIO模塊實戰(zhàn) |
2、STM32F407 UART模塊實戰(zhàn) |
3、STM32F407 中斷模塊實戰(zhàn) | 4、STM32F10X DMA模塊 |
5、基本&通用定時器定時功能軟件設計 |
6、ADC模數(shù)轉換模塊 |
7、STM32F407 RTC和系統(tǒng)定時器模塊實戰(zhàn) | 8、STM32F407 IIC模塊實戰(zhàn) |
9、STM32F407 SPI模塊實戰(zhàn) |
10、TFTLCD模塊實戰(zhàn) |
11、觸摸屏模塊實訓 | 12、GUI |
13、UCOS-II |
14、環(huán)境檢測項目實戰(zhàn) |
15、Cortex-M4高級進階模塊實訓 (CanBus總線、DAC數(shù)模轉換、高級定時器、看門狗定時器、FSMC文件系統(tǒng)等) | |
16、熱門項目模塊實戰(zhàn)(Zigbee、IP程序遠程升級、TCP/IP和USB模塊、心跳傳感器、433M模塊、通信協(xié)議、藍牙wifi、溫濕度檢測、語音等) | |
17、產(chǎn)品項目實戰(zhàn)(智能機械手臂、可穿戴設備、四軸無人機、人體健康檢測、駕校語音模擬等) | |
|
|
第五階段:嵌入式Linux驅動開發(fā)階段 (A9/A72雙平臺教學,采用最新的RK-3399) | |
1、u-boot介紹,u-boot常用命令學習 |
2、Linux內核移植編譯,裁剪 |
3、內核頂層Makefile 交叉編譯器修改 | 4、根文件系統(tǒng)制作,掛接 |
5、驅動理論,字符設備驅動 |
6、設備驅動:Linux驅動中斷編程 |
7、平臺總線驅動模型 | 8、LCD驅動程序移植 ,LCD應用程序編程 |
9、Linux輸入子系統(tǒng),觸摸屏驅動 |
10、Linux I2C子系統(tǒng) |
11、Exynos4412產(chǎn)品發(fā)布 | 12、Linux驅動項目實戰(zhàn) |
|
|
第六階段:嵌入式 Android驅動開發(fā)階段 | |
1、Android設備驅動概述 |
2、Android設備驅動概述 |
3、JNI開發(fā) |
4、NDK開發(fā) |
5、SystemServer |
6、ServiceManager |
7、Android Binder通訊機制 |
8、Android電源管理 |
9、Android調試方法 |
10、Android設備驅動開發(fā)實例:LED |
11、Android設備驅動開發(fā)實例:按鍵 |
12、Android設備驅動開發(fā)實例:蜂鳴器 |
11、Android設備驅動開發(fā)實例:串口 |
12、Android設備驅動項目實戰(zhàn) |
|
|
第七階段:C++、QT開發(fā) | |
1、C++新特性,類和對象基本知識 |
2、類和對象基本思想,構造函數(shù),析構函數(shù) |
3、類中特殊數(shù)據(jù)成員和函數(shù)成員的初始化等類的其它基本知識 | 4、類域,友元,運算符重載 |
5、深入運算符重載 |
6、派生與繼承 |
7、多態(tài) | 8、模版思想 |
9、名稱空間,string類,智能指針,typeid操作符 |
10、Qt入門知識 |
11、Qt信號與槽函數(shù)機制 | 12、基于Qt的圖片瀏覽器的制作 |
13、基于Qt的MP3音樂播放器的制作 | 14、基于Qt的網(wǎng)絡視頻播放器的制作 |
|
|
第八階段:Linux綜合項目實戰(zhàn) | |
1、基于嵌入式linux的智能家居管理系統(tǒng) | 2、智能醫(yī)療管理系統(tǒng) |
2、智能醫(yī)療管理系統(tǒng) | 3、智能物聯(lián)網(wǎng)管理系統(tǒng) |
4、多媒體視頻廣告機 | 5、遠程視頻監(jiān)控項目 |
6、USB鍵盤生產(chǎn)測試儀器 | 7、人臉識別系統(tǒng) |
8、行車記錄儀 | 9、刷卡消費系統(tǒng) |