会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
流水灯
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
30
31
32
33
34
35
36
37
38
···
109
下一页
2023年3月12日
mdev / udev 捕获 uevent 事件,在 /dev 下创建或删除设备文件
摘要: 每个设备都有一个 uevent 属性文件,里面有设备号和设备名,此文要讲的是 uevent 事件,非 uevent 属性文件 kobject有事件需要上报时,会发送uevent事件,可以通过两个途径把事件上报到用户空间:一种是通过kmod模块,直接调用用户空间的可执行文件;另一种是通过netlink
阅读全文
posted @ 2023-03-12 19:33 流水灯
阅读(1181)
评论(0)
推荐(0)
2023年3月11日
platform_device 和 platform_driver 的匹配
摘要: 一个驱动可以支持多个设备;一个设备只能绑定一个驱动 platform总线上有设备链表和驱动链表,注册设备会遍历总线上的驱动链表找寻与之匹配的驱动,注册驱动会遍历总线上的设备链表找寻与之匹配的设备 匹配调用过程 注册设备: device_add ... bus_probe_device device_
阅读全文
posted @ 2023-03-11 23:31 流水灯
阅读(114)
评论(0)
推荐(0)
platform_device 和 platform_driver 的创建
摘要: platform_device 的创建 主要有两种方式 (1)在内核初始化时通过device_node转换为platform_device,这种是最新的实现方式,基于设备树,在内核初始化时将设备树中的节点转化为platform_device; of_platform_default_populate
阅读全文
posted @ 2023-03-11 23:19 流水灯
阅读(73)
评论(0)
推荐(0)
platform总线注册
摘要: kernel_init(); kernel_init_freeable(); do_basic_setup(); driver_init(); platform_bus_init(); platform总线的注册就是在 /sys 文件下建立对应的文件夹和属性文件,并为全局变量 platform_bu
阅读全文
posted @ 2023-03-11 20:19 流水灯
阅读(75)
评论(0)
推荐(0)
klist 链表介绍
摘要: list_head,这是linux中通用的链表形式,双向循环链表,功能强大,实现简单优雅。可如果您认为list_head就是链表的极致,应该在linux链表界一统天下,那可就错了。据我所知,linux内核代码中至少还有两种链表能占有一席之地。一种就是hlist,一种就是本节要介绍的klist。虽然三
阅读全文
posted @ 2023-03-11 17:01 流水灯
阅读(241)
评论(0)
推荐(0)
2023年3月10日
Linux内核中的IS_ERR()实现
摘要: 1、前言 对于任何一个指针来说,必然有三种情况:一种是有效指针,一种是NULL,也就是空指针,一种是错误指针,也就是无效指针,在Linux内核中,所谓的错误指针就是指其已经到达了内核空间的最后一个page,例如,对于32bit的系统来说,内核空间最后地址为0xFFFF FFFF,那么最后一个page
阅读全文
posted @ 2023-03-10 22:34 流水灯
阅读(1236)
评论(0)
推荐(0)
2023年3月5日
sysfs目录结构 与 kobject 功能分析
摘要: kobject /sys 下的文件夹,比如 "dev"、"kernel" 是通过 kobject_create_and_add 创建 一个 struct kobject 类型变量,对应 /sys 内的一个文件夹,"dev" 是 kobject 的名字,也是文件夹的名字 创建 "block" 和 "c
阅读全文
posted @ 2023-03-05 19:40 流水灯
阅读(802)
评论(0)
推荐(0)
2023年2月26日
system.map u-boot.map
摘要: System.map linux kernel 编译后产生的 System.map 文件是通过如下命令生成的 nm vmlinux | sort | less 上图中的第二列表示符号类型,如果是小写字母,一般表示局部性,大写字母,一般表示全局性(外部) 其他字母表示的函数类型,可以查询 binuti
阅读全文
posted @ 2023-02-26 17:05 流水灯
阅读(278)
评论(0)
推荐(0)
2023年2月19日
select / poll 非阻塞原理
摘要: 应用程序通过调用 select / poll 函数,可以实现非阻塞编程,以下举例: int main(int argc, char *argv[]) { int fd; int ret = 0; char *filename; struct pollfd fds; fd_set readfds; s
阅读全文
posted @ 2023-02-19 22:39 流水灯
阅读(243)
评论(0)
推荐(0)
2023年2月17日
ARM GIC 中断控制器
摘要: GIC 是 ARM 公司给 Cortex-A/R 内核提供的一个中断控制器,类似 Cortex-M 内核(STM32)中的 NVIC。 GIC:Generic Interrupt Controller,通用中断控制器。 NVIC:Nested Vectored Interrupt Controlle
阅读全文
posted @ 2023-02-17 22:29 流水灯
阅读(1317)
评论(0)
推荐(1)
上一页
1
···
30
31
32
33
34
35
36
37
38
···
109
下一页
公告