課程安排 |
第一階段 嵌入式 linux 開發(fā)基礎(chǔ)
職場定位:Linux Development Engineer for Software Engineering
本期目標(biāo):嵌入式系統(tǒng)是現(xiàn)在熱門的計算機應(yīng)用領(lǐng)域之一,嵌入式C語言在其中起著至關(guān)重要的作用。一個精通C語言程序設(shè)計的程序員,可以很容易地進入Linux、WinCE、Vxworks等嵌入式操作系統(tǒng)下的軟件開發(fā)工作。本階段學(xué)習(xí)目標(biāo)是掌握C語言基本知識、C編程語法基礎(chǔ)和Linux操作系統(tǒng)的使用,并熟練掌握嵌入式Linux的開發(fā)環(huán)境,為將來的編程工作打基礎(chǔ)。 |
|
時間 |
課程名稱 |
課程內(nèi)容 |
第 1 天
|
Linux操作系統(tǒng)使用
|
1.1嵌入式 linux 系統(tǒng)概述;1.2 Linux 下的文件管理、 用戶管理、 網(wǎng)絡(luò)管理、 軟件管理等基本命令;1.3 Vi 編輯器的使用;1.4 Gcc 程序編譯
|
第 2 天
|
Linux操作系統(tǒng)使用 |
2.1 gdb 程序調(diào)試;2.2 軟件包工具的使用;2.3 Makefile;2.4 shell 編程 |
第 3 天
|
嵌入式Linux C語言編程 |
C 語言重/難點精講(涉及 函數(shù),數(shù)組,二維數(shù)組,指針,指針函數(shù),函數(shù)指針,指針數(shù)組,數(shù)組指針,結(jié)構(gòu)體,算法等) |
第 4 天
|
嵌入式Linux C語言編程 |
本課程通過大量的編程實例重點講解 c 語言高級編程知識。 |
第 5 天
|
C語言數(shù)據(jù)結(jié)構(gòu)及經(jīng)典算法編程 |
5.1 順序表;5.2 單向鏈表;5.3 雙向鏈表 |
第 6 天
|
C語言數(shù)據(jù)結(jié)構(gòu)及經(jīng)典算法編程 |
6.1 隊列; 6.2 棧 |
第 7 天
|
C語言數(shù)據(jù)結(jié)構(gòu)及經(jīng)典算法編程 |
7.1 樹,圖哈希表;7.2 各種查找和排序算法 |
第二階段 嵌入式系統(tǒng)開發(fā)
職場定位:Linux Development Engineer for Embedded System
本期目標(biāo):參加本期培訓(xùn)的學(xué)員應(yīng)該掌握嵌入式C語言高級編程技巧。嵌入式Linux應(yīng)用開發(fā)和系統(tǒng)開發(fā)是嵌入式Linux中重要的一部分,也是企業(yè)人才需求廣的一部分。本期學(xué)習(xí)的主要目標(biāo)是精通嵌入式Linux下的程序設(shè)計,熟悉嵌入式Linux開發(fā)流程,強化學(xué)員對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ā)技巧,讓學(xué)員能夠熟練的移植或編寫不同類型的設(shè)備驅(qū)動程序。 |
|
時間 |
課程名稱 |
課程內(nèi)容 |
第 8 天
|
嵌入式linux應(yīng)用開發(fā)
|
8.1 靜態(tài)庫的制作和使用;8.2 動態(tài)庫的制作和使用;8.3 標(biāo)準(zhǔn) I/O 文件類型的介紹;8.4 標(biāo)準(zhǔn) I/O 和文件 I/O 介紹;8.5 標(biāo)準(zhǔn) I/O 函數(shù)
|
第 9 天
|
嵌入式linux應(yīng)用開發(fā) |
9.1 unix 基礎(chǔ)知識;9.2 文件 I/O 介紹;9.3 文件 I/O 函數(shù);9.4 取得文件的屬性信息;9.5 目錄讀取函數(shù) |
第 10 天
|
嵌入式linux應(yīng)用開發(fā) |
10.1 進程基礎(chǔ);10.2 進程相關(guān)命令;10.3 進程相關(guān)系統(tǒng)調(diào)用;10.4 守護進程 |
第 11 天
|
嵌入式linux應(yīng)用開發(fā) |
11.1 線程基礎(chǔ);11.2 線程同步機制;11.3 線程互斥機制;11.4 進程間通信方式 |
第 12 天
|
嵌入式linux應(yīng)用開發(fā) |
12.1 無名管道;12.2 有名管道;12.3 信號的基礎(chǔ);12.4 信號的命令介紹;12.5 信號相關(guān)函數(shù)使用 |
第 13 天
|
嵌入式linux應(yīng)用開發(fā) |
13.1 IPC-共享內(nèi)存;13.2 IPC-消息隊列;13.3 IPC-信號燈集 |
第 14 天
|
嵌入式linux應(yīng)用開發(fā) |
14.1 TCP/IP 協(xié)議概述;14.2 OSI 參考模型;14.3 TCP 和 UDP;14.4 網(wǎng)絡(luò)編程 |
第 15 天
|
嵌入式linux應(yīng)用開發(fā) |
15.1 socket 概述;15.2 socket 類型;15.3 地址結(jié)構(gòu)相關(guān)處理;15.4 數(shù)據(jù)存儲優(yōu)先順序;15.5 地址格式轉(zhuǎn)化 |
第 16 天
|
嵌入式linux應(yīng)用開發(fā) |
16.1 socket 基礎(chǔ)編程;16.2 網(wǎng)絡(luò)高級編程;16.3 廣播和組播;16.4 I/O 模型;16.5 數(shù)據(jù)庫開發(fā) |
第 17 天
|
項目實戰(zhàn) |
網(wǎng)絡(luò)實戰(zhàn)項目-在線詞典…… |
第 18 天
第 19 天
第 20 天
第 21 天
第 22 天
|
ARM 五天課程
|
本單元內(nèi)容包括 ARM 處理器體系結(jié)構(gòu)、編程環(huán)境、指令集、尋址方式、調(diào)試、匯編和混合編程、 ARM 的常用接口開發(fā)及硬件電路設(shè)計基礎(chǔ)(包括 IO、串口、看門狗、實時時鐘、 SPI、 IIC 等)。 |
第 23 天
|
嵌入式linux系統(tǒng)開發(fā) |
23.1 嵌入式系統(tǒng)介紹;123.2 嵌入式 linux 系統(tǒng)構(gòu)成;23.3 Gcc 介紹;23.4 Gnu 工具鏈介紹;23.5 Crosstool 介紹;23.6 嵌入式 linux 開發(fā)環(huán)境搭建;1.7 Bootloader 的工作原理 |
第 24 天
|
嵌入式linux系統(tǒng)開發(fā) |
24.1 u-boot 簡介;24.2 u-boot 命令介紹;124.3 u-boot 目錄結(jié)構(gòu);24.4 u-boot 的編譯;24.5 u-boot 命令的添加 |
第 25 天
|
嵌入式linux內(nèi)核及驅(qū)動開發(fā) |
25.1 Linux 內(nèi)核簡介;25.2 Linux 內(nèi)核源碼層次分析;25.3 嵌入式 linux 移植介紹;25.4 Linux 內(nèi)核介紹;25.5 Linux 內(nèi)核特點;25.6 Linux 內(nèi)核源代碼結(jié)構(gòu);25.7 Linux 內(nèi)核選項解析;25.8 Linux 內(nèi)核編譯鏈接;25.9 內(nèi)核模塊編譯、使用方法 |
第 26 天
|
嵌入式linux內(nèi)核及驅(qū)動開發(fā) |
26.1. Linux 內(nèi)核調(diào)試概述;26.2. Linux 內(nèi)核的打印函數(shù);26.3. Linux 內(nèi)核啟動過程錯誤分析;26.4. 解析 oops 信息;26.5. 常用調(diào)試方法和工具;26.6. 集成部署 Linux 文件系統(tǒng);26.7. Linux 根文件系統(tǒng)制作;26.8. 文件系統(tǒng)和存儲設(shè)備的選擇;26.9. 通過 ramdisk 掛載根文件系統(tǒng) |
第 27 天
|
嵌入式linux內(nèi)核及驅(qū)動開發(fā) |
27.1 linux 內(nèi)核模塊開發(fā);27.2 模塊外部傳參;27.3 模塊符號導(dǎo)出;27.4 Linux 設(shè)備驅(qū)動分類;27.5 Linux 字符設(shè)備驅(qū)動結(jié)構(gòu);27.6 字符設(shè)備驅(qū)動程序;27.7 Linux 字符設(shè)備驅(qū)動實例;27.8 Linux 并發(fā)控制;27.9 Linux 內(nèi)核 原子操作實現(xiàn);27.10 Linux 內(nèi)核自旋鎖 讀寫鎖 順序鎖實現(xiàn) |
第 28 天
|
嵌入式linux內(nèi)核及驅(qū)動開發(fā) |
28.1Linux 并發(fā)控制信號量;28.2 設(shè)備 I/O 模型;28.3 阻塞和非阻塞;28.4 等待隊列;28.5 多路復(fù)用;28.6 異步通知;28.7 次設(shè)備號識別;28.8 自動創(chuàng)建設(shè)備節(jié)點 |
第 29 天
|
嵌入式linux內(nèi)核及驅(qū)動開發(fā) |
29.1 內(nèi)核中時間流;29.2 定時器;29.3 Kobject;29.4 總線設(shè)備驅(qū)動模型;29.5 Platform 總線 |
第 30 天
|
嵌入式linux內(nèi)核及驅(qū)動開發(fā) |
30.1 中斷概述;30.2 中斷處理程序?qū)崿F(xiàn);30.3 Led 驅(qū)動程序?qū)崿F(xiàn);30.4 Beep 驅(qū)動程序?qū)崿F(xiàn) |
第 31 天
|
嵌入式linux內(nèi)核及驅(qū)動開發(fā) |
31.1 設(shè)備樹介紹;31.2 按鍵中斷程序?qū)崿F(xiàn);31.3 Adc 電壓采集驅(qū)動實現(xiàn) |
第 32 天
|
嵌入式linux內(nèi)核及驅(qū)動開發(fā) |
32.1 spi 和 i2c 驅(qū)動程序?qū)崿F(xiàn);32.2 lcd 驅(qū)動程序?qū)崿F(xiàn);32.3 高級驅(qū)動介紹 |
第 33--40 天
|
項目實戰(zhàn) |
倉儲物聯(lián)網(wǎng)系統(tǒng)項目:1)基于 cortex A9 的主控中心,是系統(tǒng)的核心。將整個系統(tǒng)分為多個功能的單個線程,線程間通過互斥鎖、條件變量、信號量、共享內(nèi)存和消息隊列等同步、互斥通信機制,實現(xiàn)數(shù)據(jù)的處理,以及對各種服務(wù),請求的響應(yīng)。
2)基于 M0(LPC11C14)數(shù)據(jù)采集端, 通過 M0 端的溫濕華 清 遠 見 — 中 國 嵌 入 式 教 育 第 一 品 牌度、光敏、煙霧、三軸加速度等傳感器完成數(shù)據(jù)的采集,以及響應(yīng)警報命令, RFID 完成貨物的進庫、出庫。
3) 基于 Zigbee 完成 M0 與 A9的數(shù)據(jù)傳輸,前端完成遠程顯示、控制終端硬件。網(wǎng)頁前端主要實時顯示進出庫的貨物信息,環(huán)境參數(shù)信息以及進出貨物和環(huán)境參數(shù)的歷史記錄。同時可以在網(wǎng)頁前端發(fā)送命令控制相關(guān)的操作。
|