易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux Platform Device and Driver

    

Linux 2.6
起引入了一套新的驱动管理和注册机制 :Platform_device
和 Platform_driver

     Linux
中大部分的设备驱动,都可以使用这套机制 ,
设备用
Platform_device
表示,驱动用
Platform_driver
进行注册。

     Linux platform driver
机制和传统的 device driver
机制 (
通过 driver_register
函数进行注册 )
相比,一个十分明显的优势在于
platform
机制将设备本身的资源注册进内核,由内核统一管理,在驱动程序中使用这些资源时通过 platform device
提供的标准接口进行申请并使用。这样提高了驱动和资源管理的独立性,并且拥有较好的可移植性和安全性 (
这些标准接口是安全的 )
。 
    Platform
机制的本身使用并不复杂,由两部分组成: platform_device
和 platfrom_driver


   
通过 Platform
机制开发发底层驱动的大致流程为 :
定义 platform_device ->
注册 platform_device->
定义 platform_driver->
注册 platform_driver
。 
   
首先要确认的就是设备的资源信息,例如设备的地址,中断号等。

在 2.6
内核中 platform
设备用结构体 platform_device
来描述,该结构体定义在
kernel\include\linux\platform_device.h
中,
struct platform_device {
const char *
name;
u32 id;
struct device
dev;
u32
num_resources;
struct resource
* resource;
};
 
   
该结构一个重要的元素是 resource
,该元素存入了最为重要的设备资源信息,定义在
kernel\include\linux\ioport.h
中,

struct resource {
const char
*name;
unsigned long
start, end;
unsigned long
flags;
struct resource
*parent, *sibling, *child;
};
定义好了 platform_device
结构体后就可以调用函数 platform_add_devices
向系统中添加该设备了,之后可以调用
platform_device_register()
进行设备注册。要注意的是,这里的 platform_device
设备的注册过程必须在相应设备驱动加载之前被调用,即执行 platform_driver_register
之前 ,
原因是因为驱动注册时需要匹配内核中所以已注册的设备名。
在驱动初始化函数中调用函数 platform_driver_


相关文档:

实战Linux Bluetooth编程(三) HCI层编程

1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI)  就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......

实战Linux Bluetooth编程(六) L2CAP编程实例

例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
 如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......

linux的简单sh程序设计

干嘛学习 Scripts
这个问题可有趣的很了,我为什么要学习 scripts 呢?不要学可不可以呀!?呵呵!如果您只想要『会用』 Linux 就好的话,那么这一个部分确实可以先跳过去不看也没关系,不过,如果您想要更加的了解与控制 Linux ,使 Linux 运作更顺畅之外,还可以高枕无忧的让你的 Linux Server 在 Internet 上面提供相关 ......

01 什么是Linux 鸟基

POSIX
是一种标准规范,主要针对在 Unix
操作系统上面跑的程序来进行规范。 若你的操作系统符合 POSIX ,则符合 POSIX 的程序就可以在你的操作系统上面运作。 Linux
由于支持 POSIX ,因此很多 Unix 上的程序可以直接在 Linux 上运作, 因此程序的移植相当简易!也让大家容易转换平台,提升
Linux 的使用率。
驱动与 ......

linux服务大全

因工作需要经常要查找这些服务用途,因此将网上的一些列表进行相应收集整理,方便查阅
不要关闭以下服务(除非你有充足的理由):
acpid, haldaemon, messagebus, klogd, network, syslogd
请确定修改的是运行级别 3 和 5。
NetworkManager, NetworkManagerDispatcher
       &nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号