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

编写一个Linux的一般步骤:

第1步:建立Linux驱动骨架(装载和卸载Linux驱动)

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

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

第4步:指定回调函数

第5步:编写业务逻辑

第6步:编写Makefile文件

第7步:编译Linux驱动程序

第8步:安装和卸载Linux驱动

    在编写Makefile文件时obj-m表示将Linux驱动作为模块(.ko文件)编译,而obj-y是将Linux驱动编译进Linux内核;obj-m或obj-y需要使用":="赋值。通过make menuconfig命令可以配置每一个驱动及其他内核程序是否允许编译进内核。Linux系统内存分为了用户空间和内核空间,这两个空间的程序不能直接访问。printf函数运行在用户空间,printk函数运行在内核空间,因此,属于内核程序的Linux驱动是不能直接访问printf函数的,而用户空间的程序

也不能直接调用printk函数。如果使用模块方式编译Linux驱动程序,需要

使用M指定驱动程序所在的目录。例如:查看由Linux驱动输出的日志信息所使用如下命令:

      # dmesg | grep word_count | tail -n 2

  或

  # cat /var/log/syslog | grep word_count | tail -n 2

    使用modinfo查看.ko文件的信息,设备文件由主设备号和次设备号描述。

原文地址:https://www.cnblogs.com/zgen1/p/5547784.html