嵌入式Device Driver開發實務課程

嵌入式Device Driver開發實務課程

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

linux kernel,device driver linux kernel,device driver

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

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

未來產業發展重點

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

堅持不斷更新的硬實力

獨家ARM Cortex-A72六核開發板

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

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

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

  • 溫濕度模組應用:

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

  • 高度計模組應用:

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

  • 三軸加速度模組應用:

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

  • 電子羅盤模組應用:

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

結訓後具備的開發能力

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

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

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

選擇中華數位的好處

業界肯定的實力

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

知名企業的共同選擇

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

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

結訓就業沒煩惱

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

課程大綱

CH1 - Overview
  • Overview
    1. 認識 Linux Device Driver
  • RK3399-SOC
    1. 介紹 實驗開發板 SOC RK3399
  • Building Linux Modules
    1. 瞭解基本的 Linux module
    2. 瞭解 Kernel Function Export 功能
  • Install_Linux_Modules
    1. 瞭解如何安裝 Linux module
    2. 瞭解 Linux module Makefile 與 Linux Kconfig, .config 關係
CH2 - Linux Driver Basic
  • Character Drivers
    1. 認識 基本 Character Driver
    2. 學習 Character Driver Read/Write Function
    3. 學習 基本 SYS_FS Function
    4. 學習 基本 PROC_FS Function
  • Linux Driver Debugg
    1. 瞭解 Debug Message 的使用
    2. 應用 Compiler Options 於 偵錯模式
    3. 瞭解 ARM CPU Exception
  • Platform Devices Driver
    1. 認識 Platform Device
    2. 認識 Platform Driver
    3. Platform Driver 與 DeviceTree
  • Device Tree
    1. 瞭解 DeviceTree
    2. DeviceTree 在 Linux Device Driver 的應用
CH3 - Linux Driver Advance
  • Allocating Memory
    1. 認識與應用 kmalloc
    2. 認識與應用 get_free_page
    3. 認識與應用 vmalloc
  • Communicating With Hardware
    1. 瞭解 Io Mapping 與 Memory Map
    2. 使用 IOREMAP 與 控制硬體
    3. 使用 IOREMAP 與 DTS
  • Interrpt Handling
    1. 認識 Linux Interrupt
    2. Linux driver ISR 的註冊
    3. Linux driver ISR 與 DTS
  • Character Driver for IOCTL
    1. 瞭解 Character Driver 的 IOCTL 功能
    2. 瞭解 IOCTL 編碼方法
CH4 - OS Relation
  • TimeDelays Deferred Work
    1. 認識 Linux 時間單位
    2. 介紹 Linux 基本延遲方法
    3. 介紹 Linux 進階延遲方法
  • Concurrency And RaceConditions.odp
    1. 認識 Semaphore 與 應用
    2. 認識 SpinkLock 與 應用
  • BLOCK IO
    1. 認識阻塞式 I/O
    2. 應用 Wait Queu
    3. 應用 Wait Event
CH5 - Subsysten
  • GPIO Subsystem
    1. 認識 GPIO 子系統
    2. 應用 GPIO 子系統 與 DTS
  • I2C Subsystem
    1. I2C Bus 子系統
    2. 應用 I2C Bus 子系統 與 DTS
  • Input Subsystem
    1. 輸入設備 子系統
    2. 輸入設備 子系統的應用 與 DTS

開課時間

110年12月4日至110年12月25日

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

111年2月12日至111年3月5日

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