1、HAL层的hardware module主要实现文件为:
hardware/libhardware/hareware.c
hardware/libhardware/include/hardware/hardware.h
Hareware.c中的内容在此就不做解释,可自行学习。
2、hardware.c中三个重要的结构体:
struct hw_module_t; //描述一个硬件模块
struct hw_module_methods_t;//定义了操作设备的方法,只有一个open函数
struct hw_device_t;//表示一个硬件设备,存储了各种硬件设备的公共属性和方法
3、三个结构的关系图:
4、三个结构体的描述:
typedef struct hw_device_t {
uint32_t tag; /** tag must be initialized to HARDWARE_DEVICE_TAG */ 标识符
uint32_t version; /** version number for hw_device_t */ 版本号
struct hw_module_t* module; /** reference to t