- 博客(32)
- 收藏
- 关注
转载 精解PCI Express---物理结构篇
物理结构篇在前两篇中,我们对PCI Express总线技术的基础知识及系统架构部分作了详细的介绍,本篇就要带大家认识PCI Express总的物理结构,以及常见的PCI Express设备,见识一下PCI Express设备的庐山真面目。 一、物理结构外观 PCI-Express接口标准更少的信号线更加有利于I/O子系统的改进,并且使新的系统模块更加方便加入。改进的设计包括
2013-07-25 15:42:48
1503
转载 精解PCI Express---系统架构篇
系统架构篇在上一篇我们了解了PCI Express总线的产生和技术优势,但要真正理解PCI Express总线技术的优越性还得从其结构本身说起,所以本篇就要全面介绍PCI Express总线的结构。 一、总体系统架构 在正式了解PCI Express串行链接物理和逻辑结构前,先来看一下PCI Express系统架构的方框图。你可以看到PCI Express连接器已被移植
2013-07-25 15:41:33
2094
转载 精解PCI Express---基础篇
基础篇随着Intel 800MHz FSB芯片组i875P的推出,Intel同时也向世人显示一个全新的总线技术即将推出,那就是由Intel首先提出并开发的3GIO总线。后来这一技术提交PCI-SIG(PCI特殊兴趣组织),由PCI-SIG改名为"CI Express",以标准的形式正式推出,目前的最新版本为v1.0。本连载就要带大家深入了解这一即将改变整个计算机系统结构、成为下一代总线标准
2013-07-25 15:40:40
2210
转载 PCI总线介绍
在处理器体系结构中,PCI总线属于局部总线,作为系统总线的延伸,其主要功能是联接外部设备。PCI总线设备具有独立的地址空间,即PCI总线地址空间,该空间与存储器地址空间通过HOST主桥隔离。处理器在访问PCI设备时,必须通过HOST主桥进行地址转换;而PCI设备在访问主存储器时也需要通过HOST主桥进行地址转换。PCI总线结构为树形结构,以HOST主桥为根节点,通过在PCI总线上加
2013-07-25 15:38:23
1495
转载 PCI - PCI概述
从1992年创立规范到如今,PCI总线已成为了计算机的一种标准总线。由PCI总线构成的标准系统结构如图一所示。 PCI总线取代了早先的ISA总线。当然与在PCI总线后面出现专门用于显卡的AGP总线,与现在PCI Express总线相比,速度要慢,但是PCI能从1992用到现在,说明他有许多优点,比如即插即用(Plug and Play)、中断共享等。从数据宽度上看,PCI总线有32bi
2013-07-25 15:37:24
2104
原创 PMIC driver on Android
http://www.qrsdev.com/forum.php?mod=viewthread&tid=1897&extra=page%3D1
2013-07-25 11:10:37
1166
原创 Battery driver on Android
http://www.qrsdev.com/forum.php?mod=viewthread&tid=1896&extra=page%3D1
2013-07-25 11:09:23
670
原创 Backlight driver on Android
http://www.qrsdev.com/forum.php?mod=viewthread&tid=1895&extra=page%3D1
2013-07-25 11:08:00
842
原创 强大无比的android智能开发平台--imx6Q+android4.x
本站即将打造一款强大无比的android智能开发平台,开源程度超越你想象!http://www.qrsdev.com/forum.php?mod=viewthread&tid=1672
2013-04-25 16:09:29
2001
转载 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
1137
原创 联咏科技MS300二维码识别在android平台上实现流程二
novatek实现底层的时候,它将实现细节封装成一个库了,留出来一个头文件。路径:mediatek/source/external/novatek/Novatek_Special_function_0.h我们引用的时候,包含该头文件,编译连接其共享库就可以使用头文件中提供的方法。我们大概看一下其库提供的方法如下:extern "C" unsigned int NovatekCustom
2012-11-05 11:48:55
698
原创 联咏科技MS300二维码识别在android平台上实现流程一
整体思想是这样的: preview的时候侦测二维码,如果侦测到,提示客户图像中有二维码 capture的时候将二维码解析出来 无论preview侦测还是capture解析,都是通过callback机制将数据传回到上层,供app读取使用。下面我就该流程从上向下进行梳理分析:一,app层: camera应用的Camera.java。
2012-11-05 11:47:30
970
原创 我对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
1474
原创 imx51-linux的cpuinfo之分析
这两天客户提出来,我们的平板cat /proc/cpuinfo出来的信息中的serial怎么是0.客户就是上帝啊,没办法,分析找问题贝。我们先看一下目前的cat /proc/cpuinfo的信息:Processor : ARMv7 Processor rev 5 (v7l) BogoMIPS
2012-10-25 10:23:41
2794
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
722
原创 我对android理解之jni
这几天rfid基本调试差不多了,是一个真正的从零到有的搭建过程,完成了很有成就感。下面主要写一下rfid的jni部分。本次jni开发使用的是android的ndk工具。jni开发,个人觉得比较重要的一块是jni的数据结构。在开发过程中,在网上也找了很多资料。下面是比较好的jni数据结构解释资料:Andoird 中使用了一种不同传统Java JNI的方式来定义其native的函数
2012-09-05 10:18:30
868
原创 我对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
1147
原创 我对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
1442
原创 我对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
2964
原创 我对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
1243
原创 我对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
726
原创 我对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
1469
原创 我对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
1150
原创 我对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
1921
原创 我对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
854
原创 我对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
1143
原创 我对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
2228
原创 我对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
2622
原创 我对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
1414
原创 我对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
1224
原创 我对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
1040
原创 我对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
874
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人