一、學習導語
互聯網+時代,高端 IT 人才缺口巨大!為優秀人才搭建高端學習平臺,為卓越企業打造精英員工,華清遠見結合自身優勢特推出星創客精英訓練營。由華清遠見全國各大校區教學總監和金牌講師親自授課,課程內容涵蓋嵌入式開發、Android 開發、物聯網開發三大版塊。通過5 個月的時間,全面深入的學習嵌入式系統開發,全方位打造頂級嵌入式工程師、嵌入式驅動高級工程師、嵌入式產品經理、智能硬件產品經理等高端 IT 開發人才!
二、課程目標
通過本課程的系統學習,可以使學員由淺入深地對嵌入式Linux 和Android 系統進行全面學習,能夠獨立勝任嵌入式Linux 和Android 兩個方向的開發工作。嵌入式Linux 方向包括C 語言開發、嵌入式Linux 應用開發、系統開發、驅動開發等。Android 開發包括Android 應用開發、Android 系統開發、Android 底層開發等。學習目標如下:
1. 熟練使用Linux 操作系統
2. 精通Linux 下C 語言編程
3. 精通嵌入式Linux 應用開發
4. 掌握ARM 處理器平臺及其接口硬件開發
5. 掌握嵌入式Linux 下Bootloader 的移植方法
6. 精通嵌入式Linux 內核裁減移植及內核調試
7. 精通嵌入式Linux 下常用接口的驅動開發
8. 熟悉Java 語言編程
9. 熟悉Android 應用開發
10. 掌握基于Linux 內核的Android 底層系統開發
11. 熟悉嵌入式Linux 實際項目案例開發流程
12. 熟悉基于Android 系統的實際項目案例開發流程
13. 掌握嵌入式Linux 內核高級驅動的開發和移植
14. 掌握Andorid 高級驅動的開發和移植
15. 掌握物聯網傳感器和無線通信技術的開發
16. 掌握創客創業的流程和方法
三、課程特色
1、全面覆蓋流行的嵌入式與物聯網技術
課程涵蓋ARM 微處理器、Linux 操作系統內核驅動、Linux 應用開發技術、Android 底層移植、Android 應用開發、ARM 微控制器開發、傳感器開發、ZigBee 短距離無線傳感網絡、Bluetooth BLE 藍牙通訊技術、RFID 射頻識別應用開發、智能云服務器等流行技術的開發。這些即分屬不同層次,又相互關聯,只有全面接觸,才能融會貫通。這也是目前硬 件智能化、網絡化、體系化的要求。
2、深入學習ARM、Linux 內核驅動、Android 移植驅動等重點/難點內容
ARM 處理器、Linux 內核驅動、Android 移植驅動等內容即是核心技術,也是難點部分。課程對這部分內容分為了初級階段和高級階段兩個部分,分別培養不同層次嵌入式工程師。學習高級階段課程,需要經過選拔、考試環節。
3、多個流行的智能硬件實訓項目
華清遠見研發中心多年來打造了多種實用、專業的智能硬件開發項目。項目同樣不僅僅局限于傳統的開發板上,而是更多的應用到各種智能系統中,如:智能家居、智能農業、智能穿戴、智能TV、智能醫療等。詳見研發中心教學產品介紹。
4、專業的創客創業實踐課程
目前國家大環境鼓勵大學生自主創業,對于掌握一技之長的大學生,創業雖然困難重重,但已經是一種實實在在的選擇。智能硬件技術及相關行業更是處于一個快速發展階段,即需要更多的創新,同時也蘊含很多機會。授課的同時也會安排相關的課程及實踐環節,幫助學員打開眼界。
四、詳細課程大綱
1、基礎補習課程
本階段學習目標掌握Linux 操作系統的使用,打好C 語言基礎、進一步深入學習C 語言高級編程,為將來應用開發及Linux 底層驅動課程的學習打下良好基礎。通過本階段的學習,學員還可以熟練使用Java 語言編程,為后期學習Android 相關課程,打下良好基礎。
基礎補習階段課程為贈送課程,提供在線學習視頻,學員自學,不占5 個月總課程時間。正式課程中,老師會結合應用帶學員回顧加深這部分內容。
(1)嵌入式Linux 操作系統的使用
· Linux 開發環境的搭建
· Linux 內核的起源、發展歷程以及目前廣泛的應用場合
· Linux 系統的基本組成框架及組件功能
· Linux 下的文件管理、用戶管理、網絡管理、軟件管理等基本命令
· VI 編輯器,GCC 編譯器,GDB 調試器和 Make 項目管理工具使用
· shell 腳本編程
· 完成《文件管理器》和《用戶管理器》
(2)嵌入式Linux C 高級編程
· C 語言編程基礎知識
· 重點講解 C 語言的高級編程知識,包括函數與程序結構、指針、數組、常用算法、庫函數的使用等知識
· 完成《字符串處理器》和《學生信息管理系統》
(3)數據結構及經典算法編程
· 本重點講解數據結構的基礎內容,包括順序表、鏈表、隊列、棧、樹、圖、哈希表、各種查找和排序算法等知識
· 完成:《死亡游戲》、《四則運算計算器》、《球鐘》、《電文編碼器》、《排課系統》
(4)Java 語言高級編程
· 掌握 Java 語言的基本語法和面向對象編程方法
· 理解 Java 中多線程編程,網絡編程及常用Java 類
· 完成《停車場系統模擬小項目》
2、應用層核心課程
本階段學習的主要目標是精通嵌入式Linux 下的程序設計,熟悉嵌入式Linux 開發流程,強化學員對Linux應用開發的理解和編碼調試的能力。Android系統越來越多的應用到嵌入式領域,本課程學習的另一個主要目標是掌握Android應用編程,可以完成Android平臺的應用項目的編寫。
(1)Linux 系統文件I/O
· 系統編程、標準I/O、文件I/O
· Linux動態庫和靜態庫的制作和使用
· 完成:《硬盤性能測試》和《Linux系統命令ls的實現》
(2)Linux 系統并發編程
· 進程的基礎知識、多進程的創建和使用方法
· 進程間通信的 7 種通信方法(無名管道、有名管道、信號、消息隊列、共享內存、信號燈集、socket)
· 守護進程的創建和使用方法
· 線程的基礎知識,多線程的創建和使用方法
· 線程間的同步與互斥
· 實現《守護進程自動下載木馬的實現》和《多進程并發下載》
(3)Linux 系統網絡編程
· 網絡體系結構、TCP/IP協議、wireshark抓包工具的使用
· TCP及UDP編程實現
· 服務器模型,并發服務器的實現、網絡超時控制
· 網絡協議分析,網絡抓包實現
· 完成《TCP文件服務器》、《UDP網絡聊天室》、《ping客戶端》、《網絡嗅探器》
(4)嵌入式數據庫開發
· Sqlite3數據庫基本知識、SQL語句
· 命令方式操作Sqlite3數據庫
· C語言操作Sqlite3數據庫
· 完成《學生管理系統》和《在線詞典》
(5)Android 應用開發基礎
· Android四大組件(Activity、Service、BroadcastReceiver、ContentProvide)
· Android常用UI控件和常用布局設計
· Android資源文件的使用
· Android進程與線程
· Android文件存儲
· Android傳感器編程
· Android網絡編程
· Android多媒體編程
· 完成《仿酷我音樂器》和《彈力球游戲》
3、底層核心課程
本階段課程要求學員掌握ARM體系結構基礎知識、ARM硬件接口編程方法,掌握Bootloader和Linux內核的移植方法,根文件系統的制作,掌握Linux下的字符設備、塊設備、網絡設備的驅動程序開發,能夠熟練的移植或編寫不同類型的設備驅動程序。
通過本階段課程學習,學員可以掌握從Ubuntu系統上搭建Android開發環境開始,到最終Android系統硬件抽象層分析,從簡單到復雜,從基礎深入到架構,以源碼分析為主線,架構設計理解為藍圖,上手實驗為目的,系統介紹Android系統移植與架構開發要點。
(1)ARM 處理器編程
· ARM處理器體系結構框架
· ARM處理器工作寄存器、ARM處理器流水線
· ARM處理器編程環境、調試和編程規則
· ARM處理器指令集和ARM指令尋址方式等
(2)ARM 硬件接口開發
· ARM 接口相關硬件基礎知識
· ARM處理器常用接口開發
(包括GPIO、串口、看門狗、PWM、ADC、RTC、SPI、I2C等)
· 物聯網基礎知識和物聯網常用傳感器學習
· 完成:
a. 基于Cortex‐A9 的溫度采集實驗
b. 基于Cortex‐A9的GPIO
c. 基于Cortex‐A9 的鍵盤驅動
d. 基于Cortex‐A9 的鬧鈴驅動
e. 基于Cortex‐A9的adc驅動
f. 基于Cortex‐A9 的flash讀寫實驗
(3)嵌入式Linux 系統開發
· 內核源碼結構
· 最新的Uboot‐201301移植到FS4412平臺上的過程
· 最新的內核Linux‐3.14移植到在FS4412平臺上的過程
· 根文件系統制作的過程
· 設備樹的基本語法和編寫
· 完成:
a. 搭建交叉開發環境
b. 移植uboot支持FS4412開發板(Exynos4412)
c. 移植Linux3.14支持FS4412開發板
d. 制作自己的根文件系統
(4)Linux 內核開發基礎
· 了解Linux相關運行機理,為后面的驅動開發打好理論基礎,
· 內核源碼結構、內存管理、進程管理、中斷管理、系統調用、內核同步
· 內核中斷機制、時鐘和定時器管理、文件系統和I/O設備管理等
· 內核模塊開發、內核設備模型
· 完成:
a. 內核模塊編寫、編譯和使用
b. 互斥機制、阻塞和非阻塞IO、設備輪詢、異步通知
c. 中斷注冊、中斷處理函數編寫、內核相關延時機制
d. 內核內存分配、釋放和映射
e. 設備模型、設備節點自動創建
(5)Linux 內核驅動開發
· Linux 內核驅動開發基礎、字符設備驅動框架、塊設備驅動框架、網絡設備驅動框架、platform 驅動架構、IIC 驅動架構、SPI 驅動架構
· Linux 字符設備驅動開發
· Linux 塊設備驅動開發
· Linux 網絡設備驅動開發
· 完成:
a. GPIO 接口驅動
b. 按鍵中斷接口驅動
c. PWM 接口驅動
d. ADC 接口驅動
e. I2C 接口驅動
f. SPI 接口驅動
g. 塊設備驅動(ramdisk 驅動)
h. 網絡設備驅動(DM9000)
(6)Android 移植開發
· Android 底層開發環境的搭建、下載和編譯Android 源碼
· Android 系統啟動流程分析、定制產品系統
· Android 移植技術要點分析、硬件抽象層實戰
· 完成《智能醫療平板系統深度定制》和《基于 Android 系統的移動設備開機速度優化》
4、開發拓展與實踐
嵌入式Linux & Android 項目實踐
為了幫助學員充分有效地掌握核心知識點在企業中的具體應用,并開始逐步按照企業需求、流程和規范進行實戰訓練,在嵌入式Linux 應用開發、系統內核開發的課程講授過程中全部采用項目驅動的方式,將來自合作企業的全真案例貫穿于課程中。
通過這種方式帶領學員分析企業崗位的真實技術需求,進行案例演練,從而快速掌握相關的技能和開發技巧。
通過項目實踐復習和鞏固學員前幾階段的的學習,同時培養學員的發現問題、分析問題和解決問題的能力。
完成:
(1)基于ARM Cortex‐A9+Cortex‐M0的倉儲物聯網系統
(2)基于FSPAD_723雙核平板的智能家居系統
(3) 基于FarsightTV智能網絡機頂盒
(4) 車載導航系統項目
(5) 基于ARM Cortex‐A9的安防監控項目
(6) Android開源平板電腦系統設計
(7) 實景智能家居
(8) 智能小車項目
(9) 公交一卡通物聯網充值系統
(10) 便攜式智能醫療系統
(11) 基于FS_Watch的智能手表項目
(12)智能農業綜合實訓系統
(13)四軸飛行器項目
5、底層深入課程
從本階段課程開始進入了嵌入式底層深入加強的課程內容。通過該課程讓學員掌握底層高級驅動的開發和Andorid底層高級驅動的移植。
(1)嵌入式Linux 底層深入課程
通過案例講解并完成:
· 嵌入式Linux Input驅動開發和移植
· 嵌入式Linux LCD顯示驅動開發和移植
· 嵌入式Linux音頻驅動開發和移植
· 嵌入式Linux USB驅動開發和移植
· 嵌入式Linux Camera驅動開發和移植
· 嵌入式Linux eMMC驅動開發和移植
· 嵌入式Linux MTD驅動開發和移植
(2)Android 底層深入課程
通過案例講解并完成:
· 嵌入式Android LCD驅動開發和移植
· 嵌入式 Android 觸摸屏驅動開發和移植
· 嵌入式 Android 重力傳感器驅動開發和移植
· 嵌入式 Android GPRS 驅動開發和移植
· 嵌入式 Android GPS 驅動開發和移植
· 嵌入式 Android 3G/4G 驅動開發和移植
· 嵌入式 Android 攝像頭驅動開發和移植
· 嵌入式 Android WIFI 驅動開發和移植
6、物聯網開發高級課程
(1)物聯網開發高級課程
· 物理網開發平臺介紹
· 物聯網設備開發流程
· 物聯網操作系統的介紹(ucos、contiki、tinyos)
· 物聯網常用傳感器深入學習
· 物聯網無線通信技術學習(zigbee、藍牙、RFID等)
· 相關項目:
7、創客創業方法與經驗
通過該階段課程,系統學習創客創業方法、團隊管理,實地體驗創客空間,感受創客文化。提供相關創業平臺對接。
· 創業的基礎條件
· 創業的時間選擇、創業資金的獲得途徑、創業團隊的組建、創業公司的管理
· 知識產權的保護
· 中關村創客空間資源介紹
· 智能硬件和移動互聯網創業案例分析
· 中關村創客空間實踐