字符设备驱动
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文件。
以上是关于字符设备驱动的主要内容,如果未能解决你的问题,请参考以下文章