联系我们

课程大纲

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)

即将举行的公开课程

课程分类