E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
——Linux驱动
搞Linux设备驱动,你应该明白这几个问题
想要深入理解linux设备驱动,你必须明确以下几个问题:·应用程序、库、内核、驱动程序的关系·设备类型·设备文件、主设备号与从设备号·驱动程序与应用程序的区别·用户态与内核态·
Linux驱动
程序功能一、
dilireba
·
2017-12-01 15:49
iTOP-4412开发板利用官网提供的Ubuntu编译zImage烧入开发板后,不断重启的解决方法
平台:ITOP-4412开发板转自迅为论坛:http://www.topeetboard.com利用最小linux系统来学习
Linux驱动
,用迅为提供的zImage和system在烧写后开发板均可正常工作
Chihiro_S
·
2017-11-27 15:06
我的友情链接
linuxarm驱动等等宋宝华blogMyArrow的专栏成鹏致远博客园一个人的天空linux_嵌入式大牛嵌入式大牛_5星唐攀-深入浅出嵌入式umlVS软件工程linux内核专栏嵌入式-2011年前的博客
linux
lilin9105
·
2017-11-22 23:10
嵌入式
Linux驱动
笔记(十八)------浅析V4L2框架之ioctl
上一章写了V4L2框架:嵌入式
Linux驱动
笔记(十七)——详解V4L2框架(UVC驱动)现在来写V4L2的重点,他的用户空间操作函数集合:conststructv4l2_file_operationsuvc_fops
风筝丶
·
2017-11-19 00:00
Linux驱动
嵌入式
Linux驱动
笔记(十七)------详解V4L2框架(UVC驱动)
你好!这里是风筝的博客,欢迎和我一起交流。VideoforLinux2,简称V4l2,是Linux内核中关于视频设备的内核驱动框架,为上层的访问底层的视频设备提供了统一的接口。凡是内核中的子系统都有抽象底层硬件的差异,为上层提供统一的接口和提取出公共代码避免代码冗余等好处。首先来看看所有的v4l2驱动都必须要有的几个组成部分:–用来描述每一个v4l2设备实例状态的结构(structv4l2_dev
风筝丶
·
2017-11-18 00:00
Linux驱动
嵌入式
Linux驱动
笔记(十七)------详解V4L2框架(UVC驱动)
你好!这里是风筝的博客,欢迎和我一起交流。VideoforLinux2,简称V4l2,是Linux内核中关于视频设备的内核驱动框架,为上层的访问底层的视频设备提供了统一的接口。凡是内核中的子系统都有抽象底层硬件的差异,为上层提供统一的接口和提取出公共代码避免代码冗余等好处。首先来看看所有的v4l2驱动都必须要有的几个组成部分:–用来描述每一个v4l2设备实例状态的结构(structv4l2_dev
风筝丶
·
2017-11-18 00:00
Linux驱动
Linux驱动
| 如何加载驱动模块?
0x00 前期准备主机/work/mydrv/目录下,已经写好了驱动层的C文件:mydrv.c,应用层的C文件:mytest.c,以及用来把mydrv.c生成驱动模块(.ko文件)的Makefile。本实验的目的是:把已经写好的LED的驱动程序mydrv.c编译后加载到开发板上;mytest.c编译及运行,实现通过对设备文件的操作来控制开发板上LED的亮灭。0x01 编译出驱动模块先进入/work
old_fisher_
·
2017-10-29 00:01
ARM-Linux
随笔
嵌入式
Linux驱动
笔记(十六)------设备驱动模型(kobject、kset、ktype)
###你好!这里是风筝的博客,###欢迎和我一起交流。前几天去面试,被问到Linux设备驱动模型这个问题,没答好,回来后恶补知识,找了些资料,希望下次能答出个满意答案。Linux早期时候,一个驱动对应一个设备,也就对应一个硬件地址,那当有两个一样的设备的时候,就要写两个驱动,显然是不合理的。应该是从Linux2.5开始,就引入了device-bus-driver模型。其中设备驱动模型主要结构分为k
风筝丶
·
2017-10-27 00:00
Linux驱动
嵌入式 Linux 与物联网软件开发 ——C 语言内核深度解析
对于学习嵌入式、单片机、
Linux驱动
开发等技术来说,C语言是必须要过的一关。C语言学习的特点是入门容易、深入理解难、精通更是难上加难。
嵌入式学习者加一
·
2017-10-26 15:36
嵌入式
Linux驱动
开发(六)——异步通知
之前,获取按键值的方式都是应用程序主动去查询,无论是poll机制还是阻塞的read,那么,另外一种思路就是让驱动程序来通知应用程序,而不让他自己去查询,那么这样做的好处就是不会干扰到应用程序的工作,只需要等具体的事情发生了再去处理即可。应用程序从硬件获取信息主要有三种方式:死循环read:耗费资源严重,无意义read+wait_event_interruptiblepoll+read关于异步通知,
故事狗
·
2017-10-16 21:14
嵌入式
Linux驱动
开发(六)——异步通知
之前,获取按键值的方式都是应用程序主动去查询,无论是poll机制还是阻塞的read,那么,另外一种思路就是让驱动程序来通知应用程序,而不让他自己去查询,那么这样做的好处就是不会干扰到应用程序的工作,只需要等具体的事情发生了再去处理即可。应用程序从硬件获取信息主要有三种方式:死循环read:耗费资源严重,无意义read+wait_event_interruptiblepoll+read关于异步通知,
故事狗
·
2017-10-16 21:14
嵌入式
Linux驱动
笔记(十五)------编译使用tslib支持LCD触摸屏
你好!这里是风筝的博客,欢迎和我一起交流。从网上下载tslib,比如我这里用的是tslib-1.4编译之前先安装三个文件:sudoapt-getinstallautoconfsudoapt-getinstallautomakesudoapt-getinstalllibtool解压:tarxzftslib-1.4.tar.gzcdtslib./autogen.shmkdirtmpecho“ac_cv
风筝丶
·
2017-10-14 00:00
Linux驱动
嵌入式
Linux驱动
开发(五)——poll机制原理以及驱动实现
之前的文章里面说到了关于使用两种方式来获取不同的按键值,具体的文章可以参看以下文章:嵌入式
Linux驱动
开发(三)——字符设备驱动之查询的方式获取按键值嵌入式
Linux驱动
开发(四)——字符设备驱动之中断方式以及中断方式获取按键值前情回顾
故事狗
·
2017-10-10 23:23
嵌入式
Linux驱动
开发(五)——poll机制原理以及驱动实现
之前的文章里面说到了关于使用两种方式来获取不同的按键值,具体的文章可以参看以下文章:嵌入式
Linux驱动
开发(三)——字符设备驱动之查询的方式获取按键值嵌入式
Linux驱动
开发(四)——字符设备驱动之中断方式以及中断方式获取按键值前情回顾
故事狗
·
2017-10-10 23:23
comma.ai代码及实践纪实 2
第二部移植can接口,geohot用的时他自己设计panda,我用usbcan,但是没有linux的驱动,网上淘了一个带
linux驱动
的,不好用。
arm11082
·
2017-09-29 13:24
自动驾驶
Linux驱动
-platform总线设备驱动
一、简介:platform总线是一种虚拟的总线,相应的设备则为platform_device,而驱动则platform_driver。Linux2.6的设备驱动模型中,把I2C、RTC、LCD等都归纳为platform_device。总线将设备和驱动绑定,在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。二、驱动设备模型①
种瓜大爷
·
2017-09-25 11:05
【Linux
driver】
S3C2440之旅
[嵌入式
Linux驱动
]S5PV210的蜂鸣器
Linux驱动
智能家居报警器控制驱动程序:1.本驱动使用platform模型进行设计,分为Alarm_Beeper_device和Alarm_Beeper_driver两个文件2.注册杂项设备(misc),主设备号固定是10(misc),从设备号由系统自动分配,加载成功后使用lsmod可以看到: Alarm_Beeper_device Alarm_Beeper_driver3.加载driver驱动模块之
Im刘北席
·
2017-09-18 00:00
嵌入式
ARM
C代码案例
[嵌入式
Linux驱动
]S5PV210的DHT11温湿度传感器
Linux驱动
智能家居温湿度传感器驱动程序:1.本驱动使用platform模型进行设计,分为Temp_And_Humidity_device和Temp_And_Humidity_driver两个文件2.注册杂项设备(misc),主设备号固定是10(misc),从设备号由系统自动分配,加载成功后使用lsmod可以看到: Temp_And_Humidity_device Temp_And_Humidity_dr
Im刘北席
·
2017-09-17 18:01
嵌入式
ARM
C语言
C代码案例
Linux
Linux驱动
并发处理---互斥体(用处最多)
互斥体尽管信号量已经可以实现互斥的功能,而且包含DECLARE_MUTEX()、init_MUTEX()等定义信号量的宏或函数,从名字上看就体现出了互斥体的概念,但是mutex在Linux内核中还是真实地存在的。下面代码定义名为my_mutex的互斥体并初始化它。structmutexmy_mutex;mutex_init(&my_mutex);下面的两个函数用于获取互斥体。voidfastcal
光利繁华的背后
·
2017-09-15 12:00
linux驱动
入门,编译,动态加载
我们写的驱动程序最终都是要加载进内核的,我们有两种方法添加到内核中。第一种是直接编进内核里,第二种是动态编进内核里。动态加入内核就是我们把自己的驱动程序看成一个模块,然后把这个模块加载到内核内。直接编译进内核就是这个模块和内核一起编译,如果有什么这个驱动有什么问题的话,我们还需要调试编译整个内核,因此刚开始学习的时候我采用了模块化的动态加载内核。一、动态加入内核#include#includeMO
coolwriter
·
2017-09-15 11:31
嵌入式驱动开发
嵌入式
Linux驱动
笔记(十三)------spi设备之RFID-rc522驱动
你好!这里是风筝的博客,欢迎和我一起交流。上一节讲了spi框架:通俗易懂式分析了解spi框架现在我们写一下spi的设备驱动程序,rc522是一款刷卡模块,类似于学校食堂的刷卡机。以kernel4.8.17为例:之前我们给mach-smdk2440.c文件添加了:&s3c_device_spi0,现在我要把rc522设备接在2440的spi1接口上,所以我们应该修改为:&s3c_device_spi
风筝丶
·
2017-09-13 00:00
Linux驱动
编写
Linux驱动
常见错误
转自http://neilengineer.cublog.cn/工作中遇到的编写
Linux驱动
的常见错误和注意事项整理。
qingkongyeyue
·
2017-09-12 11:27
驱动应用程序调试
嵌入式
Linux驱动
笔记(十二)------通俗易懂式分析了解spi框架
你好!这里是风筝的博客,欢迎和我一起交流。之前讲过i2c框架:通俗易懂式分析了解i2c框架如果之前你看懂了,那其实spi框架也差不多。同样的,先上张图:老规则,从上往下看起,以kernel4.8.17为例:在mach-smdk2440.c文件里:staticstructplatform_device*smdk2440_devices[]__initdata={ &s3c_device_ohci,
风筝丶
·
2017-09-09 00:00
Linux驱动
嵌入式
Linux驱动
笔记(十一)------i2c设备之mpu6050驱动
上一节讲了i2c框架:嵌入式
Linux驱动
笔记(十)——通俗易懂式了解i2c框架这次就来写一写真正的i2c设备驱动:mpu6050是一款6轴运动处理组件,采用i2c通信接口。
风筝丶
·
2017-09-07 00:00
Linux驱动
嵌入式
Linux驱动
笔记(十)------通俗易懂式分析了解i2c框架
你好!这里是风筝的博客,欢迎和我一起交流。了解i2c框架时,在别的博客看到一张图,非常好,引用如下:其中,i2c_client是具体的设备实例,是通过i2c总线连接到i2c_adapter的。无论是什么i2c设备,都可以通过i2c_adapter来访问i2c总线,i2c_adapter屏蔽了底层i2c总线控制时序,向上层提供一个统一的接口。以kernel4.8.17为例:在mach-smdk244
风筝丶
·
2017-09-06 00:00
Linux驱动
Linux驱动
入门
Linux驱动
入门用来防止用户程序直接访问内核中关键性数据结构和硬件设备是驱动程序的主要目的之一,所以,一个设计精良的驱动通常应该隐藏了硬件的复杂性和多变性。
ehome_burning
·
2017-09-05 17:29
Linux
硬件驱动
linux驱动
嵌入式
Linux驱动
笔记(九)------dts设备树在2440使用
你好!这里是风筝的博客,欢迎和我一起多多交流。ARM社区一贯充斥的大量垃圾代码导致Linus盛怒,因此社区在2011年到2012年进行了大量的工作。ARMLinux开始围绕DeviceTree展开,DeviceTree有自己的独立的语法,它的源文件为.dts,编译后得到.dtb,Bootloader在引导Linux内核的时候会将.dtb地址告知内核。之后内核会展开DeviceTree并创建和注册相
风筝丶
·
2017-08-24 00:00
Linux驱动
嵌入式
Linux驱动
开发(四)——字符设备驱动之中断方式以及中断方式获取按键值
之前我们完成了关于通过查询的方式获取按键键值的驱动程序,可以参考:嵌入式Linux开发——裸板程序之中断控制器。虽然读取键值没有什么问题,但是测试程序占用CPU过高,一直在不断的查询,资源消耗过大,这个问题非常严重,我们必须要来解决一下。但是在解决这个问题之前,我们先来思考一个问题,除了不断的这样read,是不是还有其他的方法可以获取按键的键值呢?自然是有的,这个方式就是通过终端的方式来获取键值。
故事狗
·
2017-08-22 17:03
嵌入式
Linux驱动
开发(四)——字符设备驱动之中断方式以及中断方式获取按键值
之前我们完成了关于通过查询的方式获取按键键值的驱动程序,可以参考:嵌入式Linux开发——裸板程序之中断控制器。虽然读取键值没有什么问题,但是测试程序占用CPU过高,一直在不断的查询,资源消耗过大,这个问题非常严重,我们必须要来解决一下。但是在解决这个问题之前,我们先来思考一个问题,除了不断的这样read,是不是还有其他的方法可以获取按键的键值呢?自然是有的,这个方式就是通过终端的方式来获取键值。
故事狗
·
2017-08-22 17:03
Lockdep定位
linux驱动
死锁的bug
死锁一般比较难定位。lockdep死锁检测模块介绍了最简单的ABBA死锁的形成,回到正题,回到kernel,里面有千千万万锁,错综复杂,也不可能要求所有开发人员熟悉spin_lock,spin_lock_irq,spin_lock_irqsave,spin_lock_nested的区别。所以,在锁死发生前,还是要做好预防胜于治疗,防患于未然的工作,尽量提前发现并且提前在开发阶段发现和解决这其中潜在
放狼的爷们
·
2017-08-22 00:10
解BUG笔记
嵌入式
Linux驱动
开发(三)——字符设备驱动之查询的方式获取按键值
之前的文章讨论了字符设备驱动的框架以及通过自负设备驱动程序来控制开发板上的LED嵌入式
Linux驱动
开发(一)——字符设备驱动框架入门嵌入式
Linux驱动
开发(二)——字符设备驱动之控制LED在这里我们可以简单的复习一下
故事狗
·
2017-08-18 12:07
嵌入式
Linux驱动
开发(三)——字符设备驱动之查询的方式获取按键值
之前的文章讨论了字符设备驱动的框架以及通过自负设备驱动程序来控制开发板上的LED嵌入式
Linux驱动
开发(一)——字符设备驱动框架入门嵌入式
Linux驱动
开发(二)——字符设备驱动之控制LED在这里我们可以简单的复习一下
故事狗
·
2017-08-18 12:07
嵌入式
Linux驱动
笔记(八)------依赖Linux kernel驱动的pwm编写
之前我们写
Linux驱动
,都是自己写,从platformdriver到platformdevice,都是自己一手包办,其实,在kernel里,很多驱动都已经写好了的,只需我们会用就好了,省时省力。
风筝丶
·
2017-08-16 20:21
Linux驱动
Linux字符设备驱动开发基础
Linux驱动
:封装对底层硬件的操作,向上层应用提供操作接口一.概念介绍一般用户在应用程序里调用的open,read,write函数是c库的函数,这些函数会触发swival异常,从而引发系统调用,进入到内核空间
种瓜大爷
·
2017-08-13 22:42
【Linux
driver】
S3C2440之旅
嵌入式
Linux驱动
开发(二)——字符设备驱动之控制LED
关于驱动程序框架,请参考:嵌入式
Linux驱动
开发(一)——字符设备驱动框架入门同时,在这篇文章里面留下了两个问题,现在先来解决其中的第一个问题,就是如何用驱动程序来操作需要操作的硬件。
故事狗
·
2017-08-13 17:20
嵌入式
Linux驱动
开发(二)——字符设备驱动之控制LED
关于驱动程序框架,请参考:嵌入式
Linux驱动
开发(一)——字符设备驱动框架入门同时,在这篇文章里面留下了两个问题,现在先来解决其中的第一个问题,就是如何用驱动程序来操作需要操作的硬件。
故事狗
·
2017-08-13 17:20
嵌入式
Linux驱动
开发(一)——字符设备驱动框架入门
提到了关于Linux的设备驱动,那么在Linux中I/O设备可以分为两类:块设备和字符设备。这两种设备并没有什么硬件上的区别,主要是基于不同的功能进行了分类,而他们之间的区别也主要是在是否能够随机访问并操作硬件上的数据。字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,调制解调器是典型的字符设备。块设备:应用程序可以随机访问设
故事狗
·
2017-08-13 12:41
嵌入式
Linux驱动
开发(一)——字符设备驱动框架入门
提到了关于Linux的设备驱动,那么在Linux中I/O设备可以分为两类:块设备和字符设备。这两种设备并没有什么硬件上的区别,主要是基于不同的功能进行了分类,而他们之间的区别也主要是在是否能够随机访问并操作硬件上的数据。字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,调制解调器是典型的字符设备。块设备:应用程序可以随机访问设
故事狗
·
2017-08-13 12:41
Linux驱动
学习(编写一个最简单的模块)
在Linux中想做驱动开发,那么一定要先熟悉module的使用和编写一、什么是module从名字上看就是模块的意思,我个人的理解就是一个一个的小程序,可以进行动态的安装和卸载,而在这里面就实现一些功能,其中驱动就是在module中。二、编写一个最简单的module编写一个最简单的module只需要两个文件即可:Makefile和xxx.c(1)Makefile1#ubuntu的内核源码树,如果要编
小清奈
·
2017-08-09 15:00
Linux下的虚拟串口驱动(一)
Linux下,实现虚拟串口驱动;但因为毕业后,一直从事的是裸机驱动开发,所以Linux下的设备驱动,就慢慢忘记了;为了实现这一功能,在网上也查找了很多资料,但大多只是讲解理论,或者直接贴代码;对于没接触过
Linux
如鱼饮水
·
2017-08-07 18:40
Linux串口驱动
linux驱动
LCD
版权所有,转载必须说明转自http://my.csdn.net/weiqing1981127原创作者:南京邮电大学通信与信息系统专业研二魏清一.LCD屏理论1.1LCD屏基本概念我们知道,诸如PCI、I2C和USB等外围设备总线都来自于系统PC机的南桥,今天我们看到的视频控制器则来自于北桥。LCD主要由TN(扭转向列型)、STN(超扭转向列型)、DSTN(双层超扭曲向列阵)和TFT(薄膜式晶体管型
小溢
·
2017-08-05 13:40
linux驱动
嵌入式软件开发
linux驱动
中锁的使用
一、atomic用法TP代码中每个判断irq_enable的地方全部换成atomic_cmpxchg,对比和设值一起做完,避免在disable已经判断完毕,但是还没给flag赋值时,被中断打断,再次执行disable,中断函数结束后又执行一次disable,每次执行disable都会对desc->depth++,所以连续加两次。之后enable++一次,无法正常使能中断,TP失效。#include
安卓驱动小菜鸟
·
2017-07-31 11:13
嵌入式Linux应用学习(一)------QT控制LED设备硬件
Windows下QTCreator版本为5.3.2Linux下QTCreator版本为5.6首先,在Windows下编译好应用程序:控制LED,当然要有LED小灯的驱动了,在这里:嵌入式
Linux驱动
学习笔记
风筝丶
·
2017-07-31 00:00
Linux应用
嵌入式
Linux驱动
笔记(七)------浅析tty与uart框架
你好!这里是风筝的博客,欢迎和我一起多多交流。 看一个驱动模型,先从注册函数看起。先看下设备文件:在init.c(arch/arm/plat-samsung)文件,有:staticstructcpu_table*cpu;注意哦,这里有个结构体指针变量cpu,一定要记住,有大用!!!将下来: static int __init s3c_arch_init(void) { int re
风筝丶
·
2017-07-28 00:00
Linux驱动
嵌入式
Linux驱动
笔记(六)------浅析input输入子系统框架
(文章写得比较早,当时自己也是一知半解,描述的不好,后来我参考了网上的大量资料,重新写了一篇:嵌入式
Linux驱动
笔记(二十五)------Input子系统框架)基于设备驱动分层的思想,其实理解了platform
风筝丶
·
2017-07-23 00:00
Linux驱动
嵌入式
Linux驱动
笔记(六)------浅析input输入子系统框架
(文章写得比较早,当时自己也是一知半解,描述的不好,后来我参考了网上的大量资料,重新写了一篇:嵌入式
Linux驱动
笔记(二十五)------Input子系统框架)基于设备驱动分层的思想,其实理解了platform
风筝丶
·
2017-07-23 00:00
Linux驱动
AM335x u-boot启动添加开机图片
编译调试版本和环境:主机:ubuntu12.04SDK:u-boot:LCD:分辨率800x480,
Linux驱动
已经调试正常,在Linux中能够正确显示图片。解决步骤1,通过google能够
dylanZheng
·
2017-07-21 17:47
BSP
嵌入式
Linux驱动
笔记(五)------学习platform设备驱动
你好!这里是风筝的博客,欢迎和我一起交流。 设备是设备,驱动是驱动。如果把两个糅合写一起,当设备发生变化时,势必要改写整个文件,这是非常愚蠢的做法。如果把他们分开来,当设备发生变化时,只要改写设备文件即可,驱动文件巍然不动。从linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device和platform_driver。Linux中大部分的设备驱动,都可以使用这套机制,设备
风筝丶
·
2017-07-18 00:00
Linux驱动
Linux驱动
:module_platform_driver
该宏是用来定义驱动的入口函数使用方法:includestaticstructplatform_driverpower_supply_driver={.driver={.name="power-supply",.owner=THIS_MODULE,.of_match_table=power_supply_id_table,},.probe=power_supply_probe,.remove=pow
android_grady_wang
·
2017-07-14 19:42
Linux/Unix
嵌入式
Linux驱动
笔记(四)------USB键盘驱动程序
你好!这里是风筝的博客,欢迎和我一起交流。Kernel版本为4.4.17.编写USB键盘的驱动,可以参考Kernel里的usbkbd.c这个文件.我越发觉得驱动都是按套路来的.......流程都差不多一样.在这个文件里,最主要就是看usb_kbd_probe函数和usb_kbd_irq函数了。在文件最开头有个数组:staticconstunsignedcharusb_kbd_keycode[256
风筝丶
·
2017-07-14 00:00
Linux驱动
上一页
50
51
52
53
54
55
56
57
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他