码迷,mamicode.com
首页 > 其他好文 > 详细

字符设备驱动

时间:2019-06-15 10:12:33      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:sys   文件类型   生成   ini   init   不同的   注册   mda   接口   

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文件。

  

字符设备驱动

标签:sys   文件类型   生成   ini   init   不同的   注册   mda   接口   

原文地址:https://www.cnblogs.com/lyndon-jiang/p/11026027.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!