WEB开发网
开发学院手机开发Android 开发 Android HAL 阅读

Android HAL

 2010-04-21 06:36:00 来源:WEB开发网   
核心提示:二、 HAL Stub 实现步骤 (Implementation)1. 设计自已的 wrapper data structure* 编写头文件 led.h* 定义 struct led_module_t* 框架提供的 struct hw_module_t 、 struct hw_device_t 必须 放在第一个 fi

二、 HAL Stub 实现步骤 (Implementation)

1. 设计自已的 wrapper data structure

* 编写头文件 led.h

* 定义 struct led_module_t

* 框架提供的 struct hw_module_t 、 struct hw_device_t 必须 放在第一个 field ,并取名为 common 。

* 可参考 hardware/hardware.h

struct led_module_t {

struct hw_module_t common;

/* support API for LEDServices constructor */

};

2. led_module_t 的意义

声明初始化时期 (new object) 的 supporting API 、在 constructor 里会使用到。

3. 定义 led_control_device_t

声明控制时期的 supporting API 、在 Manager API 里会使用到。

struct led_control_device_t {

struct hw_device_t common;

/* supporting control APIs go here */

int (*getcount_led)(struct led_control_device_t *dev);

int (*set_on)(struct led_control_device_t *dev);

int (*set_off)(struct led_control_device_t *dev);

};

4. 每? HAL stub 都要声明 module ID

#define LED_HARDWARE_MODULE_ID "led"

5. 声明 Stub operations 并实现 callback functions

Stub 的 module 结构体必须 取名为 HAL_MODULE_INFO_SYM ,此名不可更改。

const struct led_module_t HAL_MODULE_INFO_SYM = {

common: {

tag: HARDWARE_MODULE_TAG,

version_major: 1,

version_minor: 0,

id: LED_HARDWARE_MODULE_ID,

name: "led HAL module",

author: "gggggg",

methods: &led_module_methods,

},

/* supporting APIs go here */

};

以下是具体的文件内容。

led.h 文件:

#include

#include

#include

#include

#include

#define LED_HARDWARE_MODULE_ID "led"

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Android HAL

编辑录入:coldstar [复制链接] [打 印]
赞助商链接