在android2.3.1下进行HAL层的开发,先参照网上弄了个hello的demo,首先看下HAL层在android系统中的位置:

硬件驱动程序可以看做是在keinel层,HAL封装了硬件驱动,然后再经过JNI接口的封装才能给Java应用程序调用。
HAL层接口封装的具体流程如下:
1)在../Android-2.3.1/hardware/libhardware/include/hardware这个目录下添加hello.h头文件,具体可以参开当前目录下的overlay.h,
/***************************************************
*android_hal_hello_demo
*hello.h
***************************************************/
#ifndef ANDROID_HELLO_INTERFACE_H
#define ANDROID_HELLO_INTERFACE_H
#include <hardware/hardware.h>
__BEGIN_DECLS
#define HELLO_HARDWARE_MODULE_ID "hello"
struct hello_module_t {
struct hw_module_t common;
};
struct hello_device_t {
struct hw_device_t common;
int fd;
int (*get_val)(struct hello_device_t *dev,int val);
int (*set_val)(struct hello_device_t *dev,int val);
};
__END_DECLS;
#endif
2)在../Android-2.3.1/hardware/libhardware/modules这个目录下新建hello文件夹,并在此文件夹中添加hello.c和Android.mk文件,具体可以参考modules目录下overlay文件夹中的内容。
/******************************************************************************
*android_ha

最低0.47元/天 解锁文章
1286

被折叠的 条评论
为什么被折叠?



