聯繫我們

課程簡介

1. Linux 內核簡介

  • 嵌入式 Linux 概述
  • Linux 內核架構
  • 用戶空間與內核空間
  • 內核職責
  • 內核開發工作流程
  • 支持的嵌入式平臺概述

2. 搭建開發環境

  • 準備開發工作站
  • 交叉編譯概念
  • 安裝所需的開發工具
  • 配置 BeagleBone Black 開發板
  • 串行控制檯配置
  • 引導目標設備

3. 獲取與理解內核源碼

  • Linux 內核源代碼樹
  • 穩定版與長期支持版內核
  • 下載內核源碼
  • 探索源碼結構
  • 內核文檔
  • 管理內核版本

4. 配置、編譯與引導內核

  • 使用 menuconfig 進行內核配置
  • 選擇內核功能
  • 交叉編譯內核
  • 構建內核鏡像
  • 安裝內核模塊
  • 引導程序概述
  • 引導自定義內核

5. 設備樹基礎

  • 設備樹的目的
  • 設備樹源碼 (DTS) 文件
  • 設備樹二進制文件 (DTB)
  • 硬件描述概念
  • 修改設備樹文件
  • 構建與部署設備樹

6. Linux 內核模塊

  • 內核模塊架構
  • 構建可加載內核模塊
  • 加載與卸載模塊
  • 模塊參數
  • 模塊依賴關係
  • 與內核模塊交互
  • 模塊調試技術

7. Linux 內核調試

  • 使用 printk() 進行內核日誌記錄
  • 使用 dmesg 工具
  • 動態調試
  • 內核恐慌分析
  • Oops 錯誤消息
  • 使用 GDB 進行調試
  • 基本的性能追蹤工具

8. 字符設備驅動程序

  • Linux 設備驅動模型
  • 字符設備
  • 註冊驅動程序
  • 文件操作
  • 讀取與寫入操作
  • IOCTL 接口
  • 內存管理
  • 驅動清理

9. 驅動集成與硬件訪問

  • 平臺設備與驅動
  • GPIO 編程
  • 中斷處理
  • 定時器與延遲工作
  • 訪問硬件寄存器
  • 處理內存映射 I/O

10. 使用 Git 進行版本控制

  • Git 基礎
  • 管理內核源代碼
  • 分支與合併
  • 創建補丁
  • 審查更改
  • 協作參與內核開發

11. 內核開發動手實驗

  • 配置自定義內核
  • 構建與部署內核
  • 創建簡單的內核模塊
  • 開發基礎字符設備驅動程序
  • 修改設備樹文件
  • 在 BeagleBone Black 上調試內核問題

12. 最佳實踐與總結

  • 內核編碼風格
  • 編寫可維護的驅動程序
  • 常見的開發陷阱
  • 內核文檔資源
  • 開源貢獻工作流程
  • 關鍵概念回顧
  • 問答環節
  • Linux 內核開發的後續步驟

最低要求

具備基本的 GNU/Linux 系統使用經驗

 14 小時

人數


每位參與者的報價

客戶評論 (2)

即將到來的課程

課程分類