Linux驱动
ASKLW
这个作者很懒,什么都没留下…
展开
-
Linux文件系统的目录结构
Linux文件系统的目录结构Linux下的文件系统为树形结构,入口为 / 树形结构下的文件目录:无论哪个版本的Linux系统,都有这些目录,这些目录应该是标准的。各个Linux发行版本会存在一些小小的差异,但总体来说,还是大同小异。1. / 文件系统的入口,最高一级目录。2. /bin 基础系统所需要的命令位于此目录,是最小系统所需要的命令,如:ls,转载 2017-03-14 15:50:39 · 342 阅读 · 0 评论 -
linux内核里的GPIO操作函数
1.gpio_set_value(unsigned gpio, int value)用来设置gpio寄存器的值2.gpio_direction_output(unsigned gpio, int value)用来设置gpio为输出功能,同时设置gpio输出的值。一般来说,设置一个GPIO口为输出,先执行一次gpio_direction_output,然后接下来只需执行gpio_se转载 2016-10-12 20:46:32 · 544 阅读 · 0 评论 -
蜂鸣器和PWM定时器编程实践2
《朱老师物联网大讲堂》学习笔记http://blog.csdn.net/qq_18973645/article/details/51130346以下代码为朱老师课堂上所写[plain] view plain copyprint?#define GPD0CON (0xE02000A0) #define TCFG0转载 2017-06-05 10:23:12 · 776 阅读 · 0 评论 -
linux中S3C2440的物理地址映射到虚拟地址详解
linux中S3C2440的物理地址映射到虚拟地址详解标签: 虚拟地址映射 2013-01-08 14:05 1527人阅读 评论(0)收藏举报本文章已收录于:分类: linux内核理论(8) 作者同类文章X[html] view plain copypr转载 2017-06-05 10:19:59 · 920 阅读 · 0 评论 -
字符设备的注册(struct cdev结构体的使用解释)
在Linux内核2.6版本以前,注册一个字符设备的的经典方法是使用register_chrdev,相应的从设备中注销字符设备的方法是unregister_chrdev,而在2.6版本以后,字符设备函数的注册与注销使用的是如下一套方法:#include struct cdev *cdev_alloc(void);//分配一个独立的cdev结构 void cdev_init(struct转载 2017-04-16 16:07:27 · 672 阅读 · 0 评论 -
struct file 和 struct inode的理解
内核中用inode结构表示具体的文件,而用file结构表示打开的文件描述符。Linux2.6.27内核中,inode结构体具体定义如下:struct inode {struct hlist_node i_hash;struct list_head i_list;struct list_head i_sb_list;struct list_head i_d转载 2017-04-16 16:06:33 · 1212 阅读 · 0 评论 -
linux内核中struct file_operations 结构体介绍
File_operations结构体 file_operation就是把系统调用和驱动程序关联起来的关键数据结构。这个结构的每一个成员都对应着一个系统调用。读取file_operation中相应的函数指针,接着把控制权转交给函数,从而完成了Linux设备驱动程序的工作。 在系统内部,I/O设备的存取操作通过特定的入口点来进行,而这组特定的入口点恰恰是由设备驱动程序提供的。转载 2017-04-16 16:05:32 · 1640 阅读 · 0 评论 -
YUV格式详解
YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大。YUV是一个比较笼统地说法,针对它的具体排列方式,可以分为很多种具体的格式。转载一篇对yuv格式解释的比较清楚地文章,也可以直接参考微软的那篇文章。对于YUV格式,比较原始的讲解是MPEG-2 VIDEO部分的解释,当然后来微软有转载 2017-04-19 21:53:23 · 674 阅读 · 0 评论 -
和菜鸟一起学linux之V4L2摄像头应用流程
2012-11-16 11:52 28498人阅读 评论(16)收藏举报本文章已收录于:分类: Linux学习之路(72) 作者同类文章X•初探linux子系统集之i2c子系统(二)•初探linux子系统集之timer子系统(三)•初探linux子系统集之timer子系统(二)•初探linux子系统集之timer子转载 2017-04-06 16:45:01 · 473 阅读 · 0 评论 -
共享内存映射之mmap()函数详解
共享内存映射之mmap()函数详解 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,转载 2017-04-06 16:19:51 · 688 阅读 · 0 评论 -
Linux 设备驱动 ====> 并发控制 --- 信号量与互斥体
信号量信号量的使用信号量(semaphore)是用于保护临界区的一种常用方法,他的用法和自旋锁类似,但是,与自旋锁不同的是,当获取不到信号量时,进程不会原地打转,而是进入休眠等状态。Linux中信号量的操作主要有1.定义信号量struct semaphore sem;2.初始化信号量void sema_init(struct semaphore *sem, int va转载 2017-05-31 20:22:00 · 603 阅读 · 0 评论 -
Linux 设备驱动 ====> 并发控制 --- 原子操作
原子操作原子的操作指的就是在执行过程中不会被别的代码所中断的操作。在Linux中原子操作的方法有很多,有整型原子和位原子,他们在任何情况下操作都是原子的,这些原子操作的实现都是依赖CPU来实现的,因此这些函数都与CPU架构密切相关。整型原子我们arm架构的原子实现在kernel/arch/arm/include/asm/atomic.h1. 设置源自变量的值转载 2017-05-31 20:22:49 · 681 阅读 · 0 评论 -
linux模块(module_init)、子系统(subsys_initcall)入口函数详解
linux内核代码是以模块(module)和子系统(subsys)为单元的层次结构。在写模块代码时我们知道入口函数是module_init()或subsys_initcall(),在linux启动时会被调用,这其中更为详细的前因后果是什么呢,一起来了解一下。一,linux模块程序示例下面是一个linux模块的示例程序:[objc] v...转载 2018-03-26 15:08:29 · 6583 阅读 · 0 评论 -
USB hub 多usb接口重映射:udev 规则
你在开发的过程中是否会出现 USB端口号会发生变化。 例如: 机器人底盘与雷达都是 ttyUSB* .其序号与接入的先后有关。 对于写好的launch每次修改对应接口是不是很麻法,或者每次得先插入一个再插另外一个。才能保证ttyUSB0 ttyUSB1. 但是如果你重启系统,说不定还是有问题出现。。 ==》 不如将端口重映射到新的固定的名字,并且设置其权限为可读。 这样不转载 2017-08-23 18:52:42 · 1681 阅读 · 0 评论 -
s5pv210——定时器的知识和代码操作
以下内容源于朱有鹏《物联网大讲坛》课程的学习,如有侵权,请告知删除。一、定时器简介1、定时器是SoC中常见外设(1)定时器与计数器。计数器每隔一个固定时间会计一个数;计数值 * 计数时间周期 = 一段时间。这个时间段就是我们定的时间。(2)定时器/计数器作为SoC的外设,主要用来实现定时执行代码的功能。定时器相对SoC而言,就像闹钟相对于人的意义转载 2017-06-02 00:24:12 · 1356 阅读 · 0 评论 -
android 用gpio作为pwm输出控制led背光
转载时请注明出处和作者文章出处:http://blog.csdn.net/lbmygf 1、在板级初始化文件mx53_smd_c中将gpio1-1配置为pwm模式: /* GPIO1 FOR pwm */ MX53_PAD_GPIO_1__PWM2_PWMO, 2、kernel_imx/arch/arm/plat-mxc/pwm.c 在pwm驱动转载 2017-06-01 22:42:27 · 3047 阅读 · 0 评论 -
混杂设备驱动--输出两路PWM
尝试用2440的TOUT0和TOUT1输出PWM驱动两个电机,电机的硬件驱动电路是使用L298N。先单独测试TOUT0的PWM输出:(1)驱动程序:使用misc混杂设备驱动模型,当然也可以使用基本的字符设备模型。使用misc设备驱动模型步骤:①初始化一个struct miscdevice结构体:主要是file_operation结构体成员和name②使用misc_registe转载 2017-06-01 17:24:56 · 885 阅读 · 0 评论 -
应用中的linux驱动 platform_device
linux驱动学习(六) 应用中的linux驱动 platform_device标签: linuxstructresourcesmodule嵌入式table2011-10-26 22:13 8237人阅读 评论(2)收藏举报本文章已收录于:分类: linux驱动程序(10) 作者同类文章X•linu转载 2017-06-01 00:41:17 · 369 阅读 · 0 评论 -
关于linux驱动(应用)程序头文件使用
关于linux驱动(应用)程序头文件使用标签: linux驱动应用程序头文件 2013-08-13 16:29 483人阅读 评论(0)收藏举报本文章已收录于:分类: Linux基础知识(18) 作者同类文章X关于Linux驱动(应用)程序头文件使用 驱动程序:转载 2017-05-31 21:26:41 · 509 阅读 · 0 评论 -
Linux 设备驱动 ====> 并发控制 --- 自旋锁
自旋锁的使用自旋锁(spin_lock)是一种典型的对临界资源进行互斥访问的手段,顾名思义,为了获得一个自旋锁,在某CPU上运行的代码需要先执行一个原子操作,该操作测试并设置某个内存变量,在该操作完成之前其他执行单元不可能访问到这个内存变量。如果测试结果表明锁已经空闲,则程序获得这个自旋锁并继续执行;如果测试表明锁仍被占用,程序将在一个小的循环内重复这个“测试并设置”操作,就是“自旋”的动转载 2017-05-31 20:23:39 · 507 阅读 · 0 评论 -
ioctl()函数详解
我这里说的ioctl函数是指驱动程序里的,因为我不知道还有没有别的场合用到了它,所以就规定了我们讨论的范围。写这篇文章是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、 什么是ioctl ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用转载 2017-04-06 15:44:59 · 456 阅读 · 0 评论 -
YUYV编码成h.264:Linux视频采集与编码(二)
YUYV编码成h.264:Linux视频采集与编码(二)标签: h.264linux存储2012-05-01 20:39 12737人阅读 评论(5)收藏举报本文章已收录于:分类: Linux(2) 作者同类文章X版权声明:本文为博主原创文章,未经博主允许不得转载。用转载 2017-04-13 22:59:28 · 678 阅读 · 0 评论 -
linux驱动开发:背光设备
linux驱动开发:背光设备标签: linux驱动开发 2016-08-26 10:54 49人阅读 评论(0)收藏举报本文章已收录于:分类: 内核学习(31) 作者同类文章X版权声明:学习记录,积少成多上一篇的pwm 驱动,加上第一篇的led灯控制,合起来就是背光设转载 2016-12-26 15:03:12 · 788 阅读 · 0 评论 -
linux驱动开发之pwm蜂鸣器
驱动开发,控制pwm蜂鸣器! 蜂鸣器有多种类型,一种是给电就叫,另一种给电了还不行,还需要freq才会叫。大概称作有源和无源吧!我们此时将buzzer的驱动加入到内核中去。/* * linux/drivers/char/smart210_pwm.c * * This program is free software; you can redistribute it and/or转载 2016-12-26 15:01:07 · 1476 阅读 · 0 评论 -
GPIO驱动相关笔记
GPIO驱动相关笔记标签: structc数据结构moduleoutputclass2011-03-27 22:54 6843人阅读 评论(9)收藏举报本文章已收录于:版权声明:本文为博主原创文章,未经博主允许不得转载。 打算跟着友善之臂的《mini2440 Linux移植开发指南》来做个LED驱动,虽然LED转载 2016-12-26 11:44:20 · 494 阅读 · 0 评论 -
linux之延时及内核定时器的使用
linux之延时及内核定时器的使用标签: linuxtimerincludelistfunction任务2012-03-20 17:38 1001人阅读 评论(0)收藏举报本文章已收录于:分类: linux(32) 作者同类文章X版权声明:本文为博主原创文章,未经博主允许不得转载转载 2016-12-26 11:33:48 · 2401 阅读 · 0 评论 -
GPIO驱动分析 & GPIO使用方法--S5PC110和S5PC210
参考文件:arch/arm/mach-s5pv210/include/mach/gpio.h , /drivers/gpio/gpiolib.c , arch/arm/plat-s3c/include/plat/gpio-core.h , arch/arm/mach-s5pv210/gpio.c .另外, documentation/gpio.txt 文档是重要参考!通常, GPI转载 2017-01-02 21:11:13 · 987 阅读 · 0 评论 -
S5PV210 内存配置(地址空间和片选)
被内存的事折腾了几天了,昨天在CSDN发了个提问贴,然后顺着一点一点的往下试,既然试出来了。在提问贴里有实验的过程。这就讲一下最终的设置吧。S5PV210有两个独立的内存控制器:DMC0和DMC1,每个控制器又有两个片选:CS0和CS1。它可以支持16bits和32bits的内存。两个控制器对应的地址空间是DMC0 0x2000_0000 ~ 0x3FFF_FFFF转载 2017-01-02 21:04:13 · 886 阅读 · 0 评论 -
LED驱动程序相关头文件简单介绍
LED驱动程序相关头文件简单介绍标签: cstructoutputmoduletypesfile2011-10-25 21:53 4511人阅读 评论(1)收藏举报本文章已收录于:分类: linux驱动开发(8) 作者同类文章X版权声明:本文为博主原创文章,未经博主允许不得转载。转载 2016-12-11 22:06:02 · 1421 阅读 · 0 评论 -
解析 Linux 内核可装载模块的版本检查机制
转自:http://www.ibm.com/developerworks/cn/linux/l-cn-kernelmodules/简介: 为保持 Linux 内核的稳定与可持续发展,内核在发展过程中引进了可装载模块这一特性。内核可装载模块就是可在内核运行时加载到内核的一组代码。通常 , 我们会在两个版本不同的内核上装载同一模块失败,即使是在两个相邻的补丁级(Patch Level)版本上。转载 2016-10-13 22:34:37 · 1187 阅读 · 1 评论 -
Linux内核移植 part4:USB系统介绍
1. 历史USB,是英文Universal Serial Bus(通用串行总线)的缩写,而其中文简称为“通串线”,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。下一代USB接口将会有改动方向,下一代的Type-C USB接口,转载 2017-03-28 09:38:46 · 526 阅读 · 0 评论 -
Linux USB Host 驱动开发入门
标签: usblinux内核源码host2016-10-21 00:56 109人阅读 评论(0)收藏举报本文章已收录于:分类: Linux&UNIX(51) 作者同类文章X版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]目录结构驱动范例讲解1转载 2017-03-28 09:54:20 · 1766 阅读 · 0 评论 -
Linux内核移植 part3:usb host驱动
标签: linux kernel移植usbexynos42017-03-06 14:53 39人阅读 评论(0)收藏举报本文章已收录于:分类: Linux&UNIX(51) 作者同类文章X版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]一 硬件配置转载 2017-03-28 09:59:14 · 827 阅读 · 0 评论 -
V4L2采集yuv视频花屏:Linux视频采集与编码(一)
V4L2采集yuv视频花屏:Linux视频采集与编码(一)标签: linuxvideobufferiostructnull2012-05-01 20:35 16179人阅读 评论(42)收藏举报本文章已收录于:嵌入式开发知识库 分类: Linux(2) 作者同类文章X•V4L2视频采集与H.转载 2017-04-13 22:54:20 · 2052 阅读 · 0 评论 -
v4l2的应用程序编写
v4l2的应用程序编写2013-01-17 00:10 1104人阅读 评论(0)收藏举报本文章已收录于:版权声明:本文为博主原创文章,未经博主允许不得转载。#include #include #include #include #include #include #include #include /转载 2017-04-10 22:35:56 · 959 阅读 · 0 评论 -
Linux系统下USB摄像头驱动开发
一、 Linux系统中的USB摄像头驱动程序USB摄像头以其良好的性能和低廉的价格得到广泛应用。同时因其灵活、方便的 <!--google_ad_client = "pub-2299987709779770";google_ad_width = 300;google_ad_height = 250;google_ad_format = "300x250_as";google_a转载 2017-04-06 15:12:22 · 890 阅读 · 0 评论 -
V4L2驱动详解 API翻译
博主按:介绍V4L2基础的东西,不知道是哪位同志翻译的,莫名的感动啊。这个必须转! 另,对未翻译的部分博主加以补充。文中以蓝色字体表示,如果有错误请高手指正。还有些图片好像不能显示,我从原文复制过来了。 v4l2驱动编写篇一--介绍 原文网址:http://lwn.net/Articles/203924/大部分所需的信息都在这里。作为一个驱动作转载 2017-04-07 10:25:42 · 883 阅读 · 0 评论 -
USB2.0速度识别(USB上电分析)
我们知道USB2.0向下兼容USB1.x,即高速2.0的hub能支持所有的速度类型的设备,而USB1.x的hub不能支持高速设备(High Speed Device)。因此,如果高速设备挂到USB1.x的hub上,那该设备只能工作在全速模式下。不管是hub还是设备(device),对于速度的区分是非常重要的,否则,后续的通信根本无法进行。 全速和低速识别 根据规范,全速转载 2017-03-28 21:19:10 · 910 阅读 · 0 评论 -
简述USB识别过程
主机端的USB集线器监视着它的每个端口的信号线的电压,当USB设备插入主机时,信号线的电平会发生变化,此时主机知道有新设备插入了。 当主机检测到设备的插入后会首选重启这个设备,接着主机发出Get_Port_Status请求来验证设备是否已经重启,设备重启后主机通过检测根信号线的电平状态判断设备的速度。 主机发送第一次Get_Descriptor(wValue字段的高字节为0x01,表示转载 2017-03-28 20:28:52 · 3500 阅读 · 0 评论 -
linux 下USB 摄像头的使用说明
linux 下USB 摄像头的使用说明查询摄像头是否是UVC设备参见官网UVC驱动代码详解明明是UVC摄像头但不是不支持怎么办心得此处我只说用uvc通用驱动查询摄像头是否是UVC设备,参见官网1 找到CAMERA ID2 lsusb -d VID:PID -v | grep “14 Video” 如果输出有下面转载 2017-04-07 09:33:16 · 1736 阅读 · 0 评论