-
驱动之字符设备工作原理
目前尚不是最终版本,还望有心人自己学习的时候,把自己整合的知识点相关的答案也好问题也好,或者实践过程中的一些操作截图,再或者其他的一些想要分享材料发给笔者邮箱:[email protected],我们一起完善这篇博客!笔者写这篇博客的时候已经工作第四个年头了,目前是在整理之前有过的学习资料,仅作为笔记,供同志们参考!短时间内可能不会去全部完善。
-
系统整体工作原理
应用层->API->设备驱动->硬件?
API:open、read、write、close等?
驱动源码中提供真正的open、read、write、close等函数实体?
-
file_operations结构体
元素主要是函数指针,用来挂接实体函数地址?
每个设备驱动都需要一个该结构体类型的变量?
设备驱动向内核注册时提供该结构体类型的变量?
-
注册字符设备驱动
为何要注册驱动?
谁去负责注册?
向谁注册?
注册函数从哪里来?
注册前怎样?注册后怎样?注册产生什么结果?
-
register_chrdev详解
(#include <linux/fs.h>)?
作用?驱动向内核注册自己的file_operations?
参数?
inline和static?
-
内核如何管理字符设备驱动
内核中有一个数组用来存储注册的字符设备驱动?
register_chrdev内部将我们要注册的驱动的信息(主要是 )存储在数组中相应的位置?
cat /proc/devices查看内核中已经注册过的字符设备驱动(和块设备驱动)?
好好理解主设备号(major)的概念?
/proc文件系统的作用?
将来深入学习驱动时可以去跟register_chrdev到内部看,验证我们上面讲的原理?