- 博客(6)
- 资源 (9)
- 收藏
- 关注
转载 Linux驱动程序笔记5——usb概述2
struct usb_device { int devnum; //设备号,也称设备地址 char devpath[16]; u32 route; enum usb_device_state state; enum usb_device_speed speed; struct usb_tt *tt; int ttport; un
2013-11-10 23:06:56
642
转载 Linux驱动程序笔记5——usb驱动概述1
Usb的设备是非常复杂的,它由许多不同的逻辑单元组成,这些逻辑单元之间的关系可以简单地描述如下: l 设备(usb_device)通常具有一个或者更多的配置(usb_host_config) l 配置通常具有一个或者更多的接口(usb_interface) l 接口通常具有一个或者更多的设置 l 设置没有或者具有一个以上的端点(usb_host_endpoint) 各种机构体详细描述见i
2013-11-10 23:03:39
745
原创 Linux 驱动程序笔记4——内核定时器struct timer_list
内核中最终的计时资源是定时器。定时器用于定时器超时处理程序在未来某个特定时间点执行,或者周期性的轮询硬件的状态。Linux提供了内核定时器完成这类工作。 定时器的只需要执行一些初始化的操作,如:设置一个超时时间,指定超时要调用的函数,然后激活定时器就可以了。它的处理和工作队列还是有点类似的。和任务队列一样,内核定时器并不是周期运行,它在超时后自动销毁。因此,如果要实现周期轮询,就需要在定
2013-11-04 19:23:12
1091
转载 Linux 驱动程序笔记3--- 阻塞型字符设备驱动 --- O_NONBLOCK --- 非阻塞标志
阻塞: 在设计简单字符驱动程序时,要注意一个重要问题. 当一个设备无法立刻满足用户的读写请求时应当如何处理? 例如:调用 read 时没有数据可读,但以后可能会有; 或者一个进程试图向设备写入数据,但是设备暂时没有准备好接收数据. 应用程序通常不关心这种问题,应
2013-09-25 13:52:43
914
转载 Linux驱动程序笔记2
在驱动程序中,当多个线程同时访问相同的资源时(驱动程序中的全局变量是一种典型的共享资源),可能会引发"竞态",因此我们必须对共享资源进行并发控制。Linux内核中解决并发控制的最常用方法是自旋锁与信号量(绝大多数时候作为互斥锁使用)。 自旋锁与信号量"类似而不类",类似说的是它们功能上的相似性,"不类"指代它们在本质和实现机理上完全不一样,不属于一类。 自旋锁不会引起调用者睡眠
2013-09-22 20:49:17
613
原创 linux驱动程序笔记
一、 DECLARE_WAIT_QUEUE_HEAD() (name) -- 生成一个等待队列头wait_queue_head_t,名字为name ----------------------------------------------------------------- #define DECLARE_WAIT_QUEUE_HEAD (name)
2013-09-11 19:20:17
664
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人