LinuxDriver/README.md

203 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Linux 内核笔记
## 嵌入式基础能力
### Linux系统编程
- [x] 文件IO和标准IO
- [x] 目录IO
- [x] 库的制作与使用
- [ ] 进程基础
- [ ] 进程间通信
### 驱动开发篇
- [ ] Linux驱动初探
- [ ] Linux内核模块
- [ ] 驱动模块编译进内核
- [ ] Linux Misc驱动
- [ ] Linux用户层和内核层
- [ ] 物理地址与虚拟地址
- [ ] 驱动传参
- [ ] 注册字符设备号
- [ ] 注册字符类设备
- [ ] 自动创建设备节点
## Linux模块化编程
- [ ] Linux内核源码初识
- [ ] Helloworld驱动实验
- [ ] 向系统添加一个系统调用
- [ ] 内核模块实验
- [ ] 驱动模块传参
- [ ] 内核模块符号的导出
- [ ] 驱动模块的交互
- [ ] menuconfig实验
- [ ] 内核空间和用户空间的交互
- [ ] 文件私有数据实验
- [ ] 一个驱动兼容多个实验设备
- [ ] 内核模块详细加载/卸载过程
- [ ] modulde_init的优先级
- [ ] 驱动的加载过程
- [ ] 自动创建设备节点
- [ ] 内核模块符号的导出
- [ ] kmod内核模块管理工具
- [ ] Linux热拔插机制mdev的使能
- [ ] udv内核是如何发送事件到用户空间
## 中断及异常
- [ ] 什么是中断
- [ ] Linux中断API函数
- [ ] 中断的申请流程
- [ ] 中断下半部——tasklet实验
- [ ] 中断下半部——softirq软中断
- [ ] 中断下半部——tasklet原理
- [ ] 中断下半部——共享工作队列的使用
- [ ] 中断下半部——自定义工作队列的使用
- [ ] 中断下半部——延迟工作实验
- [ ] 并发管理工作队列实验
- [ ] 中断下半部——中断线程化
- [ ] 按键中断实验
- [ ] 应用读取按键
- [ ] 中断共享(全局中断)
- [ ] Linux内核异常处理过程
- [ ] 中断子系统框架
- [ ] Linux中断系统中的重要数据结构
- [ ] 获取中断
- [ ] 异常
- [ ] 中断亲和性
- [ ] 中断控制器
- [ ] 禁止/开启中断
- [ ] 中断高频面试题
- [ ] 中断知识点总结
- [ ] 中断子系统框架
- [ ] 中断函数的编写
- [ ] ARM64底层中断处理
- [ ] 注册中断
- [ ] 工作队列详解
- [ ] 工作队列的四种形态
## 内核互斥技术
- [ ] 并发与竞争场景
- [ ] 原子操作
- [ ] 经典自旋锁的使用
- [ ] 自旋锁死锁情况
- [ ] 信号量的使用
- [ ] 互斥锁的使用
- [ ] 掌握信号处理
- [ ] 中断屏蔽
- [ ] Linux内核抢占
- [ ] Read-copy updateRCU
- [ ] 读写锁rwlock
- [ ] 内存屏障(核心代码)
- [ ] 死锁监测工具 lockdep
- [ ] 并发与同步高频面试题
- [ ] 内联汇编(核心代码)
- [ ] 同步与互斥失败的例子
## 字符设备驱动模型
- [ ] Linux设备分类
- [ ] 图解字符驱动模块设计思路
- [ ] 主次设备号
- [ ] 注册字符设备
- [ ] 创建设备节点实验
- [ ] 文件操作表
- [ ] 杂项设备
- [ ] 用户空间和内核空间数据交换
- [ ] 文件私有数据实验
- [ ] Linux错误处理实验
## 高级字符设备进阶
- [ ] IO模型引入实验
- [ ] 阻塞IO实验
- [ ] 非阻塞IO实验
- [ ] IO多路复用实验
- [ ] 信号驱动IO实验
- [ ] 定时器实验
- [ ] llseek定位设备驱动实验
- [ ] IOCTL驱动传参实验
- [ ] IOCTL地址传参实验
## Linux驱动相关子系统
### Linux设备模型
### 设备树
### 设备树overlay
### platform虚拟总线驱动
### GPIO子系统
### Pintctrl子系统
### LED子系统
### DMA子系统
### Input子系统
### SPI子系统
### I2C子系统
### UART、TTY子系统
### PWM子系统
### IIO框架
## Linux复杂设备外设驱动
### SDIO
### 以太网
### HDMI屏幕驱动
### 音频
### USB
### 摄像头
### MIPI DSI屏幕驱动
### 多点电容触摸屏
### WIFI
### PCI/PCIE
## Linux进程管理
## Linux进程间通信
## Linux内存管理
## 块设备驱动系统
## Linux文件系统
## Linux网络系统
## Linux系统调优&调试
## 硬件工具&知识
## 音视频编解码
## Linux基础通用知识
## 常用外设及硬件介绍
## 平台系统功能