驱动的视频学习

驱动分类:字符驱动,块设备驱动,网络设备驱动

流,最终还是要调用系统调用函数,是对系统调用的封装

字符设备特点:

    1. 像字节流一样来存取的设备,对它的读写是以字节为单位的。

    2. 通常至少需要实现read,open,write,close等系统调用。

    3. 应用程序可以通过/dev/下的文件系统节点来访问字符设备,比如说/dev/led, /dev/ttySAC0

    4. 只能顺序访问的数据通道,不能前后移动访问指针

块设备特点:

    1. 设备上的数据以块的形式存放

    2. 块设备驱动程序向用户层提供字符设备一样的接口,也可以调用read,open,write,close等

 块设备和字符设备的区别在于;

    以块为单位实现数据的读写

    块设备按照一定的格式存放数据,不同的文件系统就用来定义这一些格式

    块设备需要挂载!

网络设备的特点:

    1. 特殊的一类设备,传输是以块为单位,但是块的大小不是固定的。

    2. 任何一个网络事务都通过一个网络接口,网络接口负责发送和接收报文。

    3. 内核调用一套和数据包相关的网络函数来实现网络交互


驱动的添加和删除,insmod和rmmod

      #include

      #include 

      MODULE_LICENSE("GPL");

      static int __init hello_init (void)

      {

         printk("Hello module init\n");

         return 0;

       }

     static void __exit hello_exit (void)

    {

       printk("Hello module exit\n");

    }

    module_init(hello_init);

     module_exit(hello_exit);


驱动加载与卸载
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容