自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

转载 韦东山Linux视频驱动第2期》学习总结之第17课(USB设备驱动程序)

2012-02-29 20:02:44分类: LINUX驱动源码: usbmouse_as_key.zip   diff后结果: usbmouse.zip   平台:友善之臂Tiny6410,Linux2.6.38内核本文参考韦东山视频第二期的17课,把内核自带的usbmouse.c驱动改为可以把鼠标左、右、中键分别作为字符"l"、"s"、回车的

2014-12-31 18:52:36 2425

转载 键盘扫描码

键盘扫描码  Esc1 F159F260F361F462 F563F664F765F866 F967F1068F1187F1288` 411   22 33 44 55 6

2014-12-31 18:39:07 2277

转载 Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化

我们知道,SPI数据传输可以有两种方式:同步方式和异步方式。所谓同步方式是指数据传输的发起者必须等待本次传输的结束,期间不能做其它事情,用代码来解释就是,调用传输的函数后,直到数据传输完成,函数才会返回。而异步方式则正好相反,数据传输的发起者无需等待传输的结束,数据传输期间还可以做其它事情,用代码来解释就是,调用传输的函数后,函数会立刻返回而不用等待数据传输完成,我们只需设置一个回调函数,传输完成

2014-12-31 10:53:07 1010

转载 Linux SPI总线和设备驱动架构之三:SPI控制器驱动

通过第一篇文章,我们已经知道,整个SPI驱动架构可以分为协议驱动、通用接口层和控制器驱动三大部分。其中,控制器驱动负责最底层的数据收发工作,为了完成数据的收发工作,控制器驱动需要完成以下这些功能:1.    申请必要的硬件资源,例如中断,DMA通道,DMA内存缓冲区等等;2.    配置SPI控制器的工作模式和参数,使之可以和相应的设备进行正确的数据交换工作;3.    向通用接口

2014-12-31 10:52:06 1091

转载 Linux SPI总线和设备驱动架构之二:SPI通用接口层

通过上一篇文章的介绍,我们知道,SPI通用接口层用于把具体SPI设备的协议驱动和SPI控制器驱动联接在一起,通用接口层除了为协议驱动和控制器驱动提供一系列的标准接口API,同时还为这些接口API定义了相应的数据结构,这些数据结构一部分是SPI设备、SPI协议驱动和SPI控制器的数据抽象,一部分是为了协助数据传输而定义的数据结构。另外,通用接口层还负责SPI系统与Linux设备模型相关的初始化工作。

2014-12-31 10:46:04 1219

转载 Linux SPI总线和设备驱动架构之一:系统概述

SPI是"Serial Peripheral Interface" 的缩写,是一种四线制的同步串行通信接口,用来连接微控制器、传感器、存储设备,SPI设备分为主设备和从设备两种,用于通信和控制的四根线分别是:CS    片选信号SCK  时钟信号MISO  主设备的数据输入、从设备的数据输出脚MOSI  主设备的数据输出、从设备的数据输入脚因为在大多数情况下,CPU或SOC一侧

2014-12-31 10:44:53 945

转载 基于S3C2440的嵌入式Linux驱动——SPI子系统解读(四)

本系列文章对Linux设备模型中的SPI子系统进行讲解。SPI子系统的讲解将分为4个部分。   第一部分,将对SPI子系统整体进行描述,同时给出SPI的相关数据结构,最后描述SPI总线的注册。基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一)   第二部分,该文将对SPI的主控制器(master)驱动进行描述。          基于S3C2440的嵌入式Linux

2014-12-30 18:23:05 1254

转载 基于S3C2440的嵌入式Linux驱动——SPI子系统解读(三)

分类: 嵌入式Linux设备驱动解读 Linux SPI子系统2012-07-16 14:49 1747人阅读 评论(0) 收藏 举报嵌入式linuxcstructclass该系列文章将分为四个部分:   第一部分,将对SPI子系统整体进行描述,同时给出SPI的相关数据结构,最后描述SPI总线的注册。基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一)

2014-12-30 18:21:21 1084

转载 基于S3C2440的嵌入式Linux驱动——SPI子系统解读(二)

该系列文章将分为四个部分:   第一部分,将对SPI子系统整体进行描述,同时给出SPI的相关数据结构,最后描述SPI总线的注册。基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一)   第二部分,即本篇文章,该文将对SPI的主控制器(master)驱动进行描述。   第三部分,该文将对SPI设备驱动,也称protocol 驱动,进行讲解。基于S3C2440

2014-12-30 18:20:12 1458

转载 基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一)

本文将介绍SPI子系统。内核版本为2.6.30。如有错误欢迎指正。预备知识要求:1.SPI总线                       2. platfrom平台                       3. sysfs子系统                       4. 阅读过LDD3第3,5,6,7,9,10,11章的内容。NOTE:如果

2014-12-30 18:18:03 2468

转载 linux驱动中时间相关问题

1. linux世界里的时间 http://blog.csdn.net/freedom1013/archive/2007/03/13/1528310.aspx 通常,操作系统可以使用三种方法来表示系统的当前时间与日期:①最简单的一种方法就是直接用一个64位的计数器来对时钟滴答进行计数。②第二种方法就是用一个32位计数器来对秒进行计数,同时还用一个32位的辅助计数器对时钟滴答

2014-12-16 10:33:26 1121

转载 linux内核部件分析(三)——记录生命周期的kref

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

2014-12-09 15:49:19 686

转载 linux内核部件分析(二)——原子性操作atomic_t

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

2014-12-09 15:47:49 1389

转载 linux内核部件分析(一)——连通世界的list

在linux内核中,有一种通用的双向循环链表,构成了各种队列的基础。链表的结构定义和相关函数均在include/linux/list.h中,下面就来全面的介绍这一链表的各种API。[cpp] view plaincopyprint?struct list_head {      struct list_head *next, *prev;  

2014-12-09 15:46:22 814

ARM平台常用性能测试方法.pdf

ARM平台常用性能测试方法.pdf

2022-11-29

空空如也

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

TA关注的人

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