驱动开发
文章平均质量分 77
Bin Watson
本人所有的文章都是免费公开的,如果你发现我某篇被设置成VIP可见,请告诉我!!我手动解开,CSDN吃相太难看!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设备树中的#address-cells和#size-cells
本文澄清了设备树中#address-cells和#size-cells属性的正确用法。根据Power_ePAPR规范,这两个属性仅用于定义子节点reg属性中地址和大小字段的格式,而非描述当前节点自身。通过具体示例说明,父节点的这些属性决定了其直接子节点reg的格式,而子节点内部定义的这些属性则用于其孙节点。特别以I2C总线为例,展示了总线控制器定义的地址单元数决定了从设备地址的表示方式。原创 2026-01-20 08:17:38 · 84 阅读 · 0 评论 -
Linux驱动开发学习笔记(三)中断处理(系统)
三个名词:中断处理程序(interrupt handle)中断服务例程(interrupt service routine,ISR)设备驱动程序(driver)一个中断处理程序,一般分为两部分,上部分(top half)和下(底)半部(bottom half)。为什么要这么分呢?当一个中断触发请求后,中断处理程序会被调用,内核为了防止re-entrance(重入)问题,会禁止所有处理器(all processors)中对应中断线(IRQ line)——相当于屏蔽中断。而且在中断上原创 2022-05-07 10:07:54 · 1254 阅读 · 0 评论 -
Linux驱动开发学习笔记(二)异步通知
应用层程序#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>#include <signal.h>#include <sys/types.h>#include <unistd.h>#include <fcntl.h>int fd;void my_signal_fun(int signu原创 2022-05-01 09:49:18 · 365 阅读 · 0 评论 -
Linux驱动开发学习笔记(一)被动等待poll的使用
当应用层调用了poll之后,会调用Linux下层的sys_poll函数(位于fs/select.c)asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds, long timeout_msecs){ s64 timeout_jiffies; if (timeout_msecs > 0) {#if HZ > 1000 /* We can only overflow if HZ > 10原创 2022-04-28 23:37:57 · 1177 阅读 · 0 评论
分享