嵌入式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. 業界師資群編譯最新的實作教材 業界資深師資群合作編譯最完整的課程教材,規劃更貼近業界需求課程內容,不斷更新修編。

課程大綱

    Ch1 - Overview

  1. 課程內容
    • 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. 課程皆採實體上課與遠端線上同步 開課時間
    • 113年11月16日至113年12月14日
      (週六全天班 AM9:30至PM5:30)
    • 114年2月9日至114年3月2日
      (週日全天班 AM9:30至PM5:30)
  2. 相關課程
  3. 報名方式
  4. 上課地點
    • 台北市開封街一段2號9樓
      (台北火車站,館前路口麥當勞隔壁 中心大樓)
學員專題實作
學員獨享
  1. 嵌入式IT資深助教協助課程服務 IT資深助教協助課程服務 官方line@提供課後問題服務。
  2. 嵌入式企業徵才 提供學員工作職缺資訊 依產業需求隨時更新求職資訊 More
  3. 嵌入式講師撰寫教材 講師親自撰寫上課教材 定期更新課程講義,掌握最新技術動脈
  4. 嵌入式數位教學環境 環型教室、數位設備 師生互動式廣播教學系統
  5. 中華行動數位嵌入式教室 學員結訓專題作品發表 接軌產業脈動,訓用合一教學
  6. 嵌入式上課免費喝咖啡 免費供應飲料、茶&相關書籍 定期訂閱熱門書籍、雜誌,供學員免費借閱。研磨咖啡、現泡熱茶
學員心得分享
  1. 結訓學員-李○宏 紮實的課程內容讓我從零開始到獨立完成專題

    嵌入式學員原從事傳統產業設計方面的工作,正多方面學習感興趣的專長,為求提升自己的競爭力。經三個月的培訓,無論是C語言、Python、OpenCV、Linux、Embedded嵌入式系統…等等,都從零基礎到熟悉操作,甚至是能做到相互搭配及應用,而最大的收穫即是獨自完成專題。 更多

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

    嵌入式的應用範圍

    面對氣候變遷帶來的全球挑戰,物聯網價值將因綠化效益而被推向歷史新高。各國政府更迫切需面對重大自然災害,此將促使智慧城市、農業、交通等領域的環境監測漸成剛需,以對經濟衝擊防範未然。於此趨勢下,2023年物聯網料將以聚焦防災、公共環境之政策性需求為市場成長關鍵動能,且為使數據能有效蒐集處理,具備嵌入式系統並可結合AI、即時反應、邊緣運作的智慧感測設備與技術將成顯學;推動感測工具為來年物聯網發展最為積極的領域,成為市場競爭力的主要分水嶺與佈局核心。此將進一步帶動物聯網各層別的技術精進,諸如網路層因應廣域佈署的通訊穩定與品質強化,以及平台層面對海量資訊的精準分析與預測能力。

content-end