自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Linux Driver,Go!

Linux Driver,Go!

  • 博客(47)
  • 资源 (3)
  • 收藏
  • 关注

原创 PCI设备的地址空间

PCI设备的地址空间      PCI设备上有三种地址空间:PCI的I/O空间、PCI的存储空间和PCI的配置空间。CPU可以访问PCI设备上的所有地址空间,其中I/O空间和存储空间提供给设备驱动程序使用,而配置空间则由Linux内核中的PCI初始化代码使用。内核在启动时负责对所有PCI设备进行初始化,配置好所有的PCI设备,包括中断号以及I/O基址,并在文件/proc/pci中列出所有找到的

2011-10-23 20:13:07 915

原创 CHA1:第一个驱动

第一个驱动demo.h#ifndef _DEMO_H_#define _DEMO_H_#include /* needed for the _IOW etc stuff used later *//******************************

2011-07-25 15:09:24 744

原创 好!今天开始研读《嵌入式Linux驱动程序设计从入门到精通》!

如题!!!!主编:冯国进清华大学出版社。

2011-07-22 14:12:59 1241

原创 【Linux设备驱动程序(第三版)】----高速缓存

【Linux设备驱动程序(第三版)】----高速缓存HelloWorld.c#include #include #include #include //file_operations, file#include #include #include #i

2011-07-08 17:05:34 739

原创 【Linux设备驱动程序(第三版)】----tasklet

【Linux设备驱动程序(第三版)】----taskletjit.c#include #include #include #include #include #include #include #include #include #includ

2011-07-08 15:07:56 935

原创 【Linux设备驱动程序(第三版)】----定时器:Timer

【Linux设备驱动程序(第三版)】----定时器:Timerjit.c#include #include #include #include #include #include #include #include #include #incl

2011-07-08 14:40:47 1783

原创 【Linux设备驱动程序(第三版)】----延迟:超时(schedule_timeout)

【Linux设备驱动程序(第三版)】----延迟:超时(schedule_timeout)jit.c#include #include #include #include #include #include #include #include #i

2011-07-08 13:56:30 4804 1

原创 【Linux设备驱动程序(第三版)】----延迟:超时(wait_event_interruptible_timeout)

【Linux设备驱动程序(第三版)】----延迟:超时(wait_event_interruptible_timeout)jit.c#include #include #include #include #include #include #include

2011-07-08 13:50:58 4885

原创 【Linux设备驱动程序(第三版)】----延迟:让出处理器

【Linux设备驱动程序(第三版)】----延迟:让出处理器jit.c#include #include #include #include #include #include #include #include #include #inclu

2011-07-08 13:39:49 632

原创 【Linux设备驱动程序(第三版)】----忙等待

【Linux设备驱动程序(第三版)】----延迟:忙等待jit.c #include #include #include #include #include #include #include #include #include #includ

2011-07-08 13:32:49 1502

原创 【Linux设备驱动程序(第三版)】----获取当前时间

【Linux设备驱动程序(第三版)】----获取当前时间jit.c #include #include #include #include #include #include #include #include #include #includ

2011-07-08 12:06:37 2633

原创 【Linux设备驱动程序(第三版)】----设备文件的访问控制:独享设备

【Linux设备驱动程序(第三版)】----设备文件的访问控制:独享设备complete.c#include #include #include #include #include #include //file_operations, file#incl

2011-07-08 10:49:22 947

原创 【Linux设备驱动程序(第三版)】----异步通知

【Linux设备驱动程序(第三版)】----异步通知scullp.c#include #include #include #include #include //file_operations, file#include //proc#include

2011-07-08 10:13:32 587

原创 【Linux设备驱动程序(第三版)】----阻塞与非阻塞型操作

【Linux设备驱动程序(第三版)】----阻塞与非阻塞型操作pipi.c#include #include #include #include #include //file_operations, file#include //proc#include

2011-07-08 09:56:12 589

原创 【Linux设备驱动程序(第三版)】----简单休眠 Sleepy

【Linux设备驱动程序(第三版)】----简单休眠 Sleepysleepy.c#include #include #include #include #include #include //file_operations, file#include

2011-07-07 15:47:23 764

原创 【Linux设备驱动程序(第三版)】----ioctl

【Linux设备驱动程序(第三版)】----ioctlscull.c#include #include #include #include //file_operations, file#include //cdev#include //copy_to_use

2011-07-07 14:27:37 638

原创 【Linux设备驱动程序(第三版)】----完成量completion

【Linux设备驱动程序(第三版)】----完成量completioncomplete.c#include #include #include #include #include #include //file_operations, file#inclu

2011-07-07 10:17:47 741

原创 【Linux设备驱动程序(第三版)】----驱动调试Proc

【Linux设备驱动程序(第三版)】----驱动调试ProcScull.c#include #include #include #include //file_operations, file#include //cdev#include

2011-07-06 17:14:02 1352

原创 【Linux设备驱动程序(第三版)】----Scull

【Linux设备驱动程序(第三版)】----ScullScull.c#include #include #include #include //file_operations, file#include //cdev#include //c

2011-07-06 16:39:26 893

原创 【Linux设备驱动程序(第三版)】----重要的数据结构

【Linux设备驱动程序(第三版)】----重要的数据结构1、file_operations:对文件操作的集合2、file:代表一个打开的文件。其中有一个指针成员指向file_operations结构3、inode:在内部表示文件。对单个文件,可能会有许多个表

2011-07-06 13:41:24 411

原创 【Linux设备驱动程序(第三版)】----模块参数

【Linux设备驱动程序(第三版)】----模块参数HelloWorldParam.c#include #include #include MODULE_LICENSE("Dual BSD/GPL");static char *whom

2011-07-06 12:08:30 687

原创 【Linux设备驱动程序(第三版)】----HelloWorld

HelloWorld.c#include #include MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_ALERT "Hello,

2011-07-06 10:34:42 537

转载 【转】Linux驱动修炼之道-LCD背光与gpio控制

  下图是LCD的引脚截图,GPG4是复用引脚,可以发送电源使能信号。GPIO的程序很简单,这里不再赘述。  驱动程序:#include #include #include #include #include #include #include #include #include int MYGPI

2011-06-30 14:39:00 1559

原创 在Linux下编译Windows版本的adb和fastboot

在Linux下编译Windows版本的adb和fastboot 1. 执行:apt-get install mingw32            安装了linux-windows交叉编译环境mingwin2. 执行:. build/envsetup.sh3. 执行choosecombo,选择各个参数            这两步设置了一些编译参数和环境变量,按照你正常编译and

2011-06-30 14:05:00 2232

转载 【转】Linux驱动修炼之道-按键

按键程序使用了驱动的很多知识。有中断,阻塞,等待队列,linux设备驱动模型等。使用中断处理的步骤是:向内核注册中断 实现中断处理函数。 安装中断的函数是:int request_irq(unsigned int irq, irqreturn_t (*handler) (int, void*, struct pt_regs *), unsigned lo

2011-06-30 11:22:00 627

转载 【转】Linux驱动修炼之道-流水灯

module.h包含可装载模块需要的大量符号和函数定义,包含init.h的目的是指定初始化和清除代码,struct file是在中定义的。注册字符设备使用int register_chrdev(unsigned int major, const char *name, struct file_operations *fops);移除字符设备使用int unregister_chrdev(unsig

2011-06-30 09:57:00 532

转载 【转】 Android转屏时禁止调用onCreate

Android转屏时禁止调用onCreateAndroid设备屏幕自动横竖旋转时,每次都会重新调用onCreate函数进行初始化操作,如果遇到加载数据量稍微大点的时候就需要等待很长时间,用户体验较差,其实可以通过配置AndroidManifest文件来改变程序的执行流程,从而避免旋屏时onCreate函数的多次调用。1.     修改AndroidManifest.xml文件,在activ

2011-06-24 10:08:00 1353

原创 理解kcm文件的意义

理解kcm文件的意义# keycode display number base caps fn caps_fn A A 2 a A # 0x00B

2011-06-22 14:49:00 2798 1

转载 CDMA、CDMA2000、WCDMA、GSM等有什么区别?

CDMA、CDMA2000、WCDMA、GSM等有什么区别CDMA,CDMA2000可以说是属于同一种网络,现在属于中国电信的3G网络,就是现在电信的天翼。WCDMA是联通的3G网络。移动3G网络则采用国产的TD-SCDMA.而GSM是目前移动和联通还在使用的2.5G的网络。

2011-06-21 15:28:00 13036 1

转载 【转】《 磁道、扇区和柱面 》

《 磁道、扇区和柱面 》当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。图1是一张磁盘片与一个磁头的放大图(图中夸张地放大了磁头相对于磁盘的尺寸,因此,也放大了磁道的宽度)。这些磁道用肉眼是根本看不到的,因为它们仅是盘面上以特殊方式磁化了的一些磁化区,磁盘上的信息便是沿着这样的轨道存放的。相邻磁道之间并不是紧挨着的,这是因为磁化单元相

2011-06-18 08:01:00 1034

转载 【转】Linux内核常用的一些宏的收集

Linux内核常用的一些宏的收集一、中断类:     1. 中断类型: 在request_irq(irq, handler, flags, devname, dev_id)中使用    #define SA_SHIRQ            共享中断(旧版本的,2.6.19之前的内核)    #define IRQF_SHARED         共享中断(新版本的)   

2011-06-16 16:36:00 485

转载 【转】嵌入式Linux之我行——LED驱动在2440上的实例开发

嵌入式Linux之我行——LED驱动在2440上的实例开发 一、开发环境主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand 编译器:arm-linux-gcc-4.3.2二、实现步骤1. 硬件原理图分析。由原理图得知LED电路是共阳极的,并分别由2440的GPB5、GPB6、GPB7、GPB8口控制的  2.

2011-06-16 15:46:00 1092

转载 【转】嵌入式Linux之我行——LCD背光驱动在2440上的实例开发

  嵌入式Linux之我行——LCD背光驱动在2440上的实例开发一、开发环境主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand 编译器:arm-linux-gcc-4.3.2二、实现步骤1. 硬件原理图分析。由原理图得知LCD的背光是由2440的GPG4口控制的 2. 编写背光驱动。文件名为my2440_back

2011-06-16 15:37:00 1702

原创 限制edittext的最大长度

限制edittext的最大长度EditText可以在XML和代码中设置字数限制。在XML中:Xml代码  android:maxLength=“50”  代码中:Java代码 editText.setFilters( new InputFilter[]{ new InputFilter.LengthFilter( 50 )});

2011-06-16 11:25:00 4399

转载 【转】中断触发方式的比较

中断触发方式的比较在这里对中断的触发方式进行介绍,不同的触发方式应用场合是不同的。一般中断分为电平触发和沿触发两种方式。    沿触发: 这是很最常见的触发方式,我们可以用数字电路的方法来解释它的特性。边触发应该应触发器来描述:  输入引脚(当作触发器的CLK) ----> 触发器------> 中断控制器 ,当输入引脚的相应的沿到来时,就会将触发器置1,并触发中断,触发器会一直保持电平1

2011-06-13 16:57:00 6857

原创 set_bit()

extern __inline__ int set_bit(int nr,long * addr);将addr的第nr位置为1 假设*addr = 0, nr = 3;则执行结果为1000(二进制数)

2011-06-12 18:55:00 3042

转载 【转】C语言静态函数库的制作和使用方法

C语言静态函数库的制作和使用方法一.库函数简介:            C语言中有一些函数会执行一些标准任务,可以事先对这些函数进行编译,然后将他们放置在一些特殊的目标代码文件中,这些目标代码文件称为库。库文件中的函数可以通过连接程序与应用程序进行链接,这样就不用在每次执行程序时都对这些通用的函数进行编译了。      标准的C函数库名称为libc,包含了诸如内存管理或者输入输出操作的基本

2011-06-12 17:35:00 905

转载 【转】对const关键字的理解

 对const关键字的理解    目前在进行C语言补习时,发现很多的同学对于const这个关键字的理解存在很大的误解。现在总结下对这个关键字理解上的误区,希望在以后的编程中,能够灵活使用const这个关键字。1、 const修饰的变量是常量还是变量    对于这个问题,很多同学认为const修饰的变量是不能改变,结果就误认为该变量变成了常量。那么对于const修饰的变量该如何理解那?

2011-06-12 16:58:00 518

转载 【转】Linux驱动中的platform

Linux驱动中的platform      从Linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device 和 platform_driver 。Linux 中大部分的设备驱动,都可以使用这套机制,设备用 platform_device 表示;驱动用 platform_driver 进行注册。       Linux platform driver 机制和传统的

2011-06-12 16:52:00 510

转载 【转】关于Linux静态库和动态库的分析

关于Linux静态库和动态库的分析1.什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。2.库的种类linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库的代

2011-06-12 14:27:00 521

浅谈 Linux 内核开发之 PCI 设备驱动

浅谈 Linux 内核开发之 PCI 设备驱动

2011-06-28

基于Android的手机通讯协议应用研究与实现

基于Android的手机通讯协议应用研究与实现

2011-06-28

Linux下PCI设备驱动程序开发

Linux下PCI设备驱动程序开发 Linux下PCI设备驱动程序开发

2011-06-28

空空如也

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

TA关注的人

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