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设备驱动
Android 驱动程序Demo及流程
本篇大多数内容来自
Linux设备驱动
之Ioctl控制。一、用户层不管是漏洞检测,还是poc中,我们见到最多的函数就是ioctl()函数,这个函数就是用户层调用内核程序的接口。
Venscor
·
2017-07-28 00:19
Android安全
探究Linux的总线、设备、驱动模型-宋宝华-专题视频课程
课程收益 本主题探究
Linux设备驱动
模型的总线、设备、驱动的思想,driver与
linux内存和进程
·
2017-07-06 20:13
视频教程
嵌入式
Linux设备驱动
开发笔记(一)
一、Linux设备的分类字符设备、块设备、网络设备,三种设备之间的区别是数据的交互模式,分别为:字节流、数据块、数据包。二、VFS核心结构体VFS核心结构体定义在”linux/fs.h”头文件中。1、structinode结构体记录文件的属主、访问时间等信息。当第一次打开文件的时候由VFS创建并初始化。当文件的所有引用都退出后,释放inode;如果用户态有多个人同时打开一个文件,则VFS只需要分配
light_in_dark
·
2017-06-16 11:38
嵌入式Linux开发
linux设备驱动
之平台总线实践环节(三)
1、在平台总线的实践环节的一和二中,分别将led的platform_driver和platform_device初步完成,接下来看下platform_device和platform_driver同时存在时的效果,就是led的平台设备已经注册到内核中,并且在根文件系统中ismod加载上led的平台总线驱动。看一下platform_device和platform_driver两者相遇会怎么样,根据pl
小溢
·
2017-06-02 18:50
linux
设备
驱动模型
嵌入式软件开发
linux设备驱动
之平台总线实践环节(二)
1、上一节中,我们将初步的驱动代码写完后编译后,放入到rootfs中进行insmod时,在/sys/bus/platform/drvier/目录中能够看到why_led这个目录,但是进入后只有一些基本的东西,却没有能使用这个led驱动的关键性东西,那是因为我们没有提供platform_device,并且驱动代码中的probe函数remove函数的代码内容也不对。这一节课中,做另一半,就是platf
小溢
·
2017-06-01 20:56
linux
设备
驱动模型
嵌入式软件开发
电子书
Linux设备驱动
开发详解:基于最新的Linux 4.0内核.pdf
阅读更多本书介绍了
Linux设备驱动
开发理论、框架与实例,详细说明了自旋锁、信号量、完成量、中断顶/底半部、定时器、内存和I/O映射以及异步通知、阻塞I/O、非阻塞I/O等
Linux设备驱动
理论,以及字符设备
pdfbook
·
2017-05-29 20:00
linux
电子书
Linux设备驱动
开发详解:基于最新的Linux 4.0内核.pdf
本书介绍了
Linux设备驱动
开发理论、框架与实例,详细说明了自旋锁、信号量、完成量、中断顶/底半部、定时器、内存和I/O映射以及异步通知、阻塞I/O、非阻塞I/O等
Linux设备驱动
理论,以及字符设备、
pdfbook
·
2017-05-29 20:00
linux
LINUX设备驱动
之触摸屏tslib编译使用方法
启动:nfs30000000192.168.1.105:/work/nfs_root/uImage_digitpic;bootm30000000安装:sudoapt-getinstallautoconfsudoapt-getinstallautomakesudoapt-getinstalllibtool编译:tarxzftslib-1.4.tar.gzcdtslib./autogen.shmkdi
ljmiaw
·
2017-05-28 21:00
触摸屏
Linux设备驱动
之CRT显示摄像图像之一准备工作
在VGA上进行显示需要准备的工作:下载地址:https://launchpad.net/ubuntu/+source/svgalib/1:1.4.3-30svgalib_1.4.3.orig.tar.gzsvgalib_1.4.3-30.debian.tar.gzsvgalib_1.4.3-30.dsc下载地址http://packages.ubuntu.com/lucid/libx86-1htt
ljmiaw
·
2017-05-28 21:00
Linux设备驱动
之LCD显示摄像图像之三进行转换
因为LCD为RGB模式,所以我们所要做的工作就是将我们其他像素模式转换为RGB模式大部分函数参照/*luvcview*/这个应用函数Convert_manager.c:#include #include #include staticPT_VideoConvertg_ptVideoConvertHead=NULL; intRegisterVideoConvert(PT_VideoConver
ljmiaw
·
2017-05-28 21:00
linux
Linux设备驱动
之USB网卡驱动程序
1、select函数定义函数intselect(intn,fd_set*readfds,fd_set*writefds,fd_set*exceptfds,structtimeval*timeout);函数说明select()用来等待文件描述词状态的改变。参数n代表最大的文件描述词加1,参数readfds、writefds和exceptfds称为描述词组,是用来回传该描述词的读,写或例外的状况。底下
ljmiaw
·
2017-05-28 19:00
linux
Linux设备驱动
之3.4.2内核下的I2C驱动
框架1.1硬件协议简介1.2驱动框架1.3bus-drv-dev模型及写程序a.设备的4种构建方法详情参照:linux-3.4.2\Documentation\i2c:instantiating-devices:以下摘取部分Method1:DeclaretheI2Cdevicesbybusnumber Method2:Instantiatethedevicesexplicitly statics
ljmiaw
·
2017-05-28 15:00
linux
Linux设备驱动
之Hotplug_uevent机制
源码分析:class_device_create class_device_register class_device_add kobject_uevent(&class_dev->kobj,KOBJ_ADD); kobject_uevent_env(kobj,action,NULL); //action_string="add"; action_string=action_to_string(
ljmiaw
·
2017-05-28 14:00
linux
Linux设备驱动
中的并发控制
1.1中断屏蔽DMB数据存储器隔离。DMB指令保证:仅当所有在它前面的存储器访问操作都执行完毕后,才提交(commit)在它后面的存储器访问操作。DSB数据同步隔离。比DMB严格:仅当所有在它前面的存储器访问操作都执行完毕后,才执行在它后面的指令(亦即任何指令都要等待存储器访问操作——译者注)ISB指令同步隔离。最严格:它会清洗流水线,以保证所有它前面的指令都执行完毕之后,才执行它后面的指令。li
ljmiaw
·
2017-05-28 10:00
linux
【Linux】我的第一个驱动程序——scull字符设备驱动
参考资料:《
Linux设备驱动
程序(第三版)》(LinuxDeviceDriver,LDD)首先,对于Linux的设备,在系统中,它的表示也是一个文件,只不过比较特殊而已,如下图:而驱动,就是对这样的特殊文件的功能进行定义
ljyyyyyyyyy
·
2017-05-27 13:03
Linux
一周搞定MPU6050Linux驱动(3)
第4-5日参考:anroidgsensorlis3dh驱动《
Linux设备驱动
程序》《一周搞定MPU6050linux驱动(1,2)》开干:1、闲言碎语这个驱动,越写觉的越简单,入门难,入门之后感觉还好
imtoo
·
2017-05-09 16:26
Linux编程
硬件
SPI驱动之SPI设备驱动程序
前篇文章分析了SPI主控制器驱动,也就是SPI总线驱动,既然总线有了,根据
Linux设备驱动
模型,还得有SPI设备和SPI设备驱动。
伍意
·
2017-04-17 17:07
硬件驱动
嵌入式linux驱动-bus-driver-device模型笔记
一、开发环境1、内核:Linux 2.6.22.6;2、JZ24403、ubuntu9.10二、概念 一个现实的
linux设备驱动
通常需要挂接在一种总线上,对于本身依附于PCI,USB,IIC,SPI
时光左an
·
2017-03-27 00:00
嵌入式linux驱动
LINUX设备驱动
之SPI总线驱动分析
1.内核SPI主要结构2.SPI驱动框架2.1枚举过程driver/spi/spi.c2.2数据收发过程spi_writespi_message_init();初始化一个spi_message/一个不可打断的SPI传输过程:CS=0,传数据,cs=1//一个spi_message由多个spi_transfer组成/spi_message_add_tail(&t,&m);/spi_transfer是
蜗蜗前行
·
2017-02-22 14:27
LINUX设备驱动进阶
linux设备驱动
中的并发控制
在
linux设备驱动
中必须解决的一个问题是多个进程对互斥资源的并发访问,并发的访问会导致竞态。1.1并发与竟态并发指多个执行单元同时、并发的被执行,而并发的执行单元对共享资源的访问很容易导致竟态。
c1194758555
·
2017-02-03 17:17
linux设备驱动中的并发控制
linux驱动程序设计
linux设备驱动
中的并发控制
在Linux内核中,主要的静态发生于以下几种情况:1、对称多处理器(SMP)的多个CPU:多个CPU共同使用系统总线,可访问共同点的外设和存储器。2、单CPU内核进程与抢占它的进程:一个进程的执行可被另一高优先级进程打断。3、中断(硬中断、软中断、Tasklet,底半部)与进程之间:中断可以打断正在执行的进程,若访问该进程正在访问的空间,将引发竞态。上述并发的发生除了SMP是真正的并行以外,其他的
帅气的蚂蚱
·
2017-01-23 17:36
linux驱动
Linux设备驱动
第十天(mmap、linux内核分离(软硬分离)思想)
回顾:1.linux内核如何管理内存kmallockzmalloc__get_free_pagesvmallocvmalloc=256Mmem=10MGFP_KERNELGFP_ATOMIC2.1linux内核地址映射的函数:ioremaplinux内核mmap机制:mmap映射内存必须是页面大小的整数倍!!案例:分析LED和按键驱动结论:对于LED和按键驱动,整个数据的访问操作都要经过两次的数据
绿叶清风
·
2016-12-30 00:19
嵌入式Linux驱动
Linux设备驱动
一 (1)阻塞型IO及非阻塞型IO
阻塞是指没有获得资源则挂起进程,直到获得资源为止。被挂起的进程进入休眠状态,被调度器的运行队列移走,直到等待条件被满足。非阻塞是不能进行设备操作时不挂起,或放弃,或反复查询,直到可以进行操作为止。驱动程序常需要这种能力:当应用程序进行read(),write()等系统调用时,若设备的资源不能获取,而用户又希望以阻塞的方式访问设备,驱动程序应该在设备驱动程序的xxx_read(),xxx_write
打个飞机去美国
·
2016-12-27 15:59
Linux
设备驱动
Linux设备驱动
第六天(工作队列、定时器、延时)
回顾:linux内核混杂设备。特点:主设备号由内核分配好,主设备号为10;内核通过次设备来区分各个混杂设备。数据结构:structmiscdevice{intminor;//MISC_DYNAMIC_MINON(内核分配)char*name;//设备文件名strucefile_operaionts*fops;//给混杂设备赋予相关的硬件操作接口}中断相关(谈谈中断的认识?如何实现一个按键驱动?)2
绿叶清风
·
2016-12-25 20:06
嵌入式Linux驱动
linux设备驱动
之POLL机制
poll的是一种查询的方式poll提供的功能与select类似,不过在处理流设备时,它能够提供额外的信息。一言以弊之:在指定的时间内去查询是否有时间发生函数原型:intpoll(structpollfd*fds,nfds_tnfds,inttimeout);函数参数:fds为指向待查询的设备文件数组;nfds描述第一个参数fds中有多少个设备;timeout为查询不到我们期望的结果进程睡眠的时间;
ljmiaw
·
2016-12-15 19:00
linux
kernel
驱动学习之驱动体验
2:
linux设备驱动
的分类根据设备本身的读写操作特征的差别,linux驱动主要分为三类(1)字符设备驱动字符设备驱动的特点是软件在驱动设备
菜鸟养成记
·
2016-11-13 20:49
驱动分类
驱动学习
modprobe和insmod的区别
linux设备驱动
有两种加载方式insmod和modprobe,下面谈谈它们用法上的区别1、insmod一次只能加载特定的一个设备驱动,且需要驱动的具体地址。
虚生
·
2016-09-13 10:00
Linux I/O模型深入分析
1,structfile_operations:
Linux设备驱动
的
leilianjie
·
2016-09-04 15:00
IO模型
NIO
非阻塞
IO多路复用
Linux I/O模型深入分析
1,structfile_operations:
Linux设备驱动
的
leilianjie
·
2016-09-04 15:00
IO模型
NIO
非阻塞
IO多路复用
字符驱动学习
写完第一个helloworld的驱动以后,想编写一个比较完整的字符设备驱动,就把《
linux设备驱动
开发详解》上的globalmem驱动写了一下,写完以后,发现了几个问题,没有自动生成设备节点,在多设备的支持中
chituhuan
·
2016-08-31 12:22
嵌入式
ubuntu 下 驱动开发环境
刚看O'REILLY写的《
LINUX设备驱动
程序》时。作者一再强调在编写驱动程序时必须建立内核树。所谓内核树,我的理解和网上资料说的一致就是内核源码的一种逻辑形
chituhuan
·
2016-08-31 12:03
LINUX
linux设备驱动
--字符设备驱动注册与驱动参数传递
linux驱动–字符设备注册与驱动参数传递设备驱动介绍上文中讲到,设备驱动分为三类,分别为:字符类设备、块类的设备、网络设备等。从Linux2.6起引入了一套新的驱动管理和注制:Platform_device和Platform_driver。Linux中大部分的设备驱动,都可以使用这套机制,设备用Platform_device表示,驱动用Platform_driver进行注册。Linuxplatf
cole10540316
·
2016-07-10 14:13
linux
Linux驱动程序设计简述
Linux设备驱动
程序层次结构作为Unix操作系统的一个变种,Linux操作系统实现了大多数Unix操作系统的系统设施。
xjbclz
·
2016-07-07 20:50
嵌入式系统
linux设备驱动
程序中的阻塞、IO多路复用与异步通知机制
一、阻塞与非阻塞阻塞与非阻塞是设备访问的两种方式。在写阻塞与非阻塞的驱动程序时,经常用到等待队列。 阻塞调用是指调用结果返回之前,当前线程会被挂起,函数只有在得到结果之后才会返回。非阻塞指不能立刻得到结果之前,该函数不会阻塞当前进程,而会立刻返回。 函数是否处于阻塞模式和驱动对应函数中的实现机制是直接相关的,但并不是一一对应的,例如我们在应用层设置为阻塞模式,如果驱动中没有实现阻塞,函数仍然没有阻
andylauren
·
2016-07-06 12:00
linux
驱动
阻塞与非阻塞
IO复用
异步通知
linux设备驱动
中的并发控制
在linux内核中,主要的竞态发生于以下几种情况:1、对称多处理器(SMP)的多个CPU:多个CPU共同使用系统总线,可访问共同点的外设和存储器。2、单CPU内核进程与抢占它的进程:一个进程的执行可被另一高优先级进程打断。3、中断(硬中断、软中断、Tasklet,底半部)与进程之间:中断可以打断正在执行的进程,若访问该进程正在访问的空间,将引发竞态。解决竞态问题的方法: 1、中断屏蔽 2、原子
andylauren
·
2016-07-05 13:00
并发控制
驱动
竞态
Linux设备驱动
之字符设备驱动
一、linux系统将设备分为3类:字符设备、块设备、网络设备。应用程序调用的流程框图:三种设备的定义分别如下,字符设备:只能一个字节一个字节的读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后顺序进行。字符设备是面向流的设备,常见的字符设备如鼠标、键盘、串口、控制台、LED等。块设备:是指可以从设备的任意位置读取一定长度的数据设备。块设备如硬盘、磁盘、U盘和SD卡等存储设备。网络设
andylauren
·
2016-07-01 19:15
嵌入式系统驱动
Linux设备驱动
之字符设备驱动
一、linux系统将设备分为3类:字符设备、块设备、网络设备。应用程序调用的流程框图:三种设备的定义分别如下,字符设备:只能一个字节一个字节的读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后顺序进行。字符设备是面向流的设备,常见的字符设备如鼠标、键盘、串口、控制台、LED等。块设备:是指可以从设备的任意位置读取一定长度的数据设备。块设备如硬盘、磁盘、U盘和SD卡等存储设备。网络设
andylauren
·
2016-07-01 19:00
Linux经典书籍
2.驱动篇《
LINUX设备驱动
程序》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也
miaoqiucheng
·
2016-06-14 21:23
linux
【
Linux设备驱动
】TQ2440按键驱动程序设计
这几天又回到了驱动程序学习的轨道上来。还是从简单的硬件开始一步步的来学习驱动。使用TQ2440开发板上的按键来设计按键驱动程序。★关于按键的结构体按键的结构体主要有:对应的中断号,中断触发方式,按键名称structbutton_irq_desc{intirq;//中断号unsignedlongflags;//中断触发方式char*name;//中断名称};structbutton_irq_desc
喜欢哲学的女孩
·
2016-06-03 14:59
Linux驱动
Linux设备驱动
之Kobject、Kset
纠结又纠结,虽然看了一些关于kobject和kset的书与文章,但是对于这两个东西,还是不太明白,又分析了一遍2.6.32.2内核的代码,结合前人的努力,终于有了一点眉目。总结一下,给自己做个笔记,也给初学者一点指引。LDD3中说,Kobject的作用为: 1、sysfs表述:在sysfs中出现的每个对象都对应一个kobject,它和内核交互来创建它的可见表述。 2、热插拔事件处理:k
lizuobin2
·
2016-05-28 11:00
linux
sysfs
kobject
kset
ktype
Linux驱动开发概述
1.1
Linux设备驱动
的基本概念刚刚接触
Linux设备驱动
的朋友,会对
Linux设备驱动
中的一些基本概念不太理解。这种不理解,会导致继续学习的困难,所以本节集中讲解
dupengchuan
·
2016-05-20 14:24
驱动
Linux驱动模型(六)
这是整个
LINUX设备驱动
的基础,PLATFORM设备,I2C上的设备等诸设备的注册最终也是调用本文讲述的注册函数来实现的。 LinuxDevice的注册最终都是通过device
lbaihao
·
2016-05-19 22:00
linux设备驱动
程序--类class的实现
#include #include #include #include #include #include #include #include #include #include #include #include //定义设备名称为test-dev #defineDEV_NAME"test-dev" //定义并初始化一个类 structclasscla={ .name="test-cla",
morixinguan
·
2016-05-13 09:00
linux设备驱动
--等待队列实现
#include #include #include #include"ioctl_led.h" #defineDEV_NAME"test-dev" volatileboolempty=true; //定义一个进程资源的指针变量 structtask_struct*task; inttest_open(structinode*inode,structfile*filp) { printk("t
morixinguan
·
2016-05-12 11:00
linux设备驱动
模块引用和依赖
/modules/04#lsmod test7870-Live0xbf010000(PO) func6331test,Live0xbf00c000(PO)test->func ^引用计数 /modules/04#rmmodfunc引用计数>0不能卸载 rmmod:remove'func':Resourcetemporarilyunavailable modprobe自动解决依赖: /#modpr
morixinguan
·
2016-05-12 10:00
linux设备驱动
模块引用和依赖
原文链接:https://yq.aliyun.com/articles/237154/modules/04#lsmodtest7870-Live0xbf010000(PO)func6331test,Live0xbf00c000(PO)test->func^引用计数/modules/04#rmmodfunc引用计数>0不能卸载rmmod:remove'func':Resourcetemporaril
weixin_34245169
·
2016-05-12 10:00
2016-5-2至2016-5-8
每周任务(5-2-5-8)任务一:驱动开发1.设备驱动程序模块编程,重点通过《
Linux设备驱动
》多看驱动的实例。多多分析内核代码。设备驱动程序涉及到内核和硬件。
lz_quiet
·
2016-05-10 11:00
Linux设备驱动
remap_pfn_range() 和remap_page_range()
LDD3的开发环境推荐的是2.6.10,安装了RHEL4-update4,其内核版本为2.6.9.42,编译mmap的程序时报错:Unknownsymbolremap_pfn_range在网上查了下,应将上述报错的函数改为remap_page_range,并且remap_page_range不再推荐使用了,两个内核函数第二个参数定义不相同:intremap_page_range(structvm_
dijkstar
·
2016-05-08 20:20
Linux
Linux设备驱动
remap_pfn_range() 和remap_page_range()
LDD3的开发环境推荐的是2.6.10,安装了RHEL4-update4,其内核版本为2.6.9.42,编译mmap的程序时报错:Unknownsymbolremap_pfn_range在网上查了下,应将上述报错的函数改为remap_page_range,并且remap_page_range不再推荐使用了,两个内核函数第二个参数定义不相同:intremap_page_range(structvm_
dijkstar
·
2016-05-08 20:00
Linux设备驱动
(3)常用的宏、结构体、数据类型、函数等
structfile重要成员mode_tf_mode:文件模式,可读(FMODE_READ)?可写(FMODE_WRITE)?loff_tf_pos:这是用来记录文件的偏移量。在应用程序中,打开文件时偏移量为0,每次的读写操作都会使偏移量增加;void*private_data:structfile_operations*fops:打开文件后,内核会把fops存放在这里,以后的操作就在这里在这里找
feitian944
·
2016-05-08 15:00
linux
上一页
14
15
16
17
18
19
20
21
下一页
按字母分类:
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
其他