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_
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
干嘛学习 Scripts
这个问题可有趣的很了,我为什么要学习 scripts 呢?不要学可不可以呀!?呵呵!如果您只想要『会用』 Linux 就好的话,那么这一个部分确实可以先跳过去不看也没关系,不过,如果您想要更加的了解与控制 Linux ,使 Linux 运作更顺畅之外,还可以高枕无忧的让你的 Linux Server 在 Internet 上面提供相关 ......
主要有下面三种方式:
1.whereis 文件名
特点:快速, 执行准确查找。
2.find / -name 文件名
查出很多东西,有很多“Permission Denied".
#find / -name php.ini
3.locate 文件名
最快的方法.执行模糊查找。
注意:第一次使用该命令,可能需要更新数据库,按照提示的命令执行一下就好了.
这里就要说说locate命令 ......
i didn't test.
under fedora12
install qt eclipse when install the operation system
qt version is 4.5.3
eclipse version is 3.5.1
download qt-eclipse-integration-linux.x86<version>.tar.gz
after that
Find your eclipse/plugins folder.
If you installed Eclipse to /usr/local, you wil ......
http://tech.idv2.com/2008/01/11/linux-sysinfo-cmds/
最近看了一些Linux命令行的文章,在系统信息查看方面学到不少命令。
想起以前写过的一篇其实Linux这样用更简单
,
发现这些系统信息查看命令也可以总结出一篇小小的东西来了。
另外这里
还有非常多的命令,
可以作为参考。
系统
# uname -a # ......