首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
linux gsensor驱动分析【转】
】的更多相关文章
linux gsensor驱动分析【转】
本文转载自:http://blog.sina.com.cn/s/blog_89f592f501013sr2.html 本文以Bma250驱动为例子,详细介绍Gsensor设计的一个模板. gsensor驱动在系统中的层次如下图所示: 图中包含三个部分:hardware, driver, input: n Hardware:其实我们可以认为Gsensor也是一个I2C设备.整个Gsensor芯片分为两部分,一个是sensor传感器,另一个是controller控制器,用于将sens…
linux串口驱动分析
linux串口驱动分析 硬件资源及描写叙述 s3c2440A 通用异步接收器和发送器(UART)提供了三个独立的异步串行 I/O(SIO)port,每一个port都能够在中断模式或 DMA 模式下操作.UART 使用系统时钟能够支持最高 115.2Kbps 的波特率.每一个 UART 通道对于接收器和发送器包含了 2 个 64 位的 FIFO. 寄存器 名称 地址 在linux中的描写叙述 (2410 和 2440 处理器对内存地址映射关系同样) UART 线性控制寄存器(ULCONn) ULC…
Linux spi驱动分析(二)----SPI核心(bus、device_driver和device)
一.spi总线注册 这里所说的SPI核心,就是指/drivers/spi/目录下spi.c文件中提供给其他文件的函数,首先看下spi核心的初始化函数spi_init(void).程序如下: 点击(此处)折叠或打开 static int __init spi_init(void) { int status; buf = kmalloc(SPI_BUFSIZ, GFP_KERNEL); if (!buf) { status = -ENOMEM; goto err0; } status = bu…
Linux I2C驱动分析(三)----i2c_dev驱动和应用层分析 【转】
本文转载自:http://blog.chinaunix.net/uid-21558711-id-3959287.html 分类: LINUX 原文地址:Linux I2C驱动分析(三)----i2c_dev驱动和应用层分析 作者:apple_guet 一.i2c-dev驱动分析 1.1.设备驱动注册 分析这个驱动,还是从module_init()和module_exit()开始,程序如下: 点击(此处)折叠或打开 static int __init i2c_dev_init(void) { in…
基于335X的Linux网口驱动分析
基于335X的linux网口驱动分析 一. 系统构成 1. 硬件平台 AM335X 2. LINUX内核版本 4.4.12 二. 网口驱动构架(mdio部分) mdio网口驱动部分 使用 总线.设备.驱动模型,总结如下: 若设备和驱动匹配,则执行 davinci_mdio_probe --> mdiobus_register --> device_register --> mdiobus_scan --> get_phy_device --> get_phy_id //…
linux驱动基础系列--Linux I2c驱动分析
前言 主要是想对Linux I2c驱动框架有一个整体的把控,因此会忽略协议上的某些细节,同时里面涉及到的一些驱动基础,比如平台驱动.设备模型.sysfs等也不进行详细说明原理,涉及到i2c协议部分也只会简单带过,因为linux内核里面已经实现了该协议,我们以后并不需要重新实现这些,只需要对协议有个简单的了解.如果有任何错误地方,请指出,谢谢! 注:图片来自互联网 内核版本:2.6.35.6 I2c介绍 I2C是"Inter Integrated Circuit Bus"的缩写,中文译成…
Linux gadget驱动分析1------驱动加载过程
为了解决一个问题,简单看了一遍linux gadget驱动的加载流程.做一下记录. 使用的内核为linux 2.6.35 硬件为芯唐NUC950. gadget是在UDC驱动上面的一层,如果要编写gadget驱动只需调用linux 的gadget API,不需设计底层的UDC驱动. 但要是分析驱动BUG,就需要了同时了解一下UDC. 下面以简单的gadget zero驱动分析驱动的加载流程. 主要是一系列的bind的调用,让gadget驱动一步步与硬件的端点联系起来. 从insmod g_zer…
Linux UART驱动分析
1. 介绍 8250是IBM PC及兼容机使用的一种串口芯片; 16550是一种带先进先出(FIFO)功能的8250系列串口芯片; 16550A则是16550的升级版本, 修复了FIFO相关BUG, 也是目前比较常见的串口芯片. 本文介绍的是Xilinx UART 驱动分析, 因为没有找到其datasheet, 硬件操作部分分析16550的实现. Xilinx UART驱动主要由drivers/tty/serial/xilinx_uartps.c来实现其相关配置和基本信息可参考<Zynq UAR…
Linux触摸驱动分析
测试平台 宿主机平台:Ubuntu 12.04.4 LTS 目标机:Easy-ARM IMX283 目标机内核:Linux 2.6.35.3 触摸屏基础知识 一.结构 上图是电阻触摸屏的一个侧面剖视图.手指触摸的表面是一个硬涂层,用以保护下面的PET层.PET层是很薄的有弹性的PET薄膜,当表面被触摸时它会向下弯曲,并使得下面的两层ITO涂层能够相互接触并在该点连通电路.两个ITO层之间是约千分之一英寸厚的一些隔离支点使两层分开.最下面是一个透明的硬底层用来支撑上面的结构,通常是玻璃或者塑料. …
G-sensor驱动分析
重力传感器代码分析 重力传感器驱动的功能,主要是向HAL层提供IOCTRL接口,并通过input设备上报数据.芯片实际数据的读取是采用i2c协议读取原始数据,并且作为i2c设备挂载在系统上工作的. 1.调用关系 采用模块化的编程方式,一下介绍函数的调用关系. module_init(aac_MMAxxxxx_init); module_exit(aac_MMAxxxxx_exit); 模块中定义了驱动初始化和退出函数,具体实现如下 static int __init aac_MMAxxxxxFC…