2017年8月8日 星期二

[新手教學] Linux Driver 數位課程學習須知


前言: 

本課程之 Driver 開發範例皆直接於 Raspberry Pi 平台上進行,並將 Raspberry Pi 視為一套完整的 Linux 主機開發環境。教學內容涵蓋 Linux Driver 的核心設計觀念、各項驅動程式技術主題的系統性講解,並搭配實際開發成果與操作示範(Demo)影片,協助學員由理論延伸至實務,完整掌握驅動程式的開發流程與系統整合方法。

課程實作範例基於 Linux Kernel 4.14 LTS(Long Term Support)版本進行設計。此版本具備架構成熟、API 穩定且子系統複雜度適中的特性,特別適合用於拆解與理解 Linux Driver 的核心設計原理。學員能清楚掌握中斷機制、裝置模型、資源管理、平台驅動、Device Tree 與各子系統之間的架構關係,而非僅停留於高度自動化 API 的操作層面。

Linux Driver 的核心架構自 4.x 至 6.x 版本之間並未產生本質性的改變,主要差異在於 API 設計與實作形式的演進。本課程著重於培養學員對 Linux 裝置模型、子系統整合與資源生命週期管理的系統性能力,確保所學知識可無縫遷移至 5.x、6.x 及未來核心版本,並實際應用於產業級開發與產品導入場景。~ 2025/12/3


先備知識: 

  1. 具Linux 系統操作能力 (cd, cp , tar , sudo, ifconfig 這些指令的使用是常識 )
  2. 熟悉C程式設計
  3. 會使用gcc, make 的等GNU開發工具
  4. 有Linux 系統程式設計的經驗
Raspberry Pi 3 環境建置:


請先登入學習平台,在[課程公告]處, 點選下載 image , 此為艾鍗 Linux Driver 上課用 image (已有將上課範例及核心原始碼都放進去了)

請先解開 rar 壓縮檔, 然後再用WinDisk工具寫入至 16G MicroSD 卡中

開機後, pi 登入, 密碼: raspberry 

登入後,可先進入 01_LED , 執行動入如下

make  ==> 產生chr_led.ko的檔案

insmod chr_led.ko  ==> 載入driver

gcc test.c -o test  ==> 產生應用程式執行檔  test

sudo ./test ==> 執行應用程式, 可以看到LED 閃爍





 Driver code only for Pi 3
  1.  目前講師所整理的code 僅以Raspberry Pi 3 搭配艾鍗 Raspberry Pi 3 Shield 版本為主, Pi 2 程式已無更新


Driver 程式目錄結構
P.S. 如果想要了解Kernel 如何編譯, 因為和Linux Driver 沒有直接關係, 所以請自行參閱https://www.raspberrypi.org/documentation/linux/kernel/building.md
或參考 嵌入式Linux系統實務 課程



[參考]

沒有留言 :

張貼留言