Linux设备驱动之路
文章平均质量分 68
为何这么难
这个作者很懒,什么都没留下…
展开
-
cdev_alloc
内核中每个字符设备都对应一个 cdev结构的变量,下面是它的定义: linux-2.6.22/include/linux/cdev.h struct cdev { struct kobject kobj; // 每个 cdev都是一个 kobject struct module *owner; //指向实现驱动的模块 const struct file_op翻译 2013-10-25 15:08:07 · 1497 阅读 · 0 评论 -
register_chrdev_region
要使用 I/O 内存首先要申请 , 然后要映射 , 而要使用 I/O 端口首先要申请 , 或者叫请求 , 对于 I/O 端口的请求意思是让内核知道你要访问这个端口 , 这样内核知道了以后它就不会再让别人也访问这个端口了 . 毕竟这个世界僧多粥少啊 . 申请 I/O 端口的函数是 request_region, 这个函数来自 include/lin原创 2013-10-25 15:12:51 · 603 阅读 · 0 评论 -
I/O内存与硬件通信
一、与硬件进行通信的原理 每个外设都是通过读写它芯片上的寄存器来控制。大部分时间一个设备有几个寄存器, 并且是在连续地址空间上存取它们,,这个空间在内存地址空间或者在 I/O 地址空间。在硬件级别上, 内存地址空间区域和 I/O地址空间区域没有概念上的区别:它们都是通过在地址总线和控制总线上发出电信号来存取(即, 读写信号)并且读自或者写到数据总线。 二、使用 I/O 地址空间与硬件进行通转载 2013-11-20 20:51:15 · 1074 阅读 · 0 评论 -
linux驱动编译时make -C M= 解释
Makefile为 PWD = $(shell pwd) KERNEL_SRC =/usr/src/linux-3.0/ obj-m :=test.o module-objs : =test.o all: $(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules clean:翻译 2013-11-25 21:42:48 · 1370 阅读 · 0 评论