linux的platform驱动
从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;
};
下面举s3c2410平台的i2c驱动作为例子来说明:
/* arch/arm/mach-s3c2410/devs.c */
/* I2C */
static struct resource s3c_i2c_resource[] = {
[0] = {
.start = S3C24XX_PA_IIC,
.end = S3C24XX_PA_IIC + S3C24XX_SZ_IIC - 1,
&
相关文档:
环境变量:
export P4PASSWD=abcdefg
export P4CLIENT=dyoldfish.com //这个可以不设
export P4USER=dyoldfish
export P4PORT=192.168.1.198:1666
命令:
1、p4 client #配置本地信息,文件下载在哪里在这里面配置,Root项
2、p4 sync #从perforce 下载文件
3、p4 login& ......
这一段时间一直进行Linux on floppy的尝试,借此希望能对如何构造一个Linux发行版本、Linux的启动、Linux系统的裁剪有一个深刻的认识。
在进行中,我有一些自己的心得体会,尤其是如何构造一个较小的Linux系统。这里贴出其中的一部分,希望能与各位共同分享。有不对的地方,也望各位高手能不吝赐教。
构造Linux on flop ......
第一步:裁减内核
打开终端,输入:cd /usr/src/linux2.4,然后输入make xconfig.现在编译内核正式开始了
1.1 “code maturity level options”选项,代表代码的成熟等级,因为这是一个试验的部分,我们不需要,所以关闭它。
1.2 “Loadable module support”可加载模块支持
可加载模块是指内核代 ......
说到裁减Linux,无非是为了减小磁盘占用或者是为了某些特定场合的应用(如嵌入式系统)。以RedHat 7.3为例,其最小安装仍然达到了300M,这不得不让人对一直号称小而全的Linux系统感到疑惑。
作为自己手中课题的一个铺垫,不久前我尝试了对Linux进行裁减,虽然没有达到预期的一张软盘大小,但结果也相当有吸引力。下 ......
Linux下scp的用法
http://blog.csdn.net/Channels_net/archive/2009/09/02/4510286.aspx
scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令。
有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过简单的scp命令便可达到目的。
一 ......