当前位置: 首页 > news >正文

Linux驱动学习(二)--字符设备

设备分类

  • 字符设备
  • 块设备
  • 网络设备

内核结构图:

 字符设备号

字符设备号是32位的无符号整型值

  • 高12位:主设备号
  • 低20位:次设备号

 查看设备号

  • cat /proc/devices

设备号构造

 直接使用宏MKDEV

#define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi))

设备号注册/注销

注册设备号函数:

 设备号注销函数

实验 

结果

代码

 

/**chr_dev.c*Original Author: luoyunheng, 2025-02-19** Linux驱动之字符设备的设备号
*/#include <linux/init.h>
#include <linux/module.h>
#include <linux/kdev_t.h>
#include <linux/fs.h>static int major = 222;
static int minor = 0;static dev_t devno;static int hello_init(void)
{int result;printk("hello_init\n");devno = MKDEV(major, minor);result = register_chrdev_region(devno, 1, "loh");if (result < 0 ) {printk("register dev number failed\n");return result;}return 0;
}static void hello_exit(void)
{printk("hello_exit\n");unregister_chrdev_region(devno, 1);\return;
}module_init(hello_init);
module_exit(hello_exit);


http://www.mrgr.cn/news/91534.html

相关文章:

  • docker修改镜像默认存储路径(基于 WSL2 的迁移方法)
  • Ubuntu20.04安装IsaacSim4.5与IsaacLab2.0
  • 2015年下半年试题二:论软件系统架构风格
  • wps中的js开发
  • Web后端 Tomcat服务器
  • 15. 三数之和(LeetCode 热题 100)
  • Flutter
  • 【亚马逊开发者账号02】终审问题SA+review_Pre-review+Doc.xlsx
  • 单元测试方法的使用
  • 力扣 跳跃游戏 II
  • 计算机视觉:卷积神经网络(CNN)基本概念(二)
  • 大模型 + cursor应用案例
  • 基于Django快递物流管理可视化分析系统(完整系统源码+数据库+详细开发文档+万字详细论文+答辩PPT+详细部署教程等资料)
  • QT移植,交叉编译至泰山派RK3566开发板,.pro文件解析
  • 计算机视觉:神经网络实战之手势识别(附代码)
  • Node-Red
  • 探讨如何加快 C# 双循环的速度效率
  • 服务器装机可用的基本操作
  • 【Linux Redis】关于用docker拉取Redis后,让虚拟机运行起来redis,并使得其可以连接到虚拟机外的navicat。
  • 银行IT治理——安全架构定义