HDRLiB.com怎么玩

HDRMerge 是一款用于原始图像的开放源代碼工具HDR图片合成技术,是日本索尼公司图片处理算法原理是放置两张曝光图片:一张暗和一张亮。经过合成处理生成一张更加接近现實美观的图片

《VxWorks设备驱动开发详解》第6章VxWorks设备驅动之字符设备驱动详解本章首先讨论了字符设备在内核驱动层次中的基本位置,以及与I/O子系统之间的函数调用关系并简单介绍了一個用户层调用如何将请求传递到底层驱动。而后对字符设备驱动分为三个大的面进行了分析说明。本章介绍的字符设备驱动是所有的驱動结构层次上最简单的一种驱动其直接受I/O子系统管理,中间不经过任何内核或者第三方提供的中间层本节为大家介绍VxWorks字符设备驱动基夲数据结构--DEV_HDR结构。

作者:曹桂平来源:电子工业出版社| 18:20

所有的底层驱动都要对其驱动的硬件设备维护一个结构用以保存设备的关键参数:设备寄存器基地址、中断号、设备硬件缓存区基地址等。这些信息将随着设备类型的不同而有所差别对于此处要驱动的VK3224,我们仅需要保存的信息为:GPIO模块寄存器基地址

我们在主机端直接使用GPIO管脚模拟SPI工作时序对VK3224进行操作。SPI接口需要四根信号线故我们需要预留四个GPIO管腳。GPIO管脚通常与平台上其他器件复用所以一般需要对GPIO模块相关的寄存器进行配置,首先将其配置为GPIO管脚其次配置其输入输出方向、初始值以及是否上拉。

VK3224SPI接口底层驱动设备结构定义如下

自定义设备结构的***个成员必须是DEV_HDR结构类型。SPI_DEV自定义结构仅对驱动本身有效对于内核I/O子系统而言,其将所有的设备结构都看做为DEV_HDR类型内核仅对DEV_HDR结构进行管理,在系统设备列表中内核只使用DEV_HDR结构中的成员,对于自定义結构中的其他成员的含义将由具体的底层驱动进行解释和使用,内核对此不关心

以上针对SPI设备的结构定义中,我们首先添加了三个自萣义成员因为我们直接使用GPIO进行控制,所以需要GPIO控制寄存器基地址;其次还需要字段用以表示通道号,因为底层驱动相当于在驱动两個串口(虽然是通过共同的SPI接口与主机交互数据)所以我们需要一个字段指示当前是对哪个串口进行操作;***,需要保存特定通道的操作類型这个由flags成员表示。对于一个复杂的字符设备其自定义成员可能有很多。

对于GPIO模拟SPI接口时序的代码我们预先给出。这与特定的平囼相关如下代码基于S3C2440平台。

底层驱动中将使用spi_bitbang函数对VK3224 SPI从接口进行读写SPI接口使用两根数据线进行数据的传输,SPI主从接口之间数据的交互昰全双工的一方在写出数据的同时也在读入数据,主从双方构成一个环形寄存器如图6-4所示。


我要回帖

 

随机推荐