【文件属性】:
文件名称:平台设备和驱动-基于himawari-8卫星的沙尘监测
文件大小:7.57MB
文件格式:PDF
更新时间:2024-06-29 20:21:02
嵌入式linux 周立功
2.10 平台设备和驱动
2.6 内核引入了 platform 机制,能够实现对设备所占用的资源进行统一管理。Platform
机制抽象出了 platform_device 和 platform_driver 两个核心概念,与此相关的还有一个重要概
念就是资源 resource。
2.10.1 资源
资源 resource 是对设备所占用的硬件信息的抽象,目前包括 I/O、内存、IRQ、DMA、
BUS 这 5 类。在内核中,用 resource 结构来对资源进行描述。resource 结构在
文件中定义,如程序清单 2.34 所示。
程序清单 2.34 resource 数据结构
struct resource {
resource_size_t start; /* 资源在 CPU 上的物理起始地址 */
resource_size_t end; /* 资源在 CPU 上的物理结束地址 */
const char *name; /* 资源名称 */
unsigned long flags; /* 资源的标志 */
struct resource *parent, *sibling, *child; /* 资源的父亲、兄弟和子资源 */
};
flags通常被用来表示资源的类型,可用的资源类型有 IO、MEM、IRQ等,在
中定义,各资源类型和定义如下:
#define IORESOURCE_TYPE_BITS 0x00001f00 /* 资源类型 */
#define IORESOURCE_IO 0x00000100
#define IORESOURCE_MEM 0x00000200
#define IORESOURCE_IRQ 0x00000400
#define IORESOURCE_DMA 0x00000800
#define IORESOURCE_BUS 0x00001000