联系我们

课程大纲

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)

即将举行的公开课程

课程分类