内核MKDEV(MAJOR, MINOR)
版本:linux-2.6.24.4
宏:
MKDEV(MAJOR, MINOR);
说明: 获取设备在设备表中的位置。
MAJOR 主设备号
MINOR 次设备号
内核使用的版本号说明文件:
在内核 /Documentation 目录下的 devices.txt 有说明。
一般本地保留的
MAJOR
234-239 UNASSIGNED
240-254 char
LOCAL/EXPERIMENTAL USE
240-254 block
LOCAL/EXPERIMENTAL USE
MINOR
1 ~ 250 (次设备号的 0 不能使用)
静态的设备文件建立:
mknod /dev/gpio_led c 240 1
下面这段话出自linux内核linux/kdev.h中,是关于主次设备号操作的一些宏
1
4
8 #define MAJOR(dev) ((unsigned int) ((dev) >> MINORBITS))
9 #define MINOR(dev) ((unsigned int) ((dev) & MINORMASK))
10 #define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi))
对上面的这个宏要理解的话先得理解下面这段话先得理解1u<<(port)的含义:
1u<<(port)可以理解为取一个无符号数,其大小为1,并且将其左移port位。
例如:port=3,则其等同于:1<<3;
在理解了以上的含义以后,可以发现:
(1U << MINORBITS) 的结果是: 0000 0000 0001 0000 0000 0000 0000 0000
((1U << MINORBITS) - 1)的结果是:0000 0000 0000 1111 1111 1111 1111 1111
那么进一步分析可以知道:
MAJOR(dev)得到的是dev的高12位;
MINOR(dev)得到的是dev的低20位;
MKDEV(ma,mi) 就是先将主设备号左移20位,然后与次设备号相加得到设备号。
内核MKDEV(MAJOR, MINOR)的更多相关文章
- 内核MKDEV(MAJOR, MINOR)宏
版本:linux-2.6.24.4宏: MKDEV(MAJOR, MINOR); 说明: 获取设备在设备表中的位置. MAJOR 主设备号 MINOR 次设 ...
- ⭐内核MKDEV(MAJOR, MINOR)宏
版本:linux-2.6.24.4宏: MKDEV(MAJOR, MINOR); 说明: 获取设备在设备表中的位置. MAJOR 主设备号 MINOR 次设 ...
- 记一次jdk升级引起的 Unsupported major.minor version 51.0
之前jdk 一直是1.6,tomcat 是6.x 版本,, 现在引入的新的jar, 出现 Caused by: java.lang.UnsupportedClassVersionError: org/ ...
- 解决Unsupported major.minor version 51.0错误
解决Unsupported major.minor version 51.0错误使用jdk6运行项目时发生了Unsupported major.minor version 51.0错误.经过网上搜索发 ...
- Unsupported major.minor version 51.0
org/jboss/as/domain/management/security/adduser/AddUser : Unsupported major.minor version 51. 0 已编译好 ...
- Unsupported major.minor version 52.0问题的解决
下载Tomcat9.0,解压后安装运行,结果启动失败,进入logs文件夹看里面的日志文件,提示是Unsupported major.minor version 52.0错误,这是因为Tomcat版本过 ...
- Android studio 出现 Unsupported major.minor version 52.0
参考资料:http://blog.csdn.net/fakine/article/details/51241202 最近更新了Android studio 之后,出现了Error:java.lang. ...
- Unsupported major.minor version 51.0解决办法
问题: 之前使用的是高版本的myeclipse2015ci,然后换成了myeclipse10.5,之前的workspace的内容没有改变,结果工程都出现了感叹号,运行时提示 Unsupported m ...
- Ant编译提示“Unsupported major.minor version 52.0”
今天在使用Ant编译build.xml文件时报错"java.lang.UnsupportedClassVersionError:com/sun/tools/javac/Main : Unsu ...
随机推荐
- 的aspnet_client文件夹
在早期,有一些asp.net组件是默认要调用(从客户端调用)服务器根(域名)下这个子目录里边的文件的. 不过如果你使用高版本的asp.net,那么全都从你的网站里调用了,因为asp.net有了更好地直 ...
- SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xd0 in position 2: invalid continuation byte
[root@hostuser src]# python3 subprocess_popen.py File "subprocess_popen.py", line 23Syntax ...
- SpringBoot 集成Log4j、集成AOP
集成Log4j (1)在pom.xml中添加依赖 <!--去掉springboot默认的日志--> <dependency> <groupId>org.spring ...
- jquery怎么获取当前标签下的子标签
1.var num1=$("ul > a:eq(0)").attr("ID");2.var num2=$("ul").children ...
- Java通过反射实现实例化
public static void main(String[] args) throws Exception { User user= (User) test(User.class); System ...
- 牛茶冲天的ip命令
一.修改二层链路相关设置 1.修改网卡名称(修改前要先停止) ip link set eth0 name testname 2.修改网卡地址 ip link set eth0 address xxx ...
- 吴裕雄--天生自然PythonDjangoWeb企业开发:Django文档阅读简介
Django是基于MVC模式的框架,虽然也被称为“MTV”的模式,但是大同小异.对我们来说,需要了解的是无论是MVC模式还是MTV模式,甚至是其他的什么模式,都是为了解耦.把一个软件系统划分为一层一层 ...
- C#操作Word的超详细总结 ---转载
C#操作Word的超详细总结 本文中用C#来操作Word,包括: 创建Word: 插入文字,选择文字,编辑文字的字号.粗细.颜色.下划线等: 设置段落的首行缩进.行距: 设置页面页边距和纸张大小: 设 ...
- 学习不一样的vue实战(2): 项目分析
学习不一样的vue实战(2): 项目分析 首先 首发博客: 我的博客 项目源码: 源码(喜欢请star) 项目预览: 预览 上一章: <学习不一样的vue(1)实战:环境搭建> 我的Q群: ...
- Lora笔记
Lora笔记 2016-03-26 [概述] LPWAN技术 无线跳频技术简介 https://bitbucket.org/ [节点] SX1278测试 SX1278测试 SX1276调试总结 LoR ...