驱动实战基础

来源:互联网 发布:ubuntu 安装教程 编辑:程序博客网 时间:2024/06/08 02:47

驱动学习实战一:

编写简单的驱动:

利用:lsmod  rmmod insmode这个三个常见命令

驱动学习实战二:

 register_chrdev详解(#include <linux/fs.h>)  老接口的函数    

static inline int register_chrdev(unsigned int major, const char *name,const struct file_operations *fops)

参数: 1.major主设备号     

参数的来源: 1.是0 那么系统会自动给你指定一个主设备号 2.自己利用lsmod的方式来,找一个没人用的主设备号

参数2:    名字   总结: 主次设备号 +name = 人 +名字

        参数3:          struct file_operations *fops这个是应用和驱动的接口 也就是核心

 主要的作用是内核驱动人员向内核提供的接口。

        写文件之前先看。

lsmod 查看当前注册的驱动

        cat /proc/devices  虚拟文件系统

驱动学习是实战三:

register_chrdev内部将我们要注册的驱动的信息,存储在对应的位置

        cat /proc/deviecs 查看内核中已经注册过的字符设备驱动(块设备驱动)

/proc文件系统是内核 利用数据结构虚拟出来的文件系统


驱动学习实战:学驱动的思维

1.在自己的思想中建立整体的框架

   2.整体是一个什么样子的 ,谁调用谁,谁被谁调用 谁的作用是什么

3.在内核中找到相应的内核源代码,自己进行修改

    4.你写的每一句代码心里必须清楚明白,不能似懂非懂

5.自己写的代码首先会先猜测,到底是那种可能,然后实验来验证这种可能

6.驱动人员的主要工作量:file_operations及其元素填充,注册驱动


阅读全文
0 0