上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 109 下一页
摘要: __attribute__((alias(__stringify(A)))) 设置函数、变量的别名 #include <stdio.h> #define __stringify_1(x...) #x #define __stringify(x...) __stringify_1(x) void a( 阅读全文
posted @ 2023-04-12 22:48 流水灯 阅读(657) 评论(0) 推荐(0)
摘要: 在设备树中有一个叫做aliases的节点: / { #address-cells = <1>; #size-cells = <1>; aliases { fimc0 = &fimc0; fimc1 = &fimc1; fimc2 = &fimc2; i2c0 = &i2c0; i2c1 = &i2c 阅读全文
posted @ 2023-04-08 21:42 流水灯 阅读(298) 评论(0) 推荐(0)
摘要: I2C总线 I2C总线和 platform 总线非常类似,platform 总线初始化位置如下: kernel_init(); kernel_init_freeable(); do_basic_setup(); driver_init(); platform_bus_init(); I2C总线是作为 阅读全文
posted @ 2023-04-05 23:15 流水灯 阅读(504) 评论(0) 推荐(0)
摘要: 以 struct kobject 为例,讲解如何使用链表 struct list_head struct kobject { const char *name; struct list_head entry; struct kobject *parent; ... }; struct list_he 阅读全文
posted @ 2023-04-02 20:29 流水灯 阅读(92) 评论(0) 推荐(0)
摘要: open一个字符设备的流程大概是:文件路径 => inode => chrdev_open() => (kobj_lookup=>) inode.i_cdev => cdev.fops.my_chr_open()。所以只要通过VFS找到了inode,就可以找到chrdev_open(),这里我们就来 阅读全文
posted @ 2023-04-01 16:26 流水灯 阅读(139) 评论(0) 推荐(0)
摘要: struct inode Linux中一切皆文件,当我们在Linux中创建一个文件时,就会在相应的文件系统创建一个inode与之对应,文件实体和文件的inode是一一对应的,创建好一个inode会存在存储器中,第一次open就会将inode在内存中有一个备份,同一个文件被多次打开并不会产生多个ino 阅读全文
posted @ 2023-03-31 22:33 流水灯 阅读(515) 评论(0) 推荐(1)
摘要: inode和block概述 文件是存储在硬盘上的,硬盘的最小存储单位叫做扇区sector,每个扇区存储512字节。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个块block。这种由多个扇区组成的块,是文件存取的最小单位。块的大小,最常见的是4 阅读全文
posted @ 2023-03-29 23:00 流水灯 阅读(234) 评论(0) 推荐(0)
摘要: 设备号设计原则 一般一个主设备号的一段连续子设备号共用一个驱动,称为cdev实例,所以有主设备号和子设备号之分 struct cdev { struct kobject kobj; struct module *owner; const struct file_operations *ops; st 阅读全文
posted @ 2023-03-17 22:53 流水灯 阅读(144) 评论(0) 推荐(0)
摘要: 为什么要用INPUT子系统 不采用input子系统,如果自己实现按键字符驱动,需要自己申请设备号,注册字符设备,实现file_operations接口,创建设备节点,实现阻塞、非阻塞、复用IO、异步通知,INPUT 子系统还统一定义了不同输入设备上报数据的格式。 在输入设备中会有以下几个问题: a. 阅读全文
posted @ 2023-03-16 23:18 流水灯 阅读(1078) 评论(0) 推荐(0)
摘要: struct bus_type { const char *name; ...... struct subsys_private *p; }; struct class { const char *name; struct module *owner; ...... struct subsys_pr 阅读全文
posted @ 2023-03-16 22:51 流水灯 阅读(123) 评论(0) 推荐(0)
上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 109 下一页