zoukankan      html  css  js  c++  java
  • 第一个Linux驱动程序:统计单词个数

    Linux系统将每一个驱动都映射成一个文件。这些文件成为设备驱动文件,都保存在/dev目录中。这种设计理念使得与linux驱动进行交互就像鱼普通文件交互一样容易。与linux驱动交换数据就变成了与设备文件交换数据。

    应用软件通过open、write、read等函数访问设备文件,设备文件通过主设备号与驱动关联,驱动直接与硬件进行读写操作。

    编写linux驱动程序的步骤

    1.建立linux驱动骨架(装载和卸载linux驱动)

    装载函数:module_init(); 装载过程中进行初始化操作:建立设备文件,分配内存地址等。

    卸载函数:module_exit(); 下载过程中需要释放linux驱动占用的资源:删除设备文件,释放内存地址空间等。

    2.注册和注销设备文件

    Misc_register();创建设备文件misc_deregister();移除设备文件

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

    4. 指定回调函数

    5. 编写业务逻辑  完成业务功能

    6. 编写makefile文件

    makefile文件定义内核源代码的编译规则

    7. 编译Linux驱动程序

    8. 安装和卸载linux驱动

    统计单词个数驱动

    1.准备工作

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

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

    #cd /root/drivers/ch06/ word_count

    建立驱动源代码文件

    #echo ‘’ > word_count.c

    编写一个makefile文件

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

    static  int  word_count_init(void)

    static  void  word_count_exit(void)

    安装linux驱动

    #insmod word_count.ko

    查看word_count是否成功安装

    #insmod | grep word_count

    卸载linux驱动

    # rmmod word_count

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

    # dmesg | grep word_count | tail –n 2

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

    模块作者,模块描述,模块别称,开源协议

    4. 注册和注销设备文件

    Misc_register建立设备文件misc_deregister注销设备文件

    5.指定回调函数

    6.实现统计单词数的算法

    7.编译、安装、卸载linux驱动程序

    测试linux驱动

    使用ubuntu linux测试

    在android模拟器上通过原声(native)C程序测试

    使用android NDK测试

    使用java代码直接操作设备文件测试

    使用S3C6410开发板测试

    将驱动编译进linux内核进行测试

    使用eclipse卡发和测试linux驱动

    1.建立c工程

    2.建立c源代码文件连接

    3.设置include路径

    4.编译linux驱动

    在eclipse中测试linux驱动

    1.导入test_word_count.c文件

    2.设置include路径

    3.建立targe

    4.build工程

    5.运行测试程序

    用不同的方法测试linux驱动主要以平台来区分

  • 相关阅读:
    MFC调用C动态库函数-----待补充
    硬盘知识总结:
    Android 四:区分刷机与root
    总结:Linux系统启动流程
    Android 三:手机adb 命令解锁
    UVa11136 Hoax or what
    UVa11988 Broken Keyboard (a.k.a. Beiju Text)
    UVa11280 Flying to Fredericton
    UVa10269 Adventure of Super Mario
    UVa12589 Learning Vector
  • 原文地址:https://www.cnblogs.com/orange921/p/5560608.html
Copyright © 2011-2022 走看看