1.简单的字符设备

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35886943/article/details/90073780

首先想要实现一个字符设备,需要以下3步

  1. 注册设备号
  2. 初始化字符设备
  3. 实现需要的文件操作
  • 注册设备号
    • 主次设备号以及设备ID
      一般情况下,设备的注册是在模块加载入口所指向的函数中完成的。
      第一步先将主次设备号合成为设备ID,这里需要用到LINUX内核提供的宏MKDEV
	#include <linux/fs.h>	  //for MKDEV register_chrdev_region
	
 	dev_t devno = MKDEV(LED_MA, LED_MI);  //把主次设备号合并生成设备ID
	 	/*****内核中MKDEV宏的实现*******/
	 	#define MINORBITS	20
	 	#define MKDEV(ma,mi)	(((ma) << MINORBITS) | (mi))
	 	//作用:将主设备号MA左移20位于次设备号MI相或,最后得到设备ID
	 	/*
	 		|	31~12位	|	11~0位	|
			|	主设备号	|	次设备号	|
		*/

LED驱动

猜你喜欢

转载自blog.csdn.net/qq_35886943/article/details/90073780