課程特色: 採用 ARM Cortex-A72六核心開發板 ‧熟悉Linux驅動程式開發架構觀念 熟悉硬體裝置設備與驅動程式溝通流程架構 了解驅動程式編譯執行流程 ‧豐富的課堂實作演練 實例新增硬體裝置並撰寫驅動程式適合對象: 具備GUN Software能力者佳 ‧嵌入式系統相關開發人員。 已具備Embedded Linux能力者佳 ‧以修過嵌入式系統相關課程人員 有基礎C語言能力、Linux 程式語言觀念尤佳。 已在相關領域,欲再增強本身專業技能者。職涯發展:嵌入式設計師 │韌體工程師 │資訊家電設計師 │網路應用程式設計 │Linux平台驅動程式等 以Cortex-A72 六核心開發板實例解說 GPIO (LED, Push Button), Watchdog、RTC、Serial port等等切入Driver撰寫的各個層面包含資源配置、中斷處理、同步、記憶體管理等等 導正學員Linux Device Driver Development 的觀念,並撰寫完整的Driver架構與良好的框架。 可以自己撰寫完整的驅動程式架構與良好的框架及實際撰寫程式也了解user-space與kernel-space 之間的關係。 讓學員實作將自已寫的程式整合到 Linux kernel,並移植到Cortex-A27六核心開發板。 Introduction to Linux Device Driver (Linux 輸出入裝置與驅動程式簡介)‧何謂裝置驅動程式‧Linux 驅動程式分類‧Linux核心介紹‧Linux驅動程式架構‧Linux驅動程式開發流程‧裝置硬體規格與驅動程式介面介紹Linux Kernel Module Building and Running (Linux核心模組建置與執行)‧Linux 核心模組介紹‧模組工具程式‧Kernel space V.S User space 程式‧System calls‧Linux 核心模組架構‧Linux 核心模組開發流程‧Linux核心模組相依性‧Linux 核心模組參數Char Driver (字元驅動程式)‧何謂字元裝置驅動程式‧字元驅動程式開發流程‧註冊字元驅動程式‧溝通字元驅動程式‧資源競爭問題探討Debugging Linux Kernel and Device Driver (Linux核心與驅動程式除錯)‧核心除錯方式介紹‧系統事件紀錄簿介紹‧除錯技巧‧驅動程式除錯流程‧實作Proc檔案格式進行除錯‧除錯工具介紹使用Kernel concurrency and Race conditions (核心一致性與競爭問題)‧行程一致性問題介紹‧競爭問題介紹‧Semaphore號誌介紹‧Completion介紹‧Spinlock 自旋鎖介紹‧Lock ordering 規則Advanced Char Driver (進階字元驅動程式)‧ioctl介紹‧ioctl 架構實作‧阻塞式與非阻塞式操作‧休眠介紹‧Polling 介紹‧Select 介紹‧進階驅動程式開發流程與架構Time, Delay and Deferred work (時間,延遲與遲緩操作探討)Linux 核心時間計時介紹RTC介紹延遲執行架構與實作核心時間相關API函式實作Tasklets介紹工作佇列Allocation Memory(記憶體配置)‧Linux核心記憶體管理機制‧配置核心記憶體方式介紹‧kmalloc函式‧Memory pool函式‧前瞻快取介紹‧vmalloc 函式‧ioremap函式Communicating with Hardware(硬體裝置溝通)‧I/O Port介袑‧Memory mapped I/O 介紹‧Memory mapped I/O開發流程‧存取Memory mapped I/O‧平台相依性Interrupt Handler (中斷控制)‧中斷介紹‧中斷程式開發流程‧進階中斷函式處理‧共享中斷Data Types in the Linux Kernel(核心資料型別)‧標準C語言資料型別‧Timer Interval‧Page size‧資料對齊