zoukankan      html  css  js  c++  java
  • 第六章

    第6章 第一个Linux驱动程序: 统计单词个数

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

    1步:建立Linux驱动骨架

    用 modu te_init和 moduie_exit去指定

    2步:注册和注销设备文件

    misc_register 创建设备文件

    misc_deregister 移除设备文件

    3步:指定与驱动相关的信息

    通过MODULE_AUTHOPMODULE_LICENSEMODULE_ALIASMODULE_DESCRIPTION等宏指定与驱动相关的信息。

    4步:指定回调函数

    Linux系统调用相应驱动程序的回调函数。

    5步:编写业务逻辑

    这一步是 Linux 驱动的核心部分。

    6步:编写Makefile文件

    Linux内核源代码的编译规则是通过Makefile文件定义的。

    7步:编译Linux驱动程序

    Linux 驱动程序,可以直接编进内核,也可以作为模块单独编译。

    8步:安装和卸载Linux驱动

    如果 Linux 驱动程序以模块单独存在, 需要使用 ins mod 或 modprobe 命令装载 Linux 驱动模块,使用 rmmod 命令卸载 Linux 驱动模块。

    二、统计单词个数

    第一步:编写Linux驱动程序前的准备工作

    # mkdir -p /root/drivers/ch06/word_count

    # cd /root/drovers/ch06/word_count

    # echo '' >word_count.c

    # echo 'obj-m := word_count.o' > Makefile

    第二步:编写Linux驱动程序的骨架

    骨架部分主要是Linux驱动的初始化和退出函数。

    第三步:指定与驱动相关的信息

    模块作者:使用MODULE_AUTHOR宏指定。

    模块描述:使用MODULE_DESCRIPTION宏指定。

    模块别名:使用MODULE_ALIAS宏指定。

    模块协议:使用MODULE_LICENSE宏指定。

    协议包括:开源协议、GPL协议、LGPL协议、BSD协议、Apache Licence 2.0协议、MIT协议。

    第四步:注册和注销设备文件

    extern int misc_register(struct miscdevice *misc);

    extern int misc_dergister(struct miscdevice *misc);

    第五步:指定回调函数

    添加word_count_readword_count_write

    第六步:实现统计单词数的算法

    节实现的算法将由空格、制表符 (ASCII: 9)、回东符(ASC日: IJ)和换行符(ASCII: 10)分隔的字符串算做一个单词,该算法 同时考虑了有多个分隔符(空格符、制表:符、回车符和换行符)

    第七步:编译、安装、卸载Linux驱动程序

    查看日志输出信息和驱动模块信息

    # dmesg |tail -n 1

    #modinfo word_count.ko

    检测驱动模块的依赖关系

    # dempod /root/drivers/ch06/word_count/word_count.ko

    装载Linux驱动

    # modprobe word_count

    三、使用多种方法测试Linux驱动

    1、使用Ubuntu Linux测试Linux驱动

    2、在 Android 模拟器上通过原生( Native ) 程序测试 Linux 驱动

    3、使用Android NDK测试Linux驱动

    4、使用Java代码直接操作设备文件来测试Linux驱动

    5、使用S3C6410开发板测试Linux驱动

    6、将驱动编译进Linux内核进行驱动

    四、使用Eclipse开发和测试Linux驱动程序

    1、在Eclipse中开发Linux驱动程序

    第一步:建立C工程

    第二步:建立C源代码文件链接

    第三步:设置include路径

    第四步:编译Linux驱动

    2、在Eclipse中测试Linux驱动

    第一步:导入test_word_count.c文件

    第二步:设置include路径

    第三步:建立Target

    第四步:Build工程

    第五步:运行测试程序

    统计单词数的 word_count 驱动是本章实现的第一个完整的 Linux 驱动,。本章不仅仅是介绍一个示例,还介绍了如何使用不同的方法测试 Linux 驱动。这些方法主 要以平台来区分。

  • 相关阅读:
    Android 学习笔记5程序开发模式&拨号器&短信发送器小例程
    Android学习笔记6日志输出&单元测试
    utkernel 移植时调试方法
    在eclipse中查看Android SDK源代码
    (转载)怎样改进数据库的查询性能?
    asp.net 编程模型
    数据回传
    在博客园记录我的成长
    LeetCode14.最长公共前缀
    LeetCode206.反转链表
  • 原文地址:https://www.cnblogs.com/diyizhang/p/5560314.html
Copyright © 2011-2022 走看看