- 博客(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
946
原创 CHA1:第一个驱动
第一个驱动demo.h#ifndef _DEMO_H_#define _DEMO_H_#include /* needed for the _IOW etc stuff used later *//******************************
2011-07-25 15:09:24
773
原创 【Linux设备驱动程序(第三版)】----高速缓存
【Linux设备驱动程序(第三版)】----高速缓存HelloWorld.c#include #include #include #include //file_operations, file#include #include #include #i
2011-07-08 17:05:34
769
原创 【Linux设备驱动程序(第三版)】----tasklet
【Linux设备驱动程序(第三版)】----taskletjit.c#include #include #include #include #include #include #include #include #include #includ
2011-07-08 15:07:56
948
原创 【Linux设备驱动程序(第三版)】----定时器:Timer
【Linux设备驱动程序(第三版)】----定时器:Timerjit.c#include #include #include #include #include #include #include #include #include #incl
2011-07-08 14:40:47
1797
原创 【Linux设备驱动程序(第三版)】----延迟:超时(schedule_timeout)
【Linux设备驱动程序(第三版)】----延迟:超时(schedule_timeout)jit.c#include #include #include #include #include #include #include #include #i
2011-07-08 13:56:30
4828
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
4929
原创 【Linux设备驱动程序(第三版)】----延迟:让出处理器
【Linux设备驱动程序(第三版)】----延迟:让出处理器jit.c#include #include #include #include #include #include #include #include #include #inclu
2011-07-08 13:39:49
643
原创 【Linux设备驱动程序(第三版)】----忙等待
【Linux设备驱动程序(第三版)】----延迟:忙等待jit.c #include #include #include #include #include #include #include #include #include #includ
2011-07-08 13:32:49
1537
原创 【Linux设备驱动程序(第三版)】----获取当前时间
【Linux设备驱动程序(第三版)】----获取当前时间jit.c #include #include #include #include #include #include #include #include #include #includ
2011-07-08 12:06:37
2637
原创 【Linux设备驱动程序(第三版)】----设备文件的访问控制:独享设备
【Linux设备驱动程序(第三版)】----设备文件的访问控制:独享设备complete.c#include #include #include #include #include #include //file_operations, file#incl
2011-07-08 10:49:22
957
原创 【Linux设备驱动程序(第三版)】----异步通知
【Linux设备驱动程序(第三版)】----异步通知scullp.c#include #include #include #include #include //file_operations, file#include //proc#include
2011-07-08 10:13:32
598
原创 【Linux设备驱动程序(第三版)】----阻塞与非阻塞型操作
【Linux设备驱动程序(第三版)】----阻塞与非阻塞型操作pipi.c#include #include #include #include #include //file_operations, file#include //proc#include
2011-07-08 09:56:12
619
原创 【Linux设备驱动程序(第三版)】----简单休眠 Sleepy
【Linux设备驱动程序(第三版)】----简单休眠 Sleepysleepy.c#include #include #include #include #include #include //file_operations, file#include
2011-07-07 15:47:23
779
原创 【Linux设备驱动程序(第三版)】----ioctl
【Linux设备驱动程序(第三版)】----ioctlscull.c#include #include #include #include //file_operations, file#include //cdev#include //copy_to_use
2011-07-07 14:27:37
650
原创 【Linux设备驱动程序(第三版)】----完成量completion
【Linux设备驱动程序(第三版)】----完成量completioncomplete.c#include #include #include #include #include #include //file_operations, file#inclu
2011-07-07 10:17:47
750
原创 【Linux设备驱动程序(第三版)】----驱动调试Proc
【Linux设备驱动程序(第三版)】----驱动调试ProcScull.c#include #include #include #include //file_operations, file#include //cdev#include
2011-07-06 17:14:02
1368
原创 【Linux设备驱动程序(第三版)】----Scull
【Linux设备驱动程序(第三版)】----ScullScull.c#include #include #include #include //file_operations, file#include //cdev#include //c
2011-07-06 16:39:26
906
原创 【Linux设备驱动程序(第三版)】----重要的数据结构
【Linux设备驱动程序(第三版)】----重要的数据结构1、file_operations:对文件操作的集合2、file:代表一个打开的文件。其中有一个指针成员指向file_operations结构3、inode:在内部表示文件。对单个文件,可能会有许多个表
2011-07-06 13:41:24
418
原创 【Linux设备驱动程序(第三版)】----模块参数
【Linux设备驱动程序(第三版)】----模块参数HelloWorldParam.c#include #include #include MODULE_LICENSE("Dual BSD/GPL");static char *whom
2011-07-06 12:08:30
705
原创 【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
555
转载 【转】Linux驱动修炼之道-LCD背光与gpio控制
下图是LCD的引脚截图,GPG4是复用引脚,可以发送电源使能信号。GPIO的程序很简单,这里不再赘述。 驱动程序:#include #include #include #include #include #include #include #include #include int MYGPI
2011-06-30 14:39:00
1608
原创 在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
2265
转载 【转】Linux驱动修炼之道-按键
按键程序使用了驱动的很多知识。有中断,阻塞,等待队列,linux设备驱动模型等。使用中断处理的步骤是:向内核注册中断 实现中断处理函数。 安装中断的函数是:int request_irq(unsigned int irq, irqreturn_t (*handler) (int, void*, struct pt_regs *), unsigned lo
2011-06-30 11:22:00
668
转载 【转】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
545
转载 【转】 Android转屏时禁止调用onCreate
Android转屏时禁止调用onCreateAndroid设备屏幕自动横竖旋转时,每次都会重新调用onCreate函数进行初始化操作,如果遇到加载数据量稍微大点的时候就需要等待很长时间,用户体验较差,其实可以通过配置AndroidManifest文件来改变程序的执行流程,从而避免旋屏时onCreate函数的多次调用。1. 修改AndroidManifest.xml文件,在activ
2011-06-24 10:08:00
1368
原创 理解kcm文件的意义
理解kcm文件的意义# keycode display number base caps fn caps_fn A A 2 a A # 0x00B
2011-06-22 14:49:00
2828
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
13128
1
转载 【转】《 磁道、扇区和柱面 》
《 磁道、扇区和柱面 》当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。图1是一张磁盘片与一个磁头的放大图(图中夸张地放大了磁头相对于磁盘的尺寸,因此,也放大了磁道的宽度)。这些磁道用肉眼是根本看不到的,因为它们仅是盘面上以特殊方式磁化了的一些磁化区,磁盘上的信息便是沿着这样的轨道存放的。相邻磁道之间并不是紧挨着的,这是因为磁化单元相
2011-06-18 08:01:00
1069
转载 【转】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
494
转载 【转】嵌入式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
1105
转载 【转】嵌入式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
1721
原创 限制edittext的最大长度
限制edittext的最大长度EditText可以在XML和代码中设置字数限制。在XML中:Xml代码 android:maxLength=“50” 代码中:Java代码 editText.setFilters( new InputFilter[]{ new InputFilter.LengthFilter( 50 )});
2011-06-16 11:25:00
4413
转载 【转】中断触发方式的比较
中断触发方式的比较在这里对中断的触发方式进行介绍,不同的触发方式应用场合是不同的。一般中断分为电平触发和沿触发两种方式。 沿触发: 这是很最常见的触发方式,我们可以用数字电路的方法来解释它的特性。边触发应该应触发器来描述: 输入引脚(当作触发器的CLK) ----> 触发器------> 中断控制器 ,当输入引脚的相应的沿到来时,就会将触发器置1,并触发中断,触发器会一直保持电平1
2011-06-13 16:57:00
6937
原创 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
3053
转载 【转】C语言静态函数库的制作和使用方法
C语言静态函数库的制作和使用方法一.库函数简介: C语言中有一些函数会执行一些标准任务,可以事先对这些函数进行编译,然后将他们放置在一些特殊的目标代码文件中,这些目标代码文件称为库。库文件中的函数可以通过连接程序与应用程序进行链接,这样就不用在每次执行程序时都对这些通用的函数进行编译了。 标准的C函数库名称为libc,包含了诸如内存管理或者输入输出操作的基本
2011-06-12 17:35:00
943
转载 【转】对const关键字的理解
对const关键字的理解 目前在进行C语言补习时,发现很多的同学对于const这个关键字的理解存在很大的误解。现在总结下对这个关键字理解上的误区,希望在以后的编程中,能够灵活使用const这个关键字。1、 const修饰的变量是常量还是变量 对于这个问题,很多同学认为const修饰的变量是不能改变,结果就误认为该变量变成了常量。那么对于const修饰的变量该如何理解那?
2011-06-12 16:58:00
529
转载 【转】Linux驱动中的platform
Linux驱动中的platform 从Linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device 和 platform_driver 。Linux 中大部分的设备驱动,都可以使用这套机制,设备用 platform_device 表示;驱动用 platform_driver 进行注册。 Linux platform driver 机制和传统的
2011-06-12 16:52:00
524
转载 【转】关于Linux静态库和动态库的分析
关于Linux静态库和动态库的分析1.什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。2.库的种类linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库的代
2011-06-12 14:27:00
535
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人