字符设备驱动

Posted lyndon-jiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符设备驱动相关的知识,希望对你有一定的参考价值。

1 引言

  • APP:open("/dev/xxx"),read,write    ——  设备字符驱动文件包含属性、主设备号和次设备号
  • C Library
  • System call interface
  • 内核:根据文件类型为字符设备,查找字符设备。根据主设备号查找file_operation;
  • 根据调用类型,选择不同的操作函数;

2 简单驱动程序

  • a. 定义file_operations结构体,然后填充该结构体,构造底层驱动函数;其中file_operations结构体定义在\include\linux\fs.h中。
  • b. 使用register_chrdev(主设备号,名字,结构体file_operations)在内核中注册该字符设备驱动;
  • c. 定义驱动入口函数fun1/fun2...,调用注册函数register_chrdev();
  • d. 用宏module_init(fun1),在内核中注册该字符设备;
  • e. 出口函数funx()调用unregister_chrdev();
  • f. 用宏module_exit(funx),从内核卸载该字符设备。

注:

  • APP调用接口时,调用字符设备时,主设备号查找外设类型,次设备号根据结构体程序索引不同驱动函数。
  • Makefile基于内核编写,make后生成xxx.ko文件。

  

以上是关于字符设备驱动的主要内容,如果未能解决你的问题,请参考以下文章

字符设备驱动体验,字符设备驱动学习

嵌入式开发(七):linux字符型设备驱动初步

虚拟字符设备驱动开发

Linux驱动开发:字符设备驱动开发

Linux驱动开发:字符设备驱动开发

Linux驱动开发:字符设备驱动开发