自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (12)
  • 收藏
  • 关注

转载 设备驱动模型之device-driver

前面我们分析了device、driver、bus三种类型,主要是三者的注册与注销,在sysfs中的目录与属性文件创建等内容。本节就来详细分析下,在设备注册到总线上时,总线是如何为其寻找对应的驱动的;在驱动注册到总线上时,总线又是如何为其寻找对应的设备的。本节的实现代码集中在drivers/base/bus.c和drivers/base/dd.c中。先来回忆下,在device_registe

2011-11-28 13:48:48 100

转载 设备驱动模型之bus

前面我们分析了设备驱动模型中的device和driver,device和driver本来是不相关的东西,只因为bus的存在,才被联系到了一起。本节就来看看设备驱动模型中起枢纽作用的bus。本节的头文件在include/linux/device.h和drivers/base/base.h,实现代码主要在bus.c中。因为在bus中有很多代码时为了device找到driver或者driver找到dev

2011-11-28 13:48:21 406

转载 设备驱动模型之driver

上节我们分析设备驱动模型中的device,主要是drivers/base/core.c,可以说是代码量最大的一个文件。本节要分析的驱动driver,就要相对简单很多。原因也很简单,对于driver,我们能定义的公共部分实在不多,能再sysfs中表达的也很少。本节的分析将围绕drivers/base/driver.c,但头文件仍然是include/linux/device.h和drivers/bas

2011-11-28 13:47:49 353

转载 设备驱动模型之device

linux的设备驱动模型,是建立在sysfs和kobject之上的,由总线、设备、驱动、类所组成的关系结构。从本节开始,我们将对linux这一设备驱动模型进行深入分析。     头文件是include/linux/device.h,实现在drivers/base目录中。本节要分析的,是其中的设备,主要在core.c中。struct device {      struct devi

2011-11-28 13:47:16 610

转载 设备驱动模型的基石kobject

之前我们分析了引用计数kref,总结了sysfs提供的API,并翻译了介绍kobject原理及用法的文档。应该说准备工作做得足够多,kobject的实现怎么都可以看懂了,甚至只需要总结下API就行了。可我还是决定把kobject的实现代码从头分析一遍。一是因为kobject的代码很重要,会在设备驱动模型代码中无数次被用到,如果不熟悉的话可以说是举步维艰。二是为了熟悉linux的编码风格,为以后分析

2011-11-28 13:46:28 308

转载 更强的链表klist

前面我们说到过list_head,这是linux中通用的链表形式,双向循环链表,功能强大,实现简单优雅。可如果您认为list_head就是链表的极致,应该在linux链表界一统天下,那可就错了。据我所知,linux内核代码中至少还有两种链表能占有一席之地。一种就是hlist,一种就是本节要介绍的klist。虽然三者不同,但hlist和klist都可以看成是从list_head中发展出来的,用于特殊

2011-11-28 13:45:50 277

转载 记录生命周期的kref

kref是一个引用计数器,它被嵌套进其它的结构中,记录所嵌套结构的引用计数,并在计数清零时调用相应的清理函数。kref的原理和实现都非常简单,但要想用好却不容易,或者说kref被创建就是为了跟踪复杂情况下地结构引用销毁情况。所以这里先介绍kref的实现,再介绍其使用规则。kref的头文件在include/linux/kref.h,实现在lib/kref.c。闲话少说,上代码。str

2011-11-28 13:45:20 267

转载 原子性操作atomic_t

在任何处理器平台下,都会有一些原子性操作,供操作系统使用,我们这里只讲x86下面的。在单处理器情况下,每条指令的执行都是原子性的,但在多处理器情况下,只有那些单独的读操作或写操作才是原子性的。为了弥补这一缺点,x86提供了附加的lock前缀,使带lock前缀的读修改写指令也能原子性执行。带lock前缀的指令在操作时会锁住总线,使自身的执行即使在多处理器间也是原子性执行的。xchg指令不带lock前

2011-11-28 13:44:58 436

转载 连通世界的list

在linux内核中,有一种通用的双向循环链表,构成了各种队列的基础。链表的结构定义和相关函数均在include/linux/list.h中,下面就来全面的介绍这一链表的各种API。struct list_head {      struct list_head *next, *prev;  };  这是链表的元素结构。因为是循环链表,表头和表中节点都是这一结构。有pre

2011-11-28 13:44:16 230

tcp/ip sockets in c 源码

tcp/ip sockets in c 源码

2013-03-27

Lib.rar 根据Lua 5.1.4 生成的库

Lib.rar 根据Lua 5.1.4 生成的库 平台基于Visual Studio 2008

2010-07-15

Lua_C 实现Lua与C API互调

Lua_C 实现Lua与C API互调 平台基于Visual Studio 2008 是一个工程文件

2010-07-15

任意Mif文件生成器

将bmp图片转为mif文件 黑白图片转换为单色mif文件,如VGA实验 彩色图片转换为三色mif文件,在VGA上显示彩色图片 将二进制文件转为mif文件 将二进制文件按位转换为mif文件,如将中英文点阵字库转换为mif文件

2010-03-13

EDA_H22.rar

Quartus DSP Builder 破解 任务版本(Crack_Altera_6.0-9.1) license文件

2010-03-13

ModelSim+SE+6.5下载及安装步骤.doc

ModelSim+SE+6.5下载及安装步骤.doc 别处下载的转下

2010-03-10

ModelSim6_5 破解

真是的下个6.5的破解器还要5 6分,现在免费送,呵呵 ~~

2010-03-10

信号与系统课后习题答案

信号与系统课后习题答案成本(电子工业出版社) 段哲民主编

2010-03-08

通信原理_matlab

通信原理_matlab 基于MATLAB仿真计算

2010-03-08

FPGA工程师面试试题集锦

FPGA工程师面试试题集锦 1、同步电路和异步电路的区别是什么?(仕兰微电子) 2、什么是同步逻辑和异步逻辑?(汉王笔试)

2010-03-08

32阶FIR滤波器的FPGA实现

32阶FIR滤波器的FPGA实现论文 关键词: FIR 滤波器; FPGA ;并行分布式算法;Matlab ;Quartus Ⅱ

2010-03-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除