linux 驱动
文章平均质量分 92
RopenYuan
这个作者很懒,什么都没留下…
展开
-
DDR地址容量计算与理解
DDR地址和容量计算、Bank理解DDR3为减少地址线,把地址线分为行地址线和列地址线,在硬件上是同一组地址线; 地址线和列地址线是分时复用的,即地址要分两次送出,先送出行地址,再送出列地址。 一般来说列地址线是10位,及A0...A9;行地址线数量根据内存大小,BANK数目,数据线位宽等决定(感觉也应该是行地址决定其他) ;1BANK bank是存储库的意思,也就是说,一块内...转载 2019-12-04 19:57:24 · 1096 阅读 · 0 评论 -
s3c2410触摸屏驱动(2.6内核)分析 -中断下半部
驱动不是很多,在此把它贴出来然后加上必要的注释:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* For ts转载 2014-10-28 16:11:29 · 860 阅读 · 0 评论 -
MINI2440按键中断
编写按键驱动的方法很多,这里我仅仅列举用中断法加上简单地字符设备注册来编写,并没有采用misc设备来注册。(这里的注册函数都是相对古老,以后不推荐使用!)首先编写一个设备驱动程序头文件先定义了,这很容易,照搬别人的就行了。接着确定你的设备驱动程序会用到的数据结构,这里会用到一个重要的数据结构,struct button_irqs,用来表征按键的状态以及按键的标识。接着确定file_operatio原创 2014-10-30 11:36:33 · 950 阅读 · 0 评论 -
linux等待队列wait_queue_head_t和wait_queue_t
分类: linux2014-01-04 11:30 245人阅读 评论(0) 收藏 举报本文转自 reille博客: http://velep.com/archives/815.html等待队列在linux内核中有着举足轻重的作用,很多linux驱动都或多或少涉及到了等待队列。因此,对于linux内核及驱动开发者来说,掌握等待队列是必须课之一。 Linux内核的等待队列转载 2014-10-27 15:08:48 · 971 阅读 · 0 评论 -
android camera(三):camera V4L2 FIMC
关键词:android camera CMM 模组 camera参数 CAMIF V4L2 平台信息:内核:linux系统:android平台:S5PV310(samsung exynos 4210) android camera(一):camera模组CMM介绍android camera(二):摄像头工作原理、s5PV310 摄像头接口转载 2013-03-28 16:26:02 · 1072 阅读 · 0 评论 -
Linux内核机制之等待队列
转载一、定义:/include/linux/wait.hstruct __wait_queue_head {spinlock_t lock;struct list_head task_list;};typedef struct __wait_queue_head wait_queue_head_t;原创 2014-10-30 12:06:47 · 1147 阅读 · 0 评论 -
Spinlock 与mutex 的区别
POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Section)进行保护(另一种常用的同步机制是barrier)。Pthreads提供了多种锁机转载 2014-11-03 16:27:55 · 1210 阅读 · 0 评论 -
input子系统二
input子系统 输入设备(如按键,键盘,触摸屏,鼠标等)是典型的字符设备,其一般的工作机制是低层在按键,触摸等动作发生时产生一个中断(或驱动通过timer定时查询),然后cpu通过SPI,I2C或者外部存储器总线读取键值,坐标等数据,放一个缓冲区,字符设备驱动管理该缓冲区,而驱动的read()接口让用户可以读取键值,坐标等数据。 在Linux中,输入子系统是转载 2014-11-06 15:16:14 · 737 阅读 · 0 评论 -
基于S3C2440的嵌入式Linux驱动——SPI子系统解读(四)
本系列文章对Linux设备模型中的SPI子系统进行讲解。SPI子系统的讲解将分为4个部分。 第一部分,将对SPI子系统整体进行描述,同时给出SPI的相关数据结构,最后描述SPI总线的注册。基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一) 第二部分,该文将对SPI的主控制器(master)驱动进行描述。 基于S3C2440的嵌入式Linux转载 2014-12-30 18:23:05 · 1294 阅读 · 0 评论 -
_raw_writel, writel_relaxed 和 writel的区别
因为对别的平台不了解,下面仅谈它们在ARM上的区别__raw_writel: 因为有volatile关键字, 所以编译器不会打乱多个__raw_writel的执行顺序。对于ARM而言,当多个写以代码的顺序到达相同设备时,执行的顺序也是被保证的,不过对于不同的设备,执行的顺序就不被保证了。write_relaxed: 在ARM平台上与__raw_writel一样,转载 2014-07-09 20:08:14 · 6723 阅读 · 0 评论 -
内核使用硬件ip的dma,dma_alloc_coherent 与 dma_alloc_writecombine
平台structbuffergooglevideo编程 内核的dma一般在平台初始化的时候已经分配好了。但是对于一些有内部dma的硬件ip,比如usb ip、video加速ip,他们可能由ip厂商封装好的,没办法绑定到cpu端,这时候在内核使用dma就要注意了,因为dma只认识物理地址哦。当然,办法还是有的,look:以下来自:http://blog.csdn.net/转载 2014-07-09 19:57:19 · 823 阅读 · 0 评论 -
SDMA相关的数据结构、宏展开及设备函数注册过程
struct sdma_platform_data {int sdma_version;char *cpu_name;int to_version;struct sdma_script_start_addrs *script_addrs;};struct imx_imx_sdma_data {resource_size_t iobase;resource_size_原创 2014-07-07 15:52:40 · 1493 阅读 · 0 评论 -
ALSA的ioctl - hwdep
hwdep模块简述字符设备驱动中,ioctl是一个很常见的IO设备操作函数,可以自定义cmd命令字并实现对应的设备IO控制。音频设备的控制有所不同:驱动层大部分控制操作定义各种snd_kcontrol_new,然后注册到SNDRV_DEV_CONTROL模块中(sound\core\control.c),详见snd_kcontrol探究;而上层调用alsa-lib的snd_ct转载 2013-04-23 11:12:00 · 967 阅读 · 0 评论 -
(一)mini2440网卡驱动dm9000之dm9000_probe分析
2012-04-07 02:05:48| 分类: 跟着国嵌学arm|举报|字号 订阅/*首先我们必须知道probe函数什么时候调用。其实在平台设备驱动注册的时候,内核会在平台设备总线上去遍历所有的设备,做匹配操作,匹配函数为platform_match(内核源码在driver/base/platform.c中)那么这个函数做了什么呢,不妨来看一下:转载 2014-05-05 20:01:12 · 1036 阅读 · 0 评论 -
一个十分经典的Linux DM9000网卡驱动程序完全分析(转载)
2012-04-07 00:19:35| 分类: 跟着国嵌学arm|举报|字号 订阅原文:http://blog.chinaunix.net/link.php?url=http://blog.csdn.net%2Fypoflyer%2Farticle%2Fdetails%2F6209922说明1:本文分析基于内核源码版本为linux-2.6.31转载 2014-05-05 20:02:19 · 1793 阅读 · 0 评论 -
ethtool 在 Linux 中的实现框架和应用
2014-02-24 21:18 61人阅读 评论(0) 收藏 举报简介: Linux 的一个显著特点就是其强大的网络功能,Linux 几乎支持所有的网络协议,并在这些协议基础上提供了丰富的应用。对 Linux 网络管理的重要性不言而喻,这些管理依赖于网络工具,比如最常用的 ifconfig,route,ip,ethtool 等,其中 ethtool 提供了强大的网卡及网卡驱动管理能力转载 2014-05-07 16:40:46 · 1219 阅读 · 0 评论 -
内核链表
在Linux内核中使用了大量的链表结构来组织数据。这些链表大多采用了[include/linux/list.h]中实现的一套精彩的链表数据结构。链表数据结构的定义:struct list_head { struct list_head *next, *prev; }; list_head结构包含两个指向list_head结构的指针prev和next,由此可见,内核的链表原创 2014-07-16 18:30:58 · 620 阅读 · 0 评论 -
Linux 的 completion机制
分类: Linux kernel2010-09-06 16:29 3906人阅读 评论(0) 收藏 举报linuxstructsignalup数据结构null一、定义:linux/include/linux/completion.h 13struct completion { 14 unsigned int done; 15转载 2014-07-04 11:49:04 · 1032 阅读 · 0 评论 -
container_of分析
1.container_of宏1> Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。2>接口:container_of(ptr, type, member) ptr:表示结构体中member的地址 type:表示结构体类型 membe转载 2014-07-04 14:58:56 · 560 阅读 · 0 评论 -
mxc sdma 分析
本文主要讲述mxc处理器中,sdma的处理过程及用户如何去使用sdma进行数据的传输。一 sdma 的通道数及优先级 #define MAX_DMA_CHANNELS 32 /* 32 通道 */#define MAX_BD_NUMBER 16 /* 缓冲描述符数目 */#define MXC_SDMA_DEFAULT_PRIORITY 1 /* 默认的转载 2014-07-09 11:10:08 · 2239 阅读 · 0 评论 -
基于S3C2440的嵌入式Linux驱动——SPI子系统解读(二)
该系列文章将分为四个部分: 第一部分,将对SPI子系统整体进行描述,同时给出SPI的相关数据结构,最后描述SPI总线的注册。基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一) 第二部分,即本篇文章,该文将对SPI的主控制器(master)驱动进行描述。 第三部分,该文将对SPI设备驱动,也称protocol 驱动,进行讲解。基于S3C2440转载 2014-12-30 18:20:12 · 1507 阅读 · 0 评论 -
Linux SPI框架(中)
水平有限,描述不当之处还请指出,转载请注明出处http://blog.csdn.net/vanbreaker/article/details/7734150 上节介绍了SPI子系统中的一些重要数据结构和SPI子系统初始化的第一步,也就是注册SPI总线。这节介绍针对于s3c24xx平台的SPI子系统初始化,在看具体的代码之前,先上一张自己画的图,帮助理清初始化的主要步骤转载 2015-01-20 16:05:15 · 763 阅读 · 0 评论 -
在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分
在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分: 内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink本系列文章包括两篇,它们文详细地介绍了 Linux 系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与 sysfs、sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayf转载 2016-10-01 00:29:58 · 1022 阅读 · 0 评论 -
在 Linux 下用户空间与内核空间数据交换的方式,第 2 部分:
在 Linux 下用户空间与内核空间数据交换的方式,第 2 部分: procfs、seq_file、debugfs和relayfs本系列文章包括两篇,它们文详细地地介绍了Linux系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与sysfs、sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayfs,并给出具体的转载 2016-10-01 00:32:07 · 783 阅读 · 0 评论 -
[mmc subsystem] 概念与框架
参考蜗窝科技http://www.wowotech.net/comm/mmc_framework_arch.htmlmmc subsystem系列(持续更新中): [mmc subsystem] 概念与框架 [mmc subsystem] mmc core(第...转载 2019-06-27 15:15:03 · 319 阅读 · 0 评论 -
[mmc subsystem] mmc core(第一章)——概述
mmc subsystem系列(持续更新中): [mmc subsystem] 概念与框架 [mmc subsystem] mmc core(第一章)——概述 [mmc subsystem] mmc core(第二章)——数据结构和宏定义说明 [mmc su...转载 2019-06-27 15:18:48 · 276 阅读 · 0 评论 -
[mmc subsystem] mmc core(第二章)——数据结构和宏定义说明
mmc subsystem系列(持续更新中): [mmc subsystem] 概念与框架 [mmc subsystem] mmc core(第一章)——概述 [mmc subsystem] mmc core(第二章)——数据结构和宏定义说明 [mmc su...转载 2019-06-27 15:21:30 · 275 阅读 · 0 评论 -
内核通知链机制的原理及实现
这篇文章是对以下两位博主的文章进行了简单整理转载引用,备忘。非常感谢两位的分享。http://my.chinaunix.net/space.php?uid=25445243&do=blog&id=212959http://yfydz.cublog.cn 一、概念: 大多数内核子系统都是相互独立的,因此...转载 2019-07-05 10:32:32 · 786 阅读 · 1 评论 -
平时所有命令记录
1、查看 读写EMMC的命令及方式,或者在代码中打开block_dumpecho 1 > /proc/sys/vm/block_dump之后,然后通过cat /proc/kmsg 就可以查看当前谁在访问磁盘原创 2019-07-15 17:40:39 · 111 阅读 · 0 评论 -
基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一)
本文将介绍SPI子系统。内核版本为2.6.30。如有错误欢迎指正。预备知识要求:1.SPI总线 2. platfrom平台 3. sysfs子系统 4. 阅读过LDD3第3,5,6,7,9,10,11章的内容。NOTE:如果转载 2014-12-30 18:18:03 · 2526 阅读 · 0 评论 -
Linux驱动修炼之道-SPI驱动框架源码分析(下)
来自:http://blog.csdn.net/woshixingaaa/article/details/6574224这篇文档主要介绍spi数据传输过程。当应用层要向设备传输数据的时候,会通过ioctl向设备驱动发送传输数据的命令。如图,向SPI从设备发送读写命令,实际的读写操作还是调用了主机控制器驱动的数据传输函数。transfer函数用于spi的IO传输。但是转载 2015-01-21 11:33:48 · 988 阅读 · 0 评论 -
Linux SPI总线和设备驱动架构之三:SPI控制器驱动
通过第一篇文章,我们已经知道,整个SPI驱动架构可以分为协议驱动、通用接口层和控制器驱动三大部分。其中,控制器驱动负责最底层的数据收发工作,为了完成数据的收发工作,控制器驱动需要完成以下这些功能:1. 申请必要的硬件资源,例如中断,DMA通道,DMA内存缓冲区等等;2. 配置SPI控制器的工作模式和参数,使之可以和相应的设备进行正确的数据交换工作;3. 向通用接口转载 2014-12-31 10:52:06 · 1127 阅读 · 0 评论 -
Linux SPI总线和设备驱动架构之二:SPI通用接口层
通过上一篇文章的介绍,我们知道,SPI通用接口层用于把具体SPI设备的协议驱动和SPI控制器驱动联接在一起,通用接口层除了为协议驱动和控制器驱动提供一系列的标准接口API,同时还为这些接口API定义了相应的数据结构,这些数据结构一部分是SPI设备、SPI协议驱动和SPI控制器的数据抽象,一部分是为了协助数据传输而定义的数据结构。另外,通用接口层还负责SPI系统与Linux设备模型相关的初始化工作。转载 2014-12-31 10:46:04 · 1262 阅读 · 0 评论 -
Linux SPI总线和设备驱动架构之一:系统概述
SPI是"Serial Peripheral Interface" 的缩写,是一种四线制的同步串行通信接口,用来连接微控制器、传感器、存储设备,SPI设备分为主设备和从设备两种,用于通信和控制的四根线分别是:CS 片选信号SCK 时钟信号MISO 主设备的数据输入、从设备的数据输出脚MOSI 主设备的数据输出、从设备的数据输入脚因为在大多数情况下,CPU或SOC一侧转载 2014-12-31 10:44:53 · 985 阅读 · 0 评论 -
Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化
我们知道,SPI数据传输可以有两种方式:同步方式和异步方式。所谓同步方式是指数据传输的发起者必须等待本次传输的结束,期间不能做其它事情,用代码来解释就是,调用传输的函数后,直到数据传输完成,函数才会返回。而异步方式则正好相反,数据传输的发起者无需等待传输的结束,数据传输期间还可以做其它事情,用代码来解释就是,调用传输的函数后,函数会立刻返回而不用等待数据传输完成,我们只需设置一个回调函数,传输完成转载 2014-12-31 10:53:07 · 1051 阅读 · 0 评论 -
Linux SPI框架(上)
水平有限,描述不当之处还请指出,转载请注明出处http://blog.csdn.net/vanbreaker/article/details/7733476 Linux的SPI子系统采用主机驱动和外设驱动分离的思想,首先主机SPI控制器是一种平台设备,因此它以platform的方式注册进内核,外设的信息是以boardinfo形式静态定义的,在创建spi_master时,会根据外转载 2015-01-20 16:05:15 · 753 阅读 · 0 评论 -
Linux SPI框架(下)
水平有限,描述不当之处还请之处,转载请注明出处http://blog.csdn.net/vanbreaker/article/details/7737833 本节以spidev设备驱动为例,来阐述SPI数据传输的过程。spidev是内核中一个通用的设备驱动,我们注册的从设备都可以使用该驱动,只需在注册时将从设备的modalias字段设置为"spidev",这样才能和spidev转载 2015-01-20 16:04:35 · 748 阅读 · 0 评论 -
Linux驱动修炼之道-SPI驱动框架源码分析(上)
SPI驱动架构,以前用过,不过没这个详细,跟各位一起分享:来自:http://blog.csdn.net/woshixingaaa/article/details/6574215SPI协议是一种同步的串行数据连接标准,由摩托罗拉公司命名,可工作于全双工模式。相关通讯设备可工作于m/s模式。主设备发起数据帧,允许多个从设备的存在。每个从设备有独立的转载 2015-01-21 11:31:21 · 865 阅读 · 0 评论 -
Linux驱动修炼之道-SPI驱动框架源码分析(中)
来自:http://blog.csdn.net/woshixingaaa/article/details/6574220这篇来分析spi子系统的建立过程。嵌入式微处理器访问SPI设备有两种方式:使用GPIO模拟SPI接口的工作时序或者使用SPI控制器。使用GPIO模拟SPI接口的工作时序是非常容易实现的,但是会导致大量的时间耗费在模拟SPI接口的时序上,访问效率比较低,容易转载 2015-01-21 11:32:15 · 1013 阅读 · 0 评论 -
基于S3C2440的嵌入式Linux驱动——SPI子系统解读(三)
分类: 嵌入式Linux设备驱动解读 Linux SPI子系统2012-07-16 14:49 1747人阅读 评论(0) 收藏 举报嵌入式linuxcstructclass该系列文章将分为四个部分: 第一部分,将对SPI子系统整体进行描述,同时给出SPI的相关数据结构,最后描述SPI总线的注册。基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一)转载 2014-12-30 18:21:21 · 1134 阅读 · 0 评论