嵌入式Device Driver開發實務課程

嵌入式Device Driver開發實務課程

Device Driver(裝置驅動程式) 在Linux核心中扮演和硬體裝置與上層使用者應用程式溝通的重要角色,驅動程式的撰寫與傳統應用程式的開發有著截然不同的設計思維。

linux kernel,device driver

本課程以豐富的實例演練帶領學員有效的學習Linux 驅動程式設計,並在核心內建立良好的溝通機制,進而新增硬體裝置與上層應用程式做溝通。

device driver課程優惠,ARM Cortex-A9

成為Device Driver韌體工程師的好處

未來產業發展重點

2017年市場研究機構Gartner Research的副總裁大衛·卡利發表的10大科技趨勢發展預測皆與韌體工程師息息相關。

堅持不斷更新的硬實力

獨家ARM Cortex-A9開發板

為提昇學員學習品質,有別於坊間教育單位,我們以具備高擴充性的開發板與模組實作教學,讓您學習更多元,開發不受限。

device driver課程 ARM-Cortex A9實作教學開發板
  • 環境光源感測器模組應用:

    實務上可用來實作省電功能、環境監控功能等相關應用。

  • 溫濕度模組應用:

    實務上可用來實作農業溫室監控、氣象監控、防潮偵測等相關應用。

  • 高度計模組應用:

    實務上可用來實作飛航控制、氣壓偵測等相關應用。

  • 三軸加速度模組應用:

    實務上可用來實作Wii偵測傾斜和加速動作,以及行動裝置自動翻轉螢幕等相關應用。

  • 數位陀螺儀感測模組應用:

    實務上可用來實作相機防手震、汽車安全防護偵測、遊戲機3D搖桿、遙控直升機等相關應用。

  • 電子羅盤模組應用:

    電子羅盤也叫數字指南針,實務上可用來實作水平孔和垂直孔測量、水下勘探、飛行器導航、建築物定位、GPS備份、汽車指南針等相關應用。

結訓後具備的開發能力

  • 以Cortex-A9 四核心開發板實例解說 GPIO (LED, Push Button), Watchdog、RTC、Serial port 等等切入Driver撰寫的各個層面包含資源配置、中斷處理、同步、記憶體管理等等 。

  • 撰寫完整的Driver架構與良好的框架

  • 實作將自已寫的程式整合到 Linux kernel,並移植到Cortex-A9 四核心開發板

選擇中華數位的好處

業界肯定的實力

20年教育訓練經驗 + 業界產品開發講師不定期編譯符合業界需求的課程內容,用專業的角度和實戰經驗帶你快速與產業界接軌。

知名企業的共同選擇

客製化的內外訓教學服務,依專案需求調整課程內容。

 20年教育訓練經驗 + 業界產品開發講師不定期編譯符合業界需求的課程內容,用專業的角度和實戰經驗帶你快速與產業界接軌。

結訓就業沒煩惱

實作專題立即與產業接軌就業沒煩惱

課程大綱

  • Introduction to Linux Device Driver
    (Linux 輸出入裝置與驅動程式簡介)
    1. 何謂裝置驅動程式
    2. Linux 驅動程式分類
    3. Linux核心介紹
    4. Linux驅動程式架構
    5. Linux驅動程式開發流程
    6. 裝置硬體規格與驅動程式介面介紹
  • Linux Kernel Module Building and Running
    (Linux核心模組建置與執行)
    1. Linux 核心模組介紹
    2. 模組工具程式
    3. Kernel space V.S User space 程式
    4. System calls
    5. Linux 核心模組架構
    6. Linux 核心模組開發流程
    7. Linux核心模組相依性
    8. Linux 核心模組參數
  • Char Driver (字元驅動程式)
    1. 何謂字元裝置驅動程式
    2. 字元驅動程式開發流程
    3. 註冊字元驅動程式
    4. 溝通字元驅動程式
    5. 資源競爭問題探討
  • Debugging Linux Kernel and Device Driver
    (Linux核心與驅動程式除錯)
    1. 核心除錯方式介紹
    2. 系統事件紀錄簿介紹
    3. 除錯技巧
    4. 驅動程式除錯流程
    5. 實作Proc檔案格式進行除錯
    6. 除錯工具介紹使用
  • Kernel concurrency and Race conditions (核心一致性與競爭問題)
    1. 行程一致性問題介紹
    2. 競爭問題介紹
    3. Semaphore號誌介紹
    4. Completion介紹
    5. Spinlock 自旋鎖介紹
    6. Lock ordering 規則
  • Advanced Char Driver
    (進階字元驅動程式)
    1. ioctl 架構實作
    2. 阻塞式與非阻塞式操作
    3. 休眠介紹
    4. Polling 介紹
    5. Select 介紹
    6. 進階驅動程式開發流程與架構
  • Time, Delay and Deferred work
    (時間,延遲與遲緩操作探討)
    1. Linux 核心時間計時介紹
    2. RTC介紹
    3. 延遲執行架構與實作
    4. 核心時間相關API函式實作
    5. Tasklets介紹
    6. 工作佇列
  • Allocation Memory
    (記憶體配置)
    1. Linux核心記憶體管理機制
    2. 配置核心記憶體方式介紹
    3. kmalloc函式
    4. Memory pool函式
    5. 前瞻快取介紹
    6. vmalloc 函式
    7. ioremap函式
  • Communicating with Hardware
    (硬體裝置溝通)
    1. I/O Port介袑
    2. Memory mapped I/O 介紹
    3. Memory mapped I/O開發流程
    4. 存取Memory mapped I/O
    5. 平台相依性
  • Interrupt Handler
    (中斷控制)
    1. 中斷介紹
    2. 中斷程式開發流程
    3. 進階中斷函式處理
    4. 共享中斷
  • Data Types in the Linux Kernel
    (核心資料型別)
    1. 標準C語言資料型別
    2. Timer Interval
    3. Page size
    4. 資料對齊
  • Device Driver實作範例演練
    1. 撰寫編譯Linux 模組
    2. 撰寫記憶體區塊當作字元裝置驅動程式
    3. Linux Kernel與Driver除錯範例
    4. 使用Proc檔案架構除錯範例
    5. 競爭問題實作範例
    6. ioctl實作範例
    7. 驅動程式休眠範例
    8. 阻塞型驅動範例
    9. 允許多個終端機存取裝置範例
    10. Kernel Timer驅動範例
    11. 配置核心記憶體驅動範例
    12. Tiny4412開發板LED驅動範例
    13. Tiny4412開發板 Button中斷驅動範例
    14. Tiny4412開發板 ADC 類比轉數位驅動範例
    15. Tiny4412開發板數位溫度晶片驅動範例
    16. Tiny4412開發板SPI晶片驅動範例
    17. 新增驅動程式至核心

開課時間

107年11月26日至107年12月14日

(一三五夜間班 PM7:10至PM10:00)

107年12月9日至108年1月6日

(週日全天班 AM9:30至PM5:30)

專業課程諮詢服務

說明會時間:
約50分鐘,歡迎攜伴參加

姓名

電話

E-Mail