自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 精解PCI Express---物理结构篇

物理结构篇在前两篇中,我们对PCI Express总线技术的基础知识及系统架构部分作了详细的介绍,本篇就要带大家认识PCI Express总的物理结构,以及常见的PCI Express设备,见识一下PCI Express设备的庐山真面目。  一、物理结构外观  PCI-Express接口标准更少的信号线更加有利于I/O子系统的改进,并且使新的系统模块更加方便加入。改进的设计包括

2013-07-25 15:42:48 1330

转载 精解PCI Express---系统架构篇

系统架构篇在上一篇我们了解了PCI Express总线的产生和技术优势,但要真正理解PCI Express总线技术的优越性还得从其结构本身说起,所以本篇就要全面介绍PCI Express总线的结构。  一、总体系统架构  在正式了解PCI Express串行链接物理和逻辑结构前,先来看一下PCI Express系统架构的方框图。你可以看到PCI Express连接器已被移植

2013-07-25 15:41:33 2029

转载 精解PCI Express---基础篇

基础篇随着Intel 800MHz FSB芯片组i875P的推出,Intel同时也向世人显示一个全新的总线技术即将推出,那就是由Intel首先提出并开发的3GIO总线。后来这一技术提交PCI-SIG(PCI特殊兴趣组织),由PCI-SIG改名为"CI Express",以标准的形式正式推出,目前的最新版本为v1.0。本连载就要带大家深入了解这一即将改变整个计算机系统结构、成为下一代总线标准

2013-07-25 15:40:40 2084

转载 PCI总线介绍

在处理器体系结构中,PCI总线属于局部总线,作为系统总线的延伸,其主要功能是联接外部设备。PCI总线设备具有独立的地址空间,即PCI总线地址空间,该空间与存储器地址空间通过HOST主桥隔离。处理器在访问PCI设备时,必须通过HOST主桥进行地址转换;而PCI设备在访问主存储器时也需要通过HOST主桥进行地址转换。PCI总线结构为树形结构,以HOST主桥为根节点,通过在PCI总线上加

2013-07-25 15:38:23 1443

转载 PCI - PCI概述

从1992年创立规范到如今,PCI总线已成为了计算机的一种标准总线。由PCI总线构成的标准系统结构如图一所示。 PCI总线取代了早先的ISA总线。当然与在PCI总线后面出现专门用于显卡的AGP总线,与现在PCI Express总线相比,速度要慢,但是PCI能从1992用到现在,说明他有许多优点,比如即插即用(Plug and Play)、中断共享等。从数据宽度上看,PCI总线有32bi

2013-07-25 15:37:24 2015

原创 PMIC driver on Android

http://www.qrsdev.com/forum.php?mod=viewthread&tid=1897&extra=page%3D1

2013-07-25 11:10:37 1125

原创 Battery driver on Android

http://www.qrsdev.com/forum.php?mod=viewthread&tid=1896&extra=page%3D1

2013-07-25 11:09:23 650

原创 Backlight driver on Android

http://www.qrsdev.com/forum.php?mod=viewthread&tid=1895&extra=page%3D1

2013-07-25 11:08:00 825

原创 强大无比的android智能开发平台--imx6Q+android4.x

本站即将打造一款强大无比的android智能开发平台,开源程度超越你想象!http://www.qrsdev.com/forum.php?mod=viewthread&tid=1672

2013-04-25 16:09:29 1976

转载 i2c 驱动编程接口 i2c_master_send 和 i2c_master_recv i2c_transfer

1、通信接口i2c发送或者接收一次数据都以数据包 struct i2c_msg 封装[cpp] struct i2c_msg {     __u16 addr;     // 从机地址     __u16 flags;    // 标志 #define I2C_M_TEN   0x0010  // 十位地址标志 #define I2C_M_RD    0x0001  /

2013-04-11 16:17:05 1081

原创 联咏科技MS300二维码识别在android平台上实现流程二

novatek实现底层的时候,它将实现细节封装成一个库了,留出来一个头文件。路径:mediatek/source/external/novatek/Novatek_Special_function_0.h我们引用的时候,包含该头文件,编译连接其共享库就可以使用头文件中提供的方法。我们大概看一下其库提供的方法如下:extern "C" unsigned int NovatekCustom

2012-11-05 11:48:55 674

原创 联咏科技MS300二维码识别在android平台上实现流程一

整体思想是这样的:       preview的时候侦测二维码,如果侦测到,提示客户图像中有二维码       capture的时候将二维码解析出来       无论preview侦测还是capture解析,都是通过callback机制将数据传回到上层,供app读取使用。下面我就该流程从上向下进行梳理分析:一,app层:      camera应用的Camera.java。

2012-11-05 11:47:30 934

原创 我对android理解之pmem

在android中,pmem是特地从内存中划出来的一块,给android的用户空间需要物理上连续的进程使用。我们首先分析pmem驱动。pmem使用的是platform bus注册的。1,device部分:struct platform_device mxc_android_pmem_device = {    .name = "android_pmem",    .id =

2012-10-25 10:26:45 1435

原创 imx51-linux的cpuinfo之分析

这两天客户提出来,我们的平板cat /proc/cpuinfo出来的信息中的serial怎么是0.客户就是上帝啊,没办法,分析找问题贝。我们先看一下目前的cat /proc/cpuinfo的信息:Processor       : ARMv7 Processor rev 5 (v7l)                                   BogoMIPS

2012-10-25 10:23:41 2750 2

原创 我对android理解之Binder

android使用binder作为进程间的通信工具。典型的应用是android的C/S机制,即client/service。使用这种机制有以下优势:    1,可扩展性    2,有效性,一个service可以有多个client    3,安全性,client和service运行在不同的进程中,即使client出问题,不会影响到service的运行我们今天以media_se

2012-09-12 10:29:57 689

原创 我对android理解之jni

这几天rfid基本调试差不多了,是一个真正的从零到有的搭建过程,完成了很有成就感。下面主要写一下rfid的jni部分。本次jni开发使用的是android的ndk工具。jni开发,个人觉得比较重要的一块是jni的数据结构。在开发过程中,在网上也找了很多资料。下面是比较好的jni数据结构解释资料:Andoird 中使用了一种不同传统Java JNI的方式来定义其native的函数

2012-09-05 10:18:30 853 3

原创 我对linux理解之alsa二

我们接着上一节:static int wm8994_probe(struct platform_device *pdev){    struct snd_soc_device *socdev = platform_get_drvdata(pdev);    struct snd_soc_codec *codec = wm8994_codec;    int ret = 0;

2012-08-29 13:56:11 1114

原创 我对linux理解之alsa一

我们以imx51为平台,去分析alsa的架构。有两个文件跟平台具体相关的:一个是跟cpu的音频接口相关的:sound/soc/imx/imx-3stack-wm8994.c;另一个是跟codec芯片有关的:sound/soc/codecs/wm8994.c我们先看imx-3stack-wm8994.c中的初始化:static int __init imx_3stack_init

2012-08-27 15:14:32 1426

原创 我对linux理解之v4l2

我们先看具体sensor slave怎么注册到v4l2的:static struct v4l2_int_ioctl_desc ov5642_ioctl_desc[] = {//ioctl与对应的序号联系在一起,在v4l2层将被转换成固定的名字    {vidioc_int_dev_init_num, (v4l2_int_ioctl_func *)ioctl_dev_init},

2012-08-23 11:06:38 2922 2

原创 我对linux理解之input 二

我们看下input从打开,到读写的过程:static const struct file_operations input_fops = {    .owner = THIS_MODULE,    .open = input_open_file,};static int __init input_init(void){......err = register_c

2012-08-16 10:22:08 1217

原创 我对linux理解之input一

我们先看下input的注册过程:input_register_device(input_dev):int input_register_device(struct input_dev *dev){    static atomic_t input_no = ATOMIC_INIT(0);    struct input_handler *handler;    const

2012-08-16 10:20:42 709

原创 我对linux理解之framebuffer

我们看下imx51的lcd控制器的驱动:int __init mxcfb_init(void){    int ret;    ret = platform_driver_register(&mxcfb_driver);    if (!ret)        register_early_suspend(&fbdrv_earlysuspend);    retur

2012-08-13 13:29:47 1450

原创 我对linux理解之spi

我们先看spi外设的设备注册:static struct mc13892_platform_data mc13892_plat = {    .init = mc13892_regulator_init,};static struct spi_board_info __initdata mc13892_spi_device = {    .modalias = "pmic_

2012-08-10 14:48:39 1114

原创 我对linux理解之i2c 二

我们下面开始分析i2c的通信,即读写过程。我们先看读函数,对应i2c core中的i2c_master_recv:int i2c_master_recv(struct i2c_client *client, char *buf ,int count){    struct i2c_adapter *adap=client->adapter;//通过client访问adapter

2012-08-10 14:45:50 1890

原创 我对linux理解之i2c一

i2c设备是非常普遍的一种设备,我们现在开始i2c子系统的分析。我们先从注册开始:static const struct i2c_device_id IT7260_ts_id[] = {    { IT7260_I2C_NAME, 0 },    { }    };static struct i2c_driver IT7260_ts_driver = {    .pro

2012-08-10 14:44:39 831

原创 我对linux理解之tty五

static ssize_t tty_write(struct file *file, const char __user *buf,                        size_t count, loff_t *ppos){    struct tty_struct *tty;    struct inode *inode = file->f_path.dentry-

2012-08-10 14:35:28 1122

原创 我对linux理解之tty四

我们上一节分析了tty_open,这一节我们分析tty_read。static ssize_t tty_read(struct file *file, char __user *buf, size_t count,            loff_t *ppos){    int i;    struct tty_struct *tty;    struct inode *

2012-08-10 14:33:30 2198 1

原创 我对linux理解之tty三

我们现在congtty core层的file operations开始分析。static const struct file_operations tty_fops = {    .llseek        = no_llseek,    .read        = tty_read,    .write        = tty_write,    .poll

2012-08-10 14:31:50 2566

原创 我对linux理解之tty二

我们在mxc_uart.c中还发现console的初始化:static int __init mxcuart_console_init(void){    register_console(&mxc_console);    return 0;}转而看register_console(&mxc_console):void register_console(struct

2012-08-09 15:59:14 1391

原创 我对linux理解之tty一

我们从具体的uart驱动开始追踪它的层次,我的系统是mx51,故从mxc_uart.c进行。1,初始化注册过程:static int __init mxcuart_init(void){    int ret = 0;    printk(KERN_INFO "Serial: MXC Internal UART driver\n");    ret = uart_reg

2012-08-09 15:56:05 1190

原创 我对linux的理解之device_register

/** * device_register - register a device with the system. * @dev: pointer to the device structure * * This happens in two clean steps - initialize the device * and add it to the system. The

2012-08-06 11:20:26 1017

原创 我对linux理解之driver_register

/** * driver_register - register driver with bus * @drv: driver to register * * We pass off most of the work to the bus_add_driver() call, * since most of the things we have to do deal with

2012-08-06 11:18:23 833

空空如也

空空如也

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

TA关注的人

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