会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
流水灯
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
29
30
31
32
33
34
35
36
37
···
109
下一页
2023年4月12日
MODULE_DEVICE_TABLE
摘要: __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)
2023年4月8日
设备树 aliases
摘要: 在设备树中有一个叫做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)
2023年4月5日
linux 驱动 --- I2C总线及驱动
摘要: 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)
2023年4月2日
linux内核数据结构 --- list_head
摘要: 以 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)
2023年4月1日
chrdev_open --- 通过文件路径,执行驱动设置的open()流程
摘要: 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)
2023年3月31日
Linux设备文件三大结构:inode,file,file_operations
摘要: struct inode Linux中一切皆文件,当我们在Linux中创建一个文件时,就会在相应的文件系统创建一个inode与之对应,文件实体和文件的inode是一一对应的,创建好一个inode会存在存储器中,第一次open就会将inode在内存中有一个备份,同一个文件被多次打开并不会产生多个ino
阅读全文
posted @ 2023-03-31 22:33 流水灯
阅读(515)
评论(0)
推荐(1)
2023年3月29日
struct inode
摘要: inode和block概述 文件是存储在硬盘上的,硬盘的最小存储单位叫做扇区sector,每个扇区存储512字节。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个块block。这种由多个扇区组成的块,是文件存取的最小单位。块的大小,最常见的是4
阅读全文
posted @ 2023-03-29 23:00 流水灯
阅读(234)
评论(0)
推荐(0)
2023年3月17日
字符设备的申请和注册
摘要: 设备号设计原则 一般一个主设备号的一段连续子设备号共用一个驱动,称为cdev实例,所以有主设备号和子设备号之分 struct cdev { struct kobject kobj; struct module *owner; const struct file_operations *ops; st
阅读全文
posted @ 2023-03-17 22:53 流水灯
阅读(144)
评论(0)
推荐(0)
2023年3月16日
linux 内核 --- input 子系统
摘要: 为什么要用INPUT子系统 不采用input子系统,如果自己实现按键字符驱动,需要自己申请设备号,注册字符设备,实现file_operations接口,创建设备节点,实现阻塞、非阻塞、复用IO、异步通知,INPUT 子系统还统一定义了不同输入设备上报数据的格式。 在输入设备中会有以下几个问题: a.
阅读全文
posted @ 2023-03-16 23:18 流水灯
阅读(1078)
评论(0)
推荐(0)
subsystem
摘要: 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
下一页
公告