嵌入式Linux / Android物聯網系統移植課程

嵌入式Device Driver開發實務上課時數:28小時

( Linux Driver Design )

Device Driver(裝置驅動程式) 在Linux核心中扮演和硬體裝置與上層使用者應用程式溝通的重要角色,驅動程式的撰寫與傳統應用程式的開發有著截然不同的設計思維,本課程以豐富的實例演練帶領學員有效的學習Linux 驅動程式設計觀念,並在核心內建立良好的溝通機制,進而新增硬體裝置與上層應用程式做溝通。

課程特色

  1. 採用 ARM Cortex-A72六核心開發板 熟悉Linux驅動程式開發架構觀念
  2. 熟悉硬體裝置設備與驅動程式溝通流程架構
  3. 了解驅動程式編譯執行流程 •豐富的課堂實作演練
  4. 實例新增硬體裝置並撰寫驅動程式

學員結訓具備技能

  1. 以Cortex-A72 六核心開發板實例解說 GPIO (LED, Push Button), Watchdog、RTC、Serial port等等切入 Driver撰寫的各個層面包含資源配置、中斷處理、同步、記憶體管理等等
  2. 導正學員 Linux Device Driver Development 的觀念,並撰寫完整的Driver架構與良好的框架。的觀念,並撰寫完整的Driver架構與良好的框架。
  3. 撰寫完整的 驅動程式架構與良好的框架及實際撰寫程式 也了解user-space與kernel-space 之間的關係。
  4. 實作將自已寫的程式整合到,並移植到Cortex-A72六核心開發板 Linux kernel 並移植到Cortex-A72六核心開發板。

課程說明

課程優勢

  1. 業界專業講師,訓用合一為目標 專業具實務經驗的師資群、業界技術需求為導向的課程規劃,著重培養科技界即戰力人才。
  2. CP值最高的嵌入式系統設計課程實作範例演練,紮實你的開發實力 課程以專題實作學習為導向,獨家採用ARM Cortex-A72六核七吋電容觸控開發板及自行技術研發,多元化的周邊模組搭配實作演練,訓後與業界實際開發不脫節
  3. 由淺入深連貫性教學,完整的學程規劃 Linux系統管理→C語言→Linux程式設計→Embedded Linux實作→嵌入式Device Driver開發實務→Android BSP Porting→專題練習,循序漸進連貫性上課,完全能掌握每階段的學習方向。
  4. IT產業資深助教,課堂上協助教學 官方line@提供及技術討論區及講師專屬mail提供課程課後問題詢問
  5. 提供完整的教學錄影檔,方便學員課前預習及請假補課及課後複習 中華行動數位提供上課的教學錄影檔預、複習、補課,學習成效不中斷。學習效益更佳更靈活。
  6. 業界師資群編譯最新的實作教材 業界資深師資群合作編譯最完整的課程教材,規劃更貼近業界需求課程內容,不斷更新修編。
    1. Ch1 - Overview

    2. 課程內容
      • Overview
        1. 認識 Linux Device Driver
          0
      • Building Linux Modules
        1. 瞭解基本的 Linux module
        2. 瞭解 Kernel Function Export 功能
          0
        課程重點
      • RK3399-SOC
        1. 瞭解Linux module Makefile與Linux Kconfig,config 關係
      • Install_Linux_Modules
        1. 瞭解如何安裝 Linux module
        2. 瞭解 Linux module Makefile 與Linux Kconfig, .config 關係

      Ch2 - Linux Driver Basic

    1. 課程內容
      • Character Drivers
        1. 認識 基本 Character Driver
        2. 學習 基本 SYS_FS Function
        3. 學習 Character Driver Read/Write Function
        4. 學習 基本 PROC_FS Function
      • Platform Devices Driver
        1. 認識 Platform Device
        2. 認識 Platform Driver
        3. Platform Driver 與 DeviceTree
        課程重點
      • Linux Driver Debug
        1. 瞭解 Debug Message 的使用
        2. 瞭解 ARM CPU Exception
        3. 應用 Compiler Options 於偵錯模式
          0
        4. 0
      • Device Tree
        1. 瞭解 DeviceTree
        2. DeviceTree 在 Linux Device Driver 的應用
        3. 0

      Ch3 - Linux Driver Advance

    1. 課程內容
      • Allocating Memory
        1. 認識與應用 kmalloc
        2. 認識與應用 vmalloc
        3. 認識與應用 get_free_page
      • Interrpt Handling
        1. 認識 Linux Interrupt
        2. Linux driver ISR 與 DTS
        3. Linux driver ISR 的註冊
        課程重點
      • Communicating With Hardware
        1. 瞭解 Io Mapping 與 Memory Map
        2. 使用 IOREMAP 與 DTS
        3. 使用 IOREMAP 與 控制硬體
      • Character Driver for IOCTL
        1. 瞭解 Character Driver 的 IOCTL 功能
        2. 瞭解 IOCTL 編碼方法
        3. 0

      Ch4 - OS Relation

    1. 課程內容
      • Character Driver for IOCTL
        1. 認識 Linux 時間單位
        2. 介紹 Linux 基本延遲方法
        3. 介紹 Linux 進階延遲方法
      • Concurrency And RaceConditions.odp
        1. 認識 Semaphore 與 應用
        2. 認識 SpinkLock 與 應用
        課程重點
      • BLOCK IO
        1. 認識阻塞式 I/O
        2. 應用 Wait Event
        3. 應用 Wait Queu

      Ch5 - Subsysten

    1. 課程內容
      • GPIO Subsystem
        1. 認識 GPIO 子系統
        2. 應用 GPIO 子系統 與 DTS
      • Input Subsystem
        1. 輸入設備 子系統
        2. 輸入設備 子系統的應用 與 DTS
        課程重點
      • I2C Subsystem
        1. I2C Bus 子系統
        2. 應用 I2C Bus 子系統 與 DTS
  1. 1. 具備GUN Software能力者佳 •嵌入式系統相關開發人員。
  2. 2. 已具備Embedded Linux能力者佳 •以修過嵌入式系統相關課程人員
  3. 3. 有基礎C語言能力、Linux 程式語言觀念尤佳。
  4. 4. 已在相關領域,欲再增強本身專業技能者。
      • 嵌入式設計師
      • 韌體工程師
      • 資訊家電設計師
      • Linux平台驅動程式等

Device Driver實作應用範例

    1. 實作內容
      • 撰寫編譯Linux 模組
      • 撰寫記憶體區塊當作字元裝置驅動程式
      • Linux Kernel與Driver除錯範例
      • 使用Proc檔案架構除錯範例
      • 競爭問題實作範例
      • ioctl實作範例
      • 驅動程式休眠範例
      • 阻塞型驅動範例
      • 允許多個終端機存取裝置範例
        實作內容
      • 允許多次開啟之驅動程式範例
      • Kernel Timer驅動範例
      • 配置核心記憶體驅動範例
      • RK3399開發板LED驅動範例
      • RK3399開發板 Button中斷驅動範例
      • RK3399開發板 ADC 類比轉數位驅動範例
      • RK3399開發板數位溫度晶片驅動範例
      • RK3399開發板SPI晶片驅動範例
      • 新增驅動程式至核心
我對課程有興趣,請與我聯繫
說明會時間約30分鐘,歡迎攜伴參加。
說明會地點:台北市中正區開封街一段2號9樓
姓      名
連絡電話
電子信箱
新舊學員
舊學員 新學員
選擇課程
選擇場次
驗證碼
資訊來源
紅匡選取得驗證碼 ↑↑↑
最新開課&報名方式
  1. 開課時間
    • 110年12月4日至110年12月25日
      (週六全天班 AM9:30至PM5:30)
    • 111年2月12日至111年3月5日
      (週六全天班 AM9:30至PM5:30)
  2. 相關課程
  3. 報名方式
  4. 上課地點
    • 台北市開封街一段2號9樓
      (台北火車站,館前路口麥當勞隔壁 中心大樓)
學員專題實作
學員獨享
  1. 嵌入式IT資深助教協助課程服務 IT資深助教協助課程服務 官方line@提供課後問題服務。
  2. 嵌入式企業徵才 提供學員工作職缺資訊 依產業需求隨時更新求職資訊
  3. 嵌入式講師撰寫教材 講師親自撰寫上課教材 定期更新課程講義,掌握最新技術動脈
  4. 嵌入式數位教學環境 環型教室、數位設備 師生互動式廣播教學系統
  5. 中華行動數位嵌入式教室 學員結訓專題作品發表 接軌產業脈動,訓用合一教學
  6. 嵌入式上課免費喝咖啡 免費供應飲料、茶&相關書籍 定期訂閱熱門書籍、雜誌,供學員免費借閱。研磨咖啡、現泡熱茶
學員心得分享
  1. 結訓學員-許○民

    中華行動數位 讓我成功就業

    嵌入式學員當初學習嵌入式的動機是希望可以自己做玩具,找更好的工作,因緣際會參加了中華數位工業局補助的嵌入式Android雲端物聯網人才養成課程。上完課後終於知道... 更多

課程剪影
  1. 嵌入式系統上課剪影01
  2. 嵌入式系統上課剪影02
  3. 嵌入式系統上課剪影03
嵌入式應用
  1. 所謂的嵌入式系統簡而言之是一種『執行部份特定功能』的系統 實作上並不限定技術範疇, 只要能將特定的功能(function)『嵌入』 到目標裝置(target device)裡,包含這些功 能的整體系統(或平臺) 即是『嵌入式系統』。 Embedded Linux其實並不是一個作業系統,而是代表應用Linux系統於embedded system 的名詞。Embedded Linux是Linux for devices 的意思。 Embedded Linux的技術核心主軸是在研究 「如何將Linux系統嵌入至嵌入式目標裝置裡」

    嵌入式的應用範圍

    2010年伴隨著各種技術與應用端產品的出現,近年來嵌入式系統設計應用範圍持續擴張,根據調查指出未來全球將有更多的嵌入式裝置出現於市面,如此龐大的潛在商機,使得許多高科技業者對於嵌入式市場的重視度有增無減,嵌入式產品應用的領域範圍,包括智慧型手機、STB、VoIP產品行動上網裝置(MID)、電子書、數位電子看板、工業控制、網路安全、數位相框、資訊家電、GPS導航裝置、遊樂器等領域與產品都是未來產業發展重點。

content-end