linux驱动
zhanglei_1991
野生程序猿一只
展开
-
深入浅出:Linux设备驱动之字符设备驱动
转载自:http://blog.jobbole.com/86531/一、linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序:字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。块设备:是指可以从设备的任意位置读取一定长度数转载 2016-03-03 12:52:49 · 275 阅读 · 0 评论 -
Linux 内存映射函数 mmap()函数详解
原文地址:http://blog.csdn.net/dlutbrucezhang/article/details/9080173一、概述 内存映射,简而言之就是将用户空间的一段内存区域映射到内核空间,映射成功后,用户对这段内存区域的修改可以直接反映到内核空间,同样,内核空间对这段区域的修改也直接反映用户空间。那么对于内核空间用户空间两者之间需要大量数据传输等操作的转载 2016-12-01 10:11:30 · 503 阅读 · 0 评论 -
ioctl 和unlock_ioctl函数讨论
http://blog.csdn.NET/cbl709/article/details/7295772 来源网址---谢谢分享----但是笔者可能忽略了函数的返回值类型为long我在操作的时候发现在编译程序的时候有个警告“ warning: initialization from incompatible pointer type [enabled by default]:转载 2016-12-01 09:40:51 · 1325 阅读 · 0 评论 -
深入分析Tasklet机制
原文地址:http://blog.csdn.net/ce123/article/details/7768941深入分析Tasklet机制一、tasklet使用Tasklet的使用比较简单,每个Tasklet结构体有一个函数指针,指向你自己定义的函数。当我们要使用 tasklet ,首先新定义一个tasklet_struct结构,并初始化好要执行函数指针,然后将它挂接到转载 2016-12-01 09:40:01 · 561 阅读 · 0 评论 -
关于linux异步通知signal 和QT的信号槽
项目要进行ARM和DSP之间的通信,查了很多资料,最终决定用HPI,HPI驱动写完后,要写QT应用程序,方案是qt端给信号中断DSP,然后DSP处理完一帧数据后,中断ARM。ARM接收到中断后调用read函数读一帧,然后显示,是设备主动中断应用程序通知读写的方式。本人菜鸟一枚,花了好多时间从驱动的坑里跳出来后,转眼就跳入了QT的坑。so,问题在哪?驱动接收到中断后,怎样让应用层接收原创 2016-03-05 22:04:25 · 2257 阅读 · 0 评论 -
关于6410存储器映射
今天想明白一个问题,关于之前测试HPI内存读写为什么出错。在查数据手册的时候,第二小节存储器映射里讲到、 也就是说,可供选择的静态存储区有这么多,你可以在自己选择接几块并做映射,需要对哪块读写的时候先片选,然后通过地址线,数据线来读。也就是说自己也可以接一些外设,对外设读写的时候设置片选,连好地址线数据线就可以把外设当成SDRAM来原创 2016-03-09 10:47:22 · 406 阅读 · 0 评论 -
Qt中ioctl
今天在将HPI驱动移植到QT中的时候发现,ioctl函数怎么都调用不到,网上各种查啊。先是得到linux内核版本变化导致的ioctl函数被换成了unlocked_ioctl,然后发现在应用程序中调用ioctl还是不行,然后查看ioctl-number.txt 修改魔数,换成了里面没有用到的‘x’。然后修改cmd的宏#define Write_HPIC _IOW(HPI_MAG原创 2016-03-08 20:53:15 · 3690 阅读 · 0 评论 -
unclocked_ioctl
今天在调试HPI驱动的时候,发现ioctl调用不了,应用程序的ioctl的cmd参数传送到驱动程序的ioctl发生改变。而根据《linux设备驱动》这个cmd应该是不变的。因为在kernel 2.6.36 中已经完全删除了struct file_operations 中的ioctl 函数指针,取而代之的是unlocked_ioctl ,而tiny6410开发板上的内核是2。6.38。 所以我怀疑二原创 2016-03-08 16:44:22 · 322 阅读 · 0 评论 -
ioctl的原理及实现
原文:http://blog.chinaunix.net/uid-25014876-id-59419.html一、ioctl的简介:虽然在文件操作结构体"struct file_operations"中有很多对应的设备操作函数,但是有些命令是实在找不到对应的操作函数。如CD-ROM的驱动,想要一个弹出光驱的操作,这种操作并不是所有的字符设备都需要的,所以文件操作结构体也不会有对应的转载 2016-03-05 14:06:48 · 5255 阅读 · 0 评论 -
_IO, _IOR, _IOW, _IOWR 宏的用法与解析
转自:http://blog.chinaunix.net/uid-20754793-id-177774.html今天在写字符驱动验证程序的时候要用到ioctl函数,其中有一个cmd参数,搞了半天也不了解是什么意思,那个cmd还有什么命令码了什么的,还好google下,觉得这篇文章写的不错,就转来看看:在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请转载 2016-03-03 13:08:28 · 398 阅读 · 0 评论 -
异步通知机制内核实现 及 驱动编写 (重要)
转载于: http://blog.csdn.net/wenqian1991/article/details/50333655 基本没有修改过,特此标注 /* *1.概念: 异步通知机制:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,是一种“信号驱动的异步I/O”。 信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收转载 2016-11-24 16:36:58 · 716 阅读 · 0 评论