zoukankan      html  css  js  c++  java
  • 第六章 第一个linux个程序:统计单词个数

                                                                            第六章 第一个linux个程序:统计单词个数

    从本章就开始实战,实例是统计一片文章或者一段文字中的单词个数。还介绍了用不同的方法去测试linux驱动,这些方法主要使用平台来区分。

     一、linuxlinux跟普通的linux API没什么区别,只是使用方式不同而已。Linux系统每一个驱动都映射成一个文件,这些被映射的文件被称为设备文件或映射文件,并且都保存在./dev目录下。

      Linux驱动的工作方式:LinuxUnix操作系统的一种变种,在Linux下编写驱动程序的原理和思想完全类似于其他的Unix系统。在Linux环境下设计驱动程序,思想简洁,操作方便,功能也很强大,但是支持函数少,只能依赖kernel中的函数,有些常用的操作要自己来编写,而且调试也不方便。

    Linux操作系统下有三类主要的设备文件类型:字符设备、块设备和网络接口。字符设备和块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着发生了,块设备则不然,它利用一块系统内存作缓冲区,当用户进程对设备请求能满足用户的要求,就返回请求的数据,如果不能,就调用请求函数来进行实际的I/O操作。块设备是主要针对磁盘等慢速设备设计的,以免耗费过多的CPU时间来等待。

    编写linux驱动程序的步骤:linux程序与其他程序一样也有他自己的规则:1.建立linux驱动骨架,也就是装载和卸载linux驱动程序Module_init处理驱动初始化,module_exit处理驱动退出2.注册和注销llinux设备文件,Misc_register函数创建和misc_deregister移除设备文件3.制定与驱动相关的信息:modinfo;4.制定回调函数;5.编写业务逻辑;6.编写Makefile文件;7.编译linux驱动程序;8.安装和卸载linux驱动。

    第一个linux驱动,统计单词个数:这个驱动文件没有访问硬件,而是利用设备文件作为介质与应用程序相互交互的。

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

    建立驱动源代码文件

    编写makefile

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

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

    Printk函数,该函数用于输出日志信息

    测试编译Linux驱动源代码(不一定在Android设备上完成)

    安装Linux驱动

    查看word_count是否安装成功

    卸载Linux驱动

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

    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

    Cat /proc/devices(获取主设备及其主设备号)

    5、指定回调函数 word_count_read word_count_write

    最常用的交互方式就是读写设备文件。

    6.实现

    单词数使用int类型变量存储。Mem数组的长度为10000,而最后一个字符为“”,因此带统计的字符串最大长度为999

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

    使用多种方法测试linux驱动:1.linux源代码编译成linux驱动模块之后;2.测试linux驱动模块。3.在开发板上适应android NDK测试linux测试驱动;4.使用java代码在开发板上直接测试linux驱动;5将驱动编译进linux内核进行测试:1.word——count.c文件放入linux内核源代码;2.Kconfig文件;3.修改Makefile文件;4.配置.config文件;5.编译linux内核。

    使用Eclipse开发和测试驱动程序:使用eclipse开发和测试Linux驱动程序

    1.eclipse中开发Linux驱动程序,建立C工程,建立C源代码文件链接,设置include路径,编译Linux驱动

    2.eclipse中测试Linux驱动,导入test-word_count.c设置include路径,建立Target,Build工程,运行测试程序.

  • 相关阅读:
    Pascal's Triangle
    Pascal's Triangle II
    贪心算法入门
    Jump Game
    Symmetric Tree
    Reverse Words in a String
    [BZOJ2342][Shoi2011]双倍回文
    [HDU3068]最长回文
    [POJ1984]Navigation Nightmare
    [BZOJ3295][Cqoi2011]动态逆序对
  • 原文地址:https://www.cnblogs.com/chen06/p/5560644.html
Copyright © 2011-2022 走看看