• 第六章、第一个Linux驱动程序:统计单词个数


    通过对这一章的学习,我学会了一个完整的Linux驱动:统计单词数的word_count驱动,并学会了如同使用不同的方法来测试Linux驱动,也对Linux的驱动开发过程有了更深刻的了解。

    一、编写Linux驱动程序的步骤

    1.建立Linux驱动骨架

    Module_init处理驱动初始化,module_exit处理驱动退出

    2.注册和注销设备文件

     

    Misc_register函数创建和misc_deregister移除设备文件

    3.指定与驱动相关的信息

    4.指定回调函数

    5.编写业务逻辑

    6.编写makefile文件

    7.编译Linux驱动程序

    8.安装和卸载Linux驱动

    二.Linux驱动:统计单词个数

    1.开始前的准备工作

    1)建立存放Linux驱动程序的目录

    mkdir –p /root/drivers/ch06/word_count

    cd /root/drivers/ch06/word_count

    2)建立驱动源代码文件

    echo ‘’>word_count.c

    3)编写makefile文件

    Echo obj-m := word_count.o> Makefile  (obj-m表示将Linux驱动作为模块编译,obj-y表示编译进Linux内核)

    Linux驱动依赖其它程序则需要这样编写makefile文件

    Obj-m:=word_count.o

    Word_count-y :=process.o data.o

    2.编写Linux驱动程序的骨架(初始化和退出驱动)

    Printk函数,Linux程序中出现,该函数用于输出显示日志信息

    测试编译Linux驱动源代码

    make –C /usr/src/linux-headers-3.0.0-15-generic M=/root/driver/ch06/word_count

    安装Linux驱动

    insmod word_ount.ko

    查看word_count是否安装成功

    lsmod | grep word_count

    卸载Linux驱动

    rmmod word-count

    查看Linux驱动输出的日志信息

    dmessg |grep word_count | tail n 2 或者cat /var/log/syslog | grep word_count | tail n 2

    3.开源协议、GPL协议、LGPL协议、BSD协议、Apachelicence2.0协议、MIT协议

    4、注册和注销设备

    extern int misc_register(struct miscdevice * misc)

    extern int misc_deregister(struct miscdevice * misc)

    还需要修改word_count.c文件中的word_count_initword_count_exit这两个函数

    设备文件由主设备号和次设备号来标记的。主设备号统一都设置为10,是Linux系统中拥有共同特性的简单字符设备,称为misc设备,当成功注册了设备文件,misc_register函数返回非0的整数,失败返回0.

    insmod word_count.ko

    rmmod word_count

    ls –a /dev

    ls –l /dev

  • 相关阅读:
    前端编程规范记录
    搬砖工坑爹教程
    JS的模块化编程学习之旅
    后端开发遇到的问题
    git学习中遇到的疑难杂症
    微信小程序填坑之旅
    详解Redis中两种持久化机制RDB和AOF
    redis系列:RDB持久化与AOF持久化
    Java中判断字符串是否为数字
    @Aspect 注解使用详解
  • 原文地址:https://www.cnblogs.com/liang123456/p/5561245.html
Copyright © 2020-2023  润新知