Linux驱动中completion接口浅析(wait_for_complete例子,很好)
completion是一种轻量级的机制,它允许一个线程告诉另一个线程工作已经完成。可以利用下面的宏静态创建completion: DECLARE_COMPLETION(my_completion);如果运行时创建completion,则必须采用以下方法...
Linux驱动开发必看详解神秘内核(完全转载)
Linux驱动开发必看详解神秘内核完全转载-链接:http://blog.chinaunix.net/uid-21356596-id-1827434.html IT168技术文档】在开始步入Linux设备驱动程序的神秘世界之前,让我们从驱动程序开发人员的角度看几个内核构成要素,熟悉一些基本的内核概念...
Linux驱动子系统之输入子系统(6)-gpio-keys
6.Gpio-keys6.1概述l Gpio-keys是基于input子系统实现的一个通用的GPIO按键驱动。工程中我们常常会利用它来写按键驱动。 l gpio-keys驱动是基于platform来实现,platformdriver(通用的部分)位于drivers/input/keyboard/gp...
Linux驱动编程——一些重要的数据结构
一些重要的数据结构大部分的基本驱动程序操作涉及到三个重要的内核数据结构,分别是file_operations、file、inode。文件操作我们已经为自己保留了一些设备编号,但没有将任何驱动程序操作与之匹配。file_operations结构就是用来建立这种连接的。这个结构定义在<linux...
Linux驱动编程 step-by-step (三) 字符设备中 重要的数据结构
字符设备中重要的数据结构大部分字符驱动设计三个重要的数据结构<linux/fs.h>struct file_operationsstruct filestruct inode 一、文件操作 在之前的一篇文章中已经有介绍了如何去生情字符设备设备号,但是没有做任何的工作,也就只能写...
Linux驱动基础:msm平台,modem等framework加载
msm平台,AP和CP封装在一起,公用一块内存。所以AP需要负责把整个modem,TZ,rpm等binary拷贝到内存中以供modem等subsystem去运行。那AP这边是怎么分配这些内存,又是怎么读出来相关的binary,又如何把binary上传上去的呢??相关的featureCONFIG_FW...
Linux驱动学习之常用的模块操作命令
1、常用的模块操作命令(1)lsmod(listmodule,将模块列表显示),功能是打印出当前内核中已经安装的模块列表(2)insmod(installmodule,安装模块),功能是向当前内核中去安装一个模块,用法是insmodxxx.ko(3)modinfo(moduleinformation...
嵌入式Linux驱动开发日记
嵌入式Linux驱动开发日记主机硬件环境开发机:虚拟机Ubuntu12.04内存:1G硬盘:80GB目标板硬件环境CPU:SP5V210(开发板:QT210)SDRAM:512M (4片K4T1G164Q)Nandflash:512M(K9F4G08)以太网芯片:SMSCLAN9220工具介绍仿真器...
Linux驱动--定时器timer小记
内核中定时器是一个基础的功能,很多的驱动程序都会用到定时器进行定时或延时,当然比较短的延时也可以使用ndelay和udelay这样的函数,但是这些函数都是以浪费机器周期来获得延时的,所以还是应该避免使用。下面介绍一下定时器的内容:#include<linux/timer.h> //头文...
嵌入式linux驱动开发之给linux系统添加温度传感器模块
忙了几天,终于可以让ds18b20在自己的开发板的linux系统上跑了!虽然ds18b20不是什么新鲜玩意,但是想想知己可以给linux系统添加模块了还是有点小鸡冻呢!虽然说现在硬件的资源非常丰富而且剩余很多,可以用软件资源来代替硬件资源,比如说可以用视频编解码软件取代硬件来工作。但有很多模块需要实...
ARM-Linux驱动移植--DM9000网卡驱动移植
硬件平台:FL2440内核版本:2.6.39主机平台:Ubuntu11.04内核版本:2.6.35交叉编译器:arm-linux-gcc4.3.2原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/66415791、DM9000网卡驱...
比较好的博客(音频、linux驱动)
wxie的Linux人生Linuxkernel(141)DriverDebuging(7)Inspirational(5)Linuxdriver(34)LiuxKernelFunction(29)Linuxapplication(12)ProcessScheduler(4)Android(45)C/...
linux驱动开发(四) 字符设备驱动框架(自动创建设备节点)
代码如下#include<linux/init.h>#include<linux/module.h>#include<linux/kernel.h>#include<linux/cdev.h>#include<linux/fs.h>#inc...
《Linux驱动开发详解》——LCD设备驱动重要数据结构及驱动框架
核心文件:/drivers/video/fbmem.c18.2.3.Linux帧缓冲相关数据结构与函数 1.fb_info结构体(最关键)/*structfb_info结构体*/structfb_info{ intnode; intflags; structmutexloc...
PCI设备linux驱动(一)
一、PCI简介 PCI是一种外设总线规范。我们先来看一下什么是总线:总线是一种传输信号的路径或信道。典型情况是,总线是连接于一个或多个导体的电气连线,总线上连接的所有设备可在同一时间收到所有的传输内容。总线由电气接口和编程接口组成。本文讨论Linux下的设备驱动,所以,重点关注编程接口。 P...
Linux驱动知识:中断
常用函数和宏定义Thesesymbolsrelatedtointerruptmanagementwereintroducedinthischapter:#include<linux/interrupt.h>intrequest_irq(unsignedintirq,irqreturn_t...
Linux驱动之HelloWorld
最近看android的一些源码,里面有一些功能是用驱动实现的。于是就兴起看了一些驱动相关的东西,准备日后深入。这没有技术含量的水文,仅作为日后的备忘吧。系统使用的是ubuntu12.0.04,内核是3.2.0。看很多别人的说法是写驱动之前先要编译内核源码树,但貌似在这个系统上是不要的,直接写C文件和...
迅为4412开发板Linux驱动教程——总线_设备_驱动注冊流程具体解释
视频下载地址:驱动注冊:http://pan.baidu.com/s/1i34HcDB设备注冊:http://pan.baidu.com/s/1kTlGkcR总线_设备_驱动注冊流程具体解释• 注冊流程图• 设备一般都须要先注冊,才干注冊驱动– 如今越来越多的热拔插设备,反过来了。先注冊驱动。设备来...
嵌入式Linux驱动学习之路(一)嵌入式系统的软硬件架构
硬件资料:操作系统:(非虚拟机)zws@z-pc:~$lsb_release-aNoLSBmodulesareavailable.DistributorID:UbuntuDescription:Ubuntu14.04.5LTSRelease:14.04Codename:trusty内核版本:zws@...
Linux驱动编程 step-by-step (一)
转载于:http://blog.csdn.net/jshazk1989/article/details/6908472驱动程序的作用:简单来说驱动程序就是使计算机与设备通信的特殊的代码,在作单片机时候(无OS)我们自己定义接口及自定义的结构来操作相关硬件,而在有OS的模式下我们操作的硬件是去实现对应...