![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux学习、开发与驱动
文章平均质量分 84
LKV_刘言
沉淀,自省,自驱,输出
展开
-
Linux I2C设备驱动编写(一)
在Linux驱动中I2C系统中主要包含以下几个成员:I2C adapter 即I2C适配器I2C driver 某个I2C设备的设备驱动,可以以driver理解。I2C client 某个I2C设备的设备声明,可以以device理解。I2C adapter是CPU集成或外接的I2C适配器,用来控制各种I2C从设备,其驱动需要完成对适配器的完整描述,最主要的工作是需要完成i2c原创 2014-03-16 23:24:20 · 45149 阅读 · 7 评论 -
V4L2文档翻译(三)
用户控制设备通常有一些用户可设置的控制器,如亮度和饱和度等等一些会展示在图形用户界面的东西。但不同设备会有不同的可用设置,而且此外其可设置值范围、默认值在不同设备上也不尽相同。控制ioctl提供创造一个良好用户界面的信息和机制,这会让这些控制器在任何设备上都能正确的工作。所有控制器都需通过ID值进行访问。V4L2定义了一些用于特殊目的的ID。驱动也可以使用V4L2CID翻译 2014-04-08 23:39:23 · 3867 阅读 · 0 评论 -
为何gpio_to_irq不能静态使用?
之前在调试传感器模块的时候发现,在结构体声明的时候irq成员使用gpio_to_irq会报错,而动态使用的话就没有问题。就对gpio_to_irq为什么不能静态使用产生了疑问。恰巧最近又有朋友遇到了同样的问题,也就提醒了我,去找出原因。开始测试我写了一个简单的linux执行程序进行测试,因为在内核源码中发现不同平台对gpio_to_irq的定义不同,有的是宏定义,而更多的则直接是函原创 2014-04-10 10:52:24 · 5459 阅读 · 0 评论 -
V4L2文档翻译(六)
http://linuxtv.org/downloads/v4l-dvb-apis/crop.html图像裁剪、插入及缩放一些视频捕捉设备可以取一张图片的小部分,然后对图片进行任意尺寸的放大或缩小。我们将这些能力称之为裁剪和缩放。一些视频使出设备可以将图片放大或缩小,然后将其插入到视频信号的任意扫描线和横向偏移中。应用程序可以使用一下API来选择视频信号中的区域,查询默认区域以翻译 2014-04-11 17:14:42 · 4596 阅读 · 1 评论 -
V4L2文档翻译(七)
裁剪、组合及缩放的实验性API实验性接口将来也许会发生改变介绍一些视频捕捉设备可以对一张图片的取样部分进行任意尺寸的缩小或放大。然后,这些设备可以讲这个图片插入到更大的图片中。一些视频输出设备可以对输入图片进行部分裁剪,对其进行缩放以及将其插入到视频信号的任意扫描线和横向偏移中。对于这些能力,我们称之为裁剪、缩放和组合。对于视频捕捉设备来说,源是视频信号,由其裁剪目标决翻译 2014-04-11 17:17:25 · 2494 阅读 · 0 评论 -
V4L2文档翻译(一)
相关资料https://www.kernel.org/doc/Documentation/zh_CN/video4linux/v4l2-framework.txthttp://linuxtv.org/downloads/v4l-dvb-apis/第一节:常见API原理打开和关闭设备设备命名相关设备多重打开共享数据流功能设备命名V4L2驱动以内核模块形式存在,翻译 2014-04-08 23:22:00 · 8124 阅读 · 1 评论 -
V4L2文档翻译(五)
http://linuxtv.org/downloads/v4l-dvb-apis/format.html数据格式数据格式协商不同设备通过应用交换不同种类的数据。比如视频图像,raw或分割的VBI数据,RDS数据电报。甚至是一个种类不同格式也是有可能的,特别是丰富的图像格式。尽管驱动在设备关闭和重打开时提供了一个默认值和一些预置选项,在做数据交换前应用程序也应该协商数据格式。协商意翻译 2014-04-11 17:12:10 · 2539 阅读 · 1 评论 -
Android4.0 USB挂载内核驱动层流程分析(二)
接《Android4.0 USB挂载内核驱动层流程分析(一)》1.supported_functionsstatic struct android_usb_function *supported_functions[] = { &rmnet_smd_function, &rmnet_sdio_function, &rmnet_smd_sdio_function, &rmnet_原创 2012-08-21 00:12:03 · 6076 阅读 · 0 评论 -
MPU6050 I2C master模式调试记录
MPU6050这个芯片是可以最多外挂5个其他的sensor的(好强大!),所以在将MPU6050调通后也理应对这一部分进行调试,废话不多说,开始说我的调试过程。本文中对i2cset的使用简写,没有总线号和其他参数,读者请自行查阅,相信很好理解的。调试过程使能MPU6050。因为MPU6050上点后为sleep状态,所以要首先对其进行使能,让他开始正常工作。如果不这样,那么其他的原创 2014-04-04 16:50:26 · 13142 阅读 · 6 评论 -
V4L2文档翻译(四)
扩展控制介绍控制机制原本是用于用户设置(如亮度,饱和度等)。但无论如何,它恰恰证明了对于复杂驱动他是个非常有用的模型,如每个驱动包含一个大型API的子模块。MPEG编码API就是在这样的设计理念下:MPEG标准十分庞大,当前支持MPEG编码的硬件只是声明了这个标准的一小部分。另外,许多关系到怎样将视频编码到MPEG流的参数是定义在MPEG编码芯片中,因为MPEG标准只定义了最终MP翻译 2014-04-08 23:40:21 · 4162 阅读 · 0 评论 -
V4L2文档翻译(二)
视频标准视频设备通常支持一种或多种不同的视频标准或更多的标准衍生体。每一个视频输入和输出支持一组标准。这项设置由VIDIOC_ENUMINPUT和VIDIOC_ENUMOUTPUT ioctl返回的v4l2_input和v4l2_output结构体中的std成员体现。V4L2位每一种现今世界的模拟视频标准定义了一个位,且为驱动定义标准留出了一些位。比如,在PAL TV上观看NTSC翻译 2014-04-08 23:25:57 · 4679 阅读 · 0 评论 -
V4L2文档翻译(十二)
http://linuxtv.org/downloads/v4l-dvb-apis/io.html第三节:输入和输出V4L2 API定义了一些不同的方法来从设备读取或写入,所有需要与应用程序交换数据的驱动最少必须支持其中之一。在打开一个V4L2设备后会自动选择使用经典的I/O方法read()和write(),当驱动不支持写或读时会失败。其他的方法必须通过协商。应用程序通翻译 2014-05-05 10:54:19 · 6468 阅读 · 0 评论 -
Device Tree常用方法解析
Device Tree常用方法解析Device Tree在Linux内核驱动中的使用源于2011年3月17日Linus Torvalds在ARM Linux邮件列表中的一封邮件,他宣称“this whole ARM thing is a f*cking pain in the ass”,并提倡学习PowerPC等其他架构已经成熟使用的Device Tree技术。自此,Device Tree原创 2014-03-16 23:21:26 · 22880 阅读 · 6 评论 -
Linux I2C设备驱动编写(二)
在(一)中简述了Linux I2C子系统的三个主要成员i2c_adapter、i2c_driver、i2c_client。三者的关系也在上一节进行了描述。应该已经算是对Linux I2C子系统有了初步的了解。下面再对他们之间的关系进行代码层的深入分析,我认为对他们的关系了解的越好,越有助于I2C设备的驱动开发及调试。带着问题去分析可能会更有帮助吧,通过对(一)的了解后,可能会产生以下的原创 2014-03-16 23:26:50 · 23755 阅读 · 3 评论 -
V4L2文档翻译(八)
http://linuxtv.org/downloads/v4l-dvb-apis/pixfmt.html第二节:图像格式V4L2 API首先是被设计成让设备与应用程序交换图像数据,struct v4l2_pix_format和v4l2_pix_format_mplane结构体定义了内存中图片的格式和布局。早期用作单平面API,后期就用作了多平面版本。图片格式通过VIDIOC_S_FM翻译 2014-04-14 16:17:46 · 2958 阅读 · 0 评论 -
Linux I2C设备驱动编写(三)-实例分析AM3359
TI-AM3359 I2C适配器实例分析I2C Spec简述特性:兼容飞利浦I2C 2.1版本规格支持标准模式(100K bits/s)和快速模式(400K bits/s)多路接收、发送模式支持7bit、10bit设备地址模式32字节FIFO缓冲区可编程时钟发生器双DMA通道,一条中断线三个I2C模块实例I2C0\I2C1\I2C2时钟信号能够达到最高48MHz,来自PRCM不原创 2014-03-18 15:11:11 · 19149 阅读 · 2 评论 -
V4L2文档翻译(九)
RGB格式RGB组合格式名字RGB组合格式描述此格式用来匹配PC图形帧缓存。每个像素占据8,16,24或32个位,他们都是组合像素格式,其意为在内存中所有像素数据都是相邻排列的。当使用这些格式之一时,驱动应该上报颜色空间为V4L2_COLORSPACE_SRGB。表2.6 组合RGB图像格式定义码Byte 0Byte 1Byte翻译 2014-04-16 21:07:27 · 9170 阅读 · 0 评论 -
V4L2文档翻译(十三)
http://linuxtv.org/downloads/v4l-dvb-apis/dmabuf.htmlI/O流 (DMA缓存引用)这是一个实验性接口,将来可能发生改变DMABUF框架提供了在多设备见共享缓存的通用方法,支持DMABUF的设备驱动可以将一个DMA缓存以文件句柄的方式输出到用户空间(输出者规则),以文件句柄的方式从用户空间获取一个DMA缓存,这个文件句柄是之前其翻译 2014-05-05 14:17:03 · 5254 阅读 · 1 评论 -
V4L2文档翻译(十)
好久没更新,有好几篇翻译都沉寂在翻译 2014-05-05 10:52:29 · 6411 阅读 · 1 评论 -
V4L2文档翻译(十一)
http://linuxtv.org/downloads/v4l-dvb-apis/ch02s08.html压缩格式定义码描述V4L2_PIX_FMT_JPEG'JPEG'待定,见VIDIOC_G_JPEGCOMP VIDIOC_S_JPEGCOMPV4L2_PIX_FMT_MPEG'MPEG'MP翻译 2014-05-05 10:53:34 · 3875 阅读 · 0 评论 -
关于HMC5883L驱动书写及调试的总结
刚刚结束对传感器HMC5883L的驱动书写及调试工作,虽然之前对相关的各种知识点都有接触,但是在真正从头书写驱动的时候还是遇到了很多不大不小的麻烦,在这里自行总结一下,也是作为以后驱动书写的一个经验教训,更是对以往所学内核驱动相关知识的复习和总结。事实证明,看了多少书,也不如亲自动手实践学的快,记得牢。关于I2C因为手头有几个传感器,都需要用到I2C接口,所以在之前就将I2C子系统复习并深原创 2014-03-31 11:33:19 · 17705 阅读 · 1 评论