随笔分类 -  linux 驱动开发

摘要:内存访问似乎是个特权操作, 用户空间不能使用. ? 内存映射接管的是最底层的内存访问指令. ? 引子: 我们知道Linux中任何时候都只能访问虚拟地址, 那我们是怎么访问到硬件设备(物理地址)的呢? 这里还有个问题是如何把硬件映射到物理地址? 内存管理单元 MMU 的功能 地址转化函数 iorema 阅读全文
posted @ 2025-09-05 09:31 天刚刚破晓 阅读(21) 评论(0) 推荐(0)
摘要:平台设备模型可以看作是bus device driver的一个实例. 主要构成有 platform bus platform device platform driver platform bus 就是bus_type, 实现了里面的接口函数, 比如match, probe, remove等. pl 阅读全文
posted @ 2025-09-05 09:30 天刚刚破晓 阅读(32) 评论(0) 推荐(0)
摘要:中断的上下部 上半部: 处理严格时限的工作, 严格意义上的中断处理函数. 下半部: 中断来了立即执行上半部, 下半部会等待时机再执行. linux提供了这种机制 设备树中断描述 和GPIO结构类似, 中断控制器负责管理一组中断源, 在设备书中中断控制器有如下描述: intc:interrupt-co 阅读全文
posted @ 2025-04-11 00:26 天刚刚破晓 阅读(68) 评论(0) 推荐(0)
摘要:简单描述以下裸机的gpio pin控制流程: 使能对应总线 配置pin为gpio功能(gpio是pin的一种使用方式, pin还可以有其他的作用比如i2c... 谓之复用) 配置pin上下拉等 配置pin输入/输出 控制pin电平 对于上面流程 1 属于依赖问题, 已经被设备树解决了. 2 3 被抽 阅读全文
posted @ 2025-04-10 15:12 天刚刚破晓 阅读(57) 评论(0) 推荐(0)
摘要:为了降低设备多样性带来的Linux驱动开发的复杂度,以及设备热拔插处理、电源管理等,Linux内核提出了设备模型(也称作Driver Model)的概念。设备模型将硬件设备归纳、分类,然后抽象出一套标准的数据结构和接口。驱动的开发,就简化为对内核所规定的数据结构的填充和实现。 http://www. 阅读全文
posted @ 2025-03-23 18:46 天刚刚破晓 阅读(120) 评论(0) 推荐(0)
摘要:设备树格式 / { 属性名 = "属性值","可以多个"; 标签(通常是节点名简写): 字节点名@地址 { 属性名 = "属性值"; 属性名 = [0x00 0x01]; 属性名 = <1 2 3>; }; } &标签 { 属性名 = "向标签的节点追加内容"; }; 特殊节点: aliases { 阅读全文
posted @ 2025-03-09 17:12 天刚刚破晓 阅读(99) 评论(0) 推荐(0)
摘要:为什么要内核同步 防止共享资源的并发访问导致数据不一致 并发执行的来源 中断 进程切换 多处理器 内核同步的方法 主要就是 信号量 和 自选锁 两种加锁方式 原子操作 内核中定义了原子量类型atomic_t, 可以通过下面的函数来操作原子量 原子数操作 说明 ATOMIC_INIT(int) 初始化 阅读全文
posted @ 2025-03-03 20:43 天刚刚破晓 阅读(62) 评论(0) 推荐(0)
摘要:如何往内核里添加一个字符驱动程序 分配设备号 前置: * 设备号分为主设备号和次设备号. * 主设备号是分配给设备驱动程序的唯一标识符,用于标识设备所属的驱动程序。它告诉内核在访问设备时应该调用哪个驱动程序来处理请求. * 次设备号是与主设备号配合使用的较小标识符,用于区分同一主设备号下的不同设备实 阅读全文
posted @ 2025-02-28 21:36 天刚刚破晓 阅读(46) 评论(0) 推荐(0)
摘要:什么是 Linux 模块 Linux模块,也就是可加载内核模块(LKMs),允许在运行时动态加载到内核中。 这说明两点: 是内核模块, 也就是说是内核的一部分, 只能依赖内核的接口, 且必须遵循内核的规则. 运行时可加载, 这避免了重复编译内核和重启系统. 并且内核和模块是分开的, 部署更灵活. 同 阅读全文
posted @ 2025-02-24 15:42 天刚刚破晓 阅读(93) 评论(0) 推荐(0)
摘要:主要记录大致步骤. qemu 安装 https://www.qemu.org/download/ wget https://download.qemu.org/qemu-9.2.1.tar.xz tar --xz --get --file qemu-9.2.1.tar.xz cd qemu-9.2. 阅读全文
posted @ 2025-02-19 21:15 天刚刚破晓 阅读(378) 评论(0) 推荐(0)