16 9 月 2014

Linux 驅動程式 設計課程 – 業界最資深 Embedded Linux 講師完整訓練

嵌入式系統

嵌入式系統 Driver 課程簡介

Linux 驅動程式


1 0 4 人力銀行目前職缺請參考→104目前Embedded Linux相關職缺查詢 請在關鍵字搜尋 ” Embedded Linux ”

嵌入式系統 driver Linux 驅動程式 課程特色

本課程是為了想學習如何使用C語言,透過 Linux 系統,去控制各種硬體周邊的學員而設計的。除了會講解各種硬體的基本運作原理外,還會教您如何撰寫Linux驅動程式,讓您能夠直接控制各種周邊。除此之外,也會對 Linux 內如何撰寫中斷多工記憶體控制等內容詳加介紹。如果您已經會 C語言,本課程能讓您感受完全掌控整個嵌入式系統的成就感。


icon_arrow_orange 課程目標

  • 了解嵌入式各種周邊硬體的運作原理。
  • 運用 C 語言技術編修、調整驅動程式。
  • 能撰寫 Linux 驅動程式,並控制各種周邊。
  • 了解 Linux 中如何撰寫中斷、多工、或存取記憶體相關程式。

 Linux 驅動程式 icon_arrow_orange 課程對象

已經有 C 語言程式基礎,想學習如何撰寫程式操控整個嵌入式系統硬體的學員。


icon_arrow_orange 課程內容

第一章 驅動程式概論

  • 何謂驅動程式
  • 是否一定要有作業系統
  • 撰寫驅動程式應考慮的事項
  • 編寫驅動程式的技術基礎

第二章 驅動程式開發簡介

  • 撰寫驅動程式的方法
  • 「模組( Driver Module )」介紹
  • Linux 驅動程式的分類
  • User Space 驅動程式

第三章 開發環境設定

  • 作業系統
  • 文字編輯器
  • 編譯器
  • 核心原始碼
  • 開發板執行環境
  • 驗證環境安裝是否正確

第四章 您的第一個驅動程式

  • Hello! World! 模組
  • 將驅動程式編譯為模組
  • 由模組外傳入參數

第五章 核心基礎資料結構

  • 一般資料型別
  • 核心資料型別
  • 檔案系統相關資料結構:inode, dentry, file
  • 核心內常用資料結構:list_head, klist, kobject, kset, subsystem

第六章 裝置驅動程式模型

  • 裝置驅動程式模型簡介
  • udev 裝置檔案系統簡介
  • sysfs
  • udev 相關結構體:device, device_driver, bus_type, class

第七章 字元驅動程式

  • 字元驅動程式簡介
  • cdev 結構體介紹
  • 裝置編號介紹
  • file_operations 結構體介紹
  • 範例:globalmem

第八章 並行控制

  • 並行控制簡介:並行控制與競爭條件
  • 並行控制基本機制
    – 中斷抑制( Interrupt Disable )
    – 單體操作( Atomic Operations )
  • 自旋鎖系列
    – Spin Lock
    – Read-Write Spin Lock
    – Seqlock
    – Read-Copy-Update ( RCU )
  • 信號體系列
    – Semaphore
    – Completion
    – Read-Write Semaphore
    – Mutex

第九章 阻塞與非阻塞式 I/O

  • 簡介
  • 阻塞式 I/O:等候佇列(Waiting Queue)
    – 資料結構介紹:wait_queue_head_t, wait_queue_t
    – 定義與初始化
    – 增減等候佇列內的項目
    – 休眠與喚醒佇列內的項目
    – 範例
  • 非阻塞式 I/O:輪詢(Polling)
    – 基本原理
    – 相關函式:select(), poll(), epoll()
    – 範例

第十章 阻塞與非阻塞式 I/O

  • 信號通知( Signaling )
  • 如何使驅動程式支援非同步 I/O
  • 範例

第十一章 中斷

  • 中斷簡介
  • Linux 中斷機制:頂部/底部中斷
  • Linux 中斷實作
  • 中斷共享
  • 實例

第十二章 記憶體存取

  • Linux 記憶體管理原理與各種位址空間
    – Physical Address
    – Bus Address
    – Kernel Logical Address
    – Kernel Virtual Address
    – User Virtual Address
  • 核心記憶體申請:kmalloc() / kfree() vs. vmalloc() / vfree()
  • 虛擬與實體記憶體映射
  • 核心記憶體回收機制
    – Lookaside Cache
    – Memory Pool

第十三章 LED 驅動程式

  • LED 驅動的硬體原理
  • LED 驅動程式實例解說
    – 製作驅動程式骨架
    – 註冊驅動程式
    – 相關函式撰寫:open(), release(), ioctl()
    – 測試與驗證

第十四章 按鍵驅動程式

  • 按鍵驅動程式的硬體原理
  • 專案環境設定
  • 實例解說
    – 驅動程式的註冊
    – 相關函式的撰寫:open(), release(), iotrl(), read(), write()
    – 中斷改寫與攔截
    – 測試與驗證

第十五章 背光調整與脈寬調變

  • 背光調整硬體原理
  • 類比與數位轉換:脈寬調變(PWM, Pulse Width Modulation)
  • 實例解說
    – 電路圖相關腳位說明
    – 設定脈寬調變用的「計時器(Timer)」
    – 程式碼撰寫

第十六章 USB 驅動程式

  • USB 特性簡介
  • USB 邏輯單元:Device, Config, Interface, Endpoint
  • USB 命令封包:URB (Usb Request Block)
  • 實例解說

第十七章 LCD 驅動程式

  • LCD 硬體原理
  • 影格緩衝區(Frame Buffer)
  • LCD 三大驅動程式
    – 主驅動程式(Main Character Device Driver)
    – 影格緩衝區驅動程式(Frame Buffer Device Driver)
    – 背光驅動程式(Backlight Device Driver)
  • 實例解說

icon_arrow_orange 課程時數

Embedded Linux Linux 驅動程式設計課程:54 小時
課程內容 時有更新,奇科電腦 保留課程內容變動之權利,最新詳情請洽02-27116373