自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(256)
  • 资源 (5)
  • 收藏
  • 关注

转载 linux设备模型之bus,device,driver分析二

===============================本文系本站原创,欢迎转载!转载请注明出处:http://www.cnblogs.com/gdt-a20===============================  上篇分析了bus,driver的注册过程,这篇主要分析device的注册,并总结给出个流程图。三、device的注册   还是照例先看一下devi

2012-09-30 02:40:21 1182

转载 linux设备模型之bus,device,driver分析一

===============================本文系本站原创,欢迎转载!转载请注明出处:http://www.cnblogs.com/gdt-a20===============================    内核的开发者将总线,设备,驱动这三者用软件思想抽象了出来,巧妙的建立了其间的关系,使之更形象化。结合前面所学的知识,总的来说其三者间的关系为b

2012-09-30 02:38:12 1191

转载 linux设备模型深探

------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/------------------------------------------一:前言Linux设备模型是一个极其复杂的结构体系,在编写驱动程序的时候,通常不会用到这方面的东西,但是。理解

2012-09-30 01:54:26 848

转载 Linux设备模型之platform总线

先注册platform_device,然后再注册platform_driver,如果platform_device的名字和platform_driver的名字匹配上,那么platform_driver将会调用probe()函数。当然,如果platform_device和其他子系统(比如i2c子系统,它们也有probe函数)配合使用的话,也可以不注册platform_driver,我们有其他子系统的

2012-09-30 01:47:13 647

转载 Linux设备模型之input子系统详解

------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/------------------------------------------一:前言在键盘驱动代码分析的笔记中,接触到了input子系统.键盘驱动,键盘驱动将检测到的所有按键都上报给了input

2012-09-30 01:43:31 1187

转载 Linux设备驱动之I2C架构分析

一:前言I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线.另外,I2C是一种多主机控制总线.它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以.而I2C是基于multi master机制.一同总线上可允许多个master.关于I2C协议的知识,这里不再赘述.可自行

2012-09-30 01:36:12 1210

转载 I2C_BOARD_INFO{} / i2c_register_board_info() / i2c_match_id() / probe()

233/**234 * struct i2c_board_info - template for device creation235 * @type: chip type, to initialize i2c_client.name236 * @flags: to initialize i2c_client.flags237 * @addr: stored in i2c_cli

2012-09-28 16:06:30 15270

原创 The Linux Kernel API

http://docs.huihoo.com/linux/kernel/2.6.26/kernel-api/index.html

2012-09-28 15:39:05 814

转载 i2c_check_functionality() / 如何在驱动中调用i2c设配器帮我们完成数据传输

if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA| I2C_FUNC_SMBUS_WORD_DATA))//判定适配器能力                goto exit;i2c_check_functionality用来判定设配器的能力,这一点非常重要。你也可以直接查看对应设配器的能力,如stati

2012-09-28 15:34:30 18231

转载 i2c_master_recv()/i2c_msg {}

inti2c_master_recv(struct i2c_client *client, char *buf ,int count)  int i2c_master_recv(struct i2c_client *client, char *buf ,int count)//从芯片中读取数据,并存入buf{    struct i2c_adapter *adap=client->

2012-09-28 15:31:00 3914

转载 linux

i2c_check_functionality()实例解析linux内核I2C体系结构(2)http://www.embedu.org/Column/Column213.htm我对linux理解之i2c 二http://blog.csdn.net/sadamoo/article/details/7968123

2012-09-24 21:11:17 504

转载 linux设备模型之i2c子系统

I2c子系统将i2c控制器(i2c寄存器所在的那块电路)抽象出来,用adapter(适配器)这个结构来描述,可以说一个适配器就代表一条i2c总线,而挂接在i2c总线上的设备是用client这个结构体来表述,另外i2c_bus上的设备链表挂接的不单单是连接的这条i2c上的client,同样adapter也作为一个设备挂在其所在的i2c_bus,也就是说控制器和设备都作为i2c_bus上的设备连接在设

2012-09-23 23:47:47 2173

转载 struct device / device_driver 结构体

一、定义:linux/include/linux/device.hstruct device {        struct klist     klist_children;        struct klist_node   knode_parent;      /* node in sibling list */        struct klist_

2012-09-23 23:26:45 7308

转载 i2c struct i2c_adapter /i2c_client /i2c_driver /i2c_add_driver() /i2c_register_driver()

1 struct i2c_adapter { 2 struct module *owner; 3 unsigned int id; 4 unsigned int class; // 适配器支持的类型,如传感器,eeprom等 5 const struct i2c_algorithm *algo;

2012-09-23 23:25:54 2323

转载 8张图片让你的emacs水平从走到飞

您也可以参考其他几篇相关的技术图片文章,相信看了以后您对各种工具一定会有更深入的了解和掌控:1. Some useful technical pictures2. vim_mind_mapping3. Vim代码折叠简介4. Gvim设置启动窗口和字体以及配色方案推荐可能大多数人更喜欢用vi,会说vi有多么多么的好,但是实际上emacs也同样的无比强大。只不过正

2012-09-23 13:38:03 1385

转载 linux内核可装载模块(lkm)传参机制 module_param()/module_param_string()

对于如何向模块传递参数,Linux kernel 提供了一个简单的框架。其允许驱动程序声明参数,并且用户在系统启动或模块装载时为参数指定相应值,在驱动程序里,参数的用法如同全局变量。  使用下面的宏时需要包含头文件。  通过宏module_param()定义一个模块参数:  module_param(name, type, perm);  name既是用户看到的参数

2012-09-13 17:01:21 12544

转载 class_create(),device_create自动创建设备文件结点

class_create(),device_create自动创建设备文件结点从linux 内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一 点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_c

2012-09-06 14:53:44 815

转载 Linux 设备驱动模型中的class(类)

首先,想说明一下,促使我研究class(类)的是因为它能够自动创建/dev下的设备节点。当然class还有其另外的作用,且自动创建设备节点的还有udev系统,udev是处于用户空间的,其自动创建设备节点也是依赖于sysfs文件系统中提供的class类,我有个问题,如果我的内核没有移植好udev系统,只是利用class(类),能不能够自动创建设备节点呢???针对这样一个问题,想写这个文章理清理清一下

2012-09-03 15:44:39 634

转载 I2C

i2c_add_driver函数用法 http://wuyidaxuezhb.blog.163.com/blog/static/185337391201211133547701/Linux I2C驱动完全分析(一)http://www.cnblogs.com/armlinux/archive/2011/04/30/2390827.html

2012-08-30 20:45:18 720

转载 Linux设备驱动之Ioctl控制

大部分驱动除了需要具备读写设备的能力之外,还需要具备对硬件控制的能力。 一、在用户空间,使用ioctl系统调用来控制设备,原型如下:int ioctl(int fd,unsigned long cmd,...);/*fd:文件描述符cmd:控制命令...:可选参数:插入*argp,具体内容依赖于cmd*/  用户程序所作的只是通过命令码告诉驱动程序它

2012-08-22 19:01:17 685

转载 scull工作过程

scull(simple character utility for loading localities,"区域装载的简单字符工具")  是一个操作内存区域的字符设备驱动程序,这片内存区域就相当于一个字符设备。  scull的优点在于他不和任何硬件相关,而只是操作从内核分配的一些内存。任何人都可以编译和运行scull,而且还看看可以将scull移植到linux支持的所有计算机平台上。

2012-08-21 15:56:58 907

原创 原子操作 atomic_cmpxchg()/Atomic_read()/Atomic_set()/Atomic_add()/Atomic_sub()/atomic_clear_mask()

所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位。因此这里的原子实际是使用了物理学里的物质微粒的概念。原子操作需要硬件的支持,因此是架构相关的,其API和原子类型的定义都定义在内核源码树的include/asm/atomic.h文件中,它们都使用汇编语言实现,因为C语言并不能实现这样的操作。原子操作主要用于实

2012-08-21 14:55:55 21099 1

转载 字符设备 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()

函数原型:  int alloc_chrdev_region(dev_t *dev,  unsigned int -firstminor,   unsigned int -count,   char *name)头文件 : 函数功能:  动态分配设备编号函数参数说明:  该函数需要传递给它指定的第一个次设备号firstminor(一般为0)和要分配的设备

2012-08-19 14:50:31 1236

转载 Linux字符驱动中动态分配设备号与动态生成设备节点

在驱动程序中初始化入口函数中,向内核注册一个设备后,往往要注册一个类例如static int __init mydriver_init(void) //驱动程序的初始化{     ……    MYDRIVER_Major = register_chrdev(0, DEVICE_NAME, &mydriver_fops); //向内核注册一个设备,返回值为注册的主设备号

2012-08-14 22:25:57 1934

转载 Android中HAL如何向上层提供接口总结

参考文献:http://blog.csdn.net/luoshengyang/article/details/6573809http://blog.csdn.net/hongtao_liu/article/details/6060734建议阅读本文时先浏览以上两篇文章,本文是对上两篇文章在HAL对上层接口话题的一个总结.1 什么是HALHAL的全称是

2012-08-08 15:52:52 796

转载 android

http://www.armfans.net/redirect.php?fid=36&tid=2398&goto=nextoldsethttp://www.cnledw.com/blog/1284174/article-46850.html

2012-08-07 21:17:14 396

转载 Android HAL实例解析(3)

5、第二种方法:经过Manager调用service    HAL、JNI两层和第一种方法一样,所以后面只分析其他的层次。(1)Manager (属于Framework层)    APP通过这个Manager和service通讯。文件:mokoid-read-only /frameworks/base/core/java/mokoid/hardware/LedMan

2012-08-07 21:14:42 764

转载 Android HAL实例解析(2)

4、第一种方法:直接调用service方法的实现过程    下面分析第一种方法中,各层的关键代码。(1)HAL层    一般来说HAL moudle需要涉及的是三个关键结构体:struct hw_module_t;struct hw_module_methods_t;struct hw_device_t;    下面结合代码说明这3个结构的用

2012-08-07 21:13:32 740

转载 Android HAL实例解析(1)

一、概述    本文希望通过分析台湾的Jollen的mokoid 工程代码,和在s5pc100平台上实现过程种遇到的问题,解析Andorid HAL的开发方法。     二、HAL介绍    现有HAL架构由Patrick Brady (Google) 在2008 Google  I/O演讲中提出的,如下图。      Android的H

2012-08-07 20:43:45 875

转载 cdev_alloc/cdev_init、cdev_add、cdev_del

内核中每个字符设备都对应一个 cdev结构的变量,下面是它的定义:linux-2.6.22/include/linux/cdev.hstruct cdev {struct kobject kobj;          // 每个 cdev都是一个 kobjectstruct module *owner;       //指向实现驱动的模块const struct file_op

2012-08-07 14:26:54 11017 1

转载 Android下的Android.mk文件

3rdparty/atv/led/special/driver/Android.mk+led_test.c./mk sp8810ga u adr 3rdparty/atv/special/driver   编译出来的可执行文件位于 out/target/product/hsdroid/system/bin 目录下。LOCAL_MODULE_TAGS 选项说明LOCAL_MODULE_T

2012-08-06 19:21:27 1017

原创 cdev、file operations 结构体

1、实现 cdev、file operations 结构体2、申请设备号:alloc_chrdev_region(...)3、为 cdev 申请空间 kmalloc(sizeof(struct cdev),GFP_KERNEL)4、关联 cdev 、file operations , cdev_init(&dev->cdev,&file_operations)5、关联设备号和cde

2012-08-03 11:42:58 1250

转载 cdev结构 and MKDEV

MKDEV 功能:将主设备号和次设备号转换成dev_t类型cdev结构在Linux2.6内核中一个字符设备用cdev结构来描述,其定义如下:struct cdev {        struct kobject kobj;        struct module *owner;   //所属模块        const struct file_operations*

2012-08-02 12:43:22 11812 2

转载 Unix编程之size_t、ssize_t

对于赶时间的朋友,只看第一段就好了。   首先,我非常肯定以及确定的告诉你ssize_t是有符号整型,在32位机器上等同与int,在64位机器上等同与long int,有没有注意到,它和long数据类型有啥区别?其实就是一样的。size_t 就是无符号型的ssize_t,也就是unsigned long/ unsigned int (在32位下),不同的编译器或系统可能会有区别,主要是因为

2012-08-02 09:37:21 807

转载 在linux下如何将ttyS0改成别的号,比如ttyS4什么的,我的系统只有一个串口。

不明白楼主为什么要这样做,不过是有办法的。ttyS0只是代表一个设备节点,它存在主设备号和次设备号。一个设备节点包含了这两个设备号,Linux系统通过这两个号唯一的确定一个驱动实例。一个实际存在的串口只能够存在一个驱动实例。大多数的驱动实例只支持单一现成的读写操作,所以不允许多个程序同时打开设备文件,典型的一种就是串口,它只允许一个程序打开。一个驱动实例对应一组唯一的主设备号和次设备号

2012-08-01 23:29:53 6747 1

转载 电容触摸屏

http://hi.baidu.com/god_sperm/blog/item/2aaac228e8a1ece8e7cd400a.html

2012-07-30 15:27:34 748

转载 Android init.rc

android启动过程中init.c文件分析http://blog.csdn.net/yinwei520/article/details/6591015  在Android中使用启动脚本init.rc,可以在系统的初始化过程中进行一些简单的初始化操作。这个脚本被直接安装到目标系统的根文件系统中,被init可执行程序解析。 init.rc是在init启动后被执行的启动

2012-07-26 23:30:30 666

原创 创建CTP服务

tpon bootinsmod /system/sps/sprd_multi_tp/ko/sprd_multi_tp.koservice ctpcali /system/bin/ctpcaliuser rootoneshot

2012-07-26 11:33:49 607

转载 电阻式触摸屏的驱动程序和详细注释

http://os.chinaunix.net/a2009/1127/998/000000998949.shtmlhttp://blog.chinaunix.net/uid/22935566/frmd/105748.htmlhttp://wenku.baidu.com/view/1297b11ca8114431b90dd8a4.html#include #include

2012-07-11 20:43:06 864

原创 gpio_direction_output 与 gpio_set_value

gpio_set_value(port_num,0/1) 一般只是在这个GPIO口的寄存器上写上某个值,至于这个端口是否设置为输出,它就管不了!而gpio_direction_output (port_num,0/1),在某个GPIO口写上某个值之后,还会把这个端口设置为输出模式。 因此,有人也许就会建议,把gpio_set_value这个函数直接去掉不用,是否可以,显然是可以

2012-07-11 20:23:16 854

slickedit color theme solarized

slickedit color theme solarized

2013-11-27

slickedit bitstream vera fonts

slickedit bitstream vera fonts

2013-11-27

slickedit v18 18.0.1.2 序列号 破解

亲测windows7 32,ubuntu12.0.4 64 内附序列号生成软件 read_me.txt为详细使用方法。

2013-11-26

slickedit 2013 v18 win linux mac

slickedit 2013 v18 (18.0.1.2) 包含win mac linux 32/64 但个人使用的是linux 64位的 se_18000102_linux64.tar.gz

2013-11-22

UNIX环境高级编程

UNIX环境高级编程(第二版中文) 影印版

2012-12-24

空空如也

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

TA关注的人

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