您的位置:首页 > 移动开发 > Android开发

Android系统开发之tslib移植

2014-12-12 09:19 429 查看



本帖最后由 haolele 于 2011-11-11 21:08 编辑

Android系统开发之tslib移植

(1)切换至tslib目录然后执行如下命令(以marvell平台为例)

./autogen.sh

echo "ac_cv_func_malloc_0_nonnull=yes" > arm-marvell-linux.cache

./configure --host=arm-marvell-linux-gnueabi --prefix=/work/svn/ts_build --cache-file=arm-marvell-linux.cache

上面三步仅仅是为了取得tslib目录下的config.h文件

(2)将tslib复制到android源代码vendor/<company_name>/<board_name>目录下

(3)修改vendor/<company_name>/<board_name>目录下的AndroidBoard.mk文件,加入如下内容

include $(LOCAL_PATH)/tslib/Mdroid.mk

一定要主义LOCAL_PATH这个宏的时效性

(4)在tslib目录下创建Mdroid.mk,内容如下:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

TS_PATH := $(LOCAL_PATH)

include $(TS_PATH)/src/Mdroid.mk

include $(TS_PATH)/plugins/Mdroid.mk

include $(TS_PATH)/tests/Mdroid.mk

include $(CLEAR_VARS)

file := $(TARGET_OUT_ETC)/ts.conf

$(file) : $(TS_PATH)/etc/ts.conf | $(ACP)

$(transform-prebuilt-to-target)

ALL_PREBUILT += $(file)

(5)在tslib/src目录下创建Mdroid.mk,内容如下:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_SRC_FILES:= ts_attach.c ts_close.c ts_config.c \

ts_error.c ts_fd.c ts_load_module.c ts_open.c ts_parse_vars.c \

ts_read.c ts_read_raw.c ts_option.c

LOCAL_C_INCLUDES += \

$(LOCAL_PATH)/../

LOCAL_SHARED_LIBRARIES += libutils libcutils

LOCAL_SHARED_LIBRARIES += libdl

LOCAL_PRELINK_MODULE := false

LOCAL_MODULE := libts

include $(BUILD_SHARED_LIBRARY)

(6)在tslib/plugins目录下创建Mdroid.mk,内容如下:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_SRC_FILES:= input-raw.c

LOCAL_C_INCLUDES += \

$(LOCAL_PATH)/../ \

$(LOCAL_PATH)/../src

LOCAL_SHARED_LIBRARIES := libts

LOCAL_MODULE := input

LOCAL_PRELINK_MODULE := false

include $(BUILD_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_SRC_FILES:= pthres.c

LOCAL_C_INCLUDES += \

$(LOCAL_PATH)/../ \

$(LOCAL_PATH)/../src

LOCAL_SHARED_LIBRARIES := libts

LOCAL_MODULE := pthres

LOCAL_PRELINK_MODULE := false

include $(BUILD_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_SRC_FILES:= variance.c

LOCAL_C_INCLUDES += \

$(LOCAL_PATH)/../ \

$(LOCAL_PATH)/../src

LOCAL_SHARED_LIBRARIES := libts

LOCAL_MODULE := variance

LOCAL_PRELINK_MODULE := false

include $(BUILD_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_SRC_FILES:= dejitter.c

LOCAL_C_INCLUDES += \

$(LOCAL_PATH)/../ \

$(LOCAL_PATH)/../src

LOCAL_SHARED_LIBRARIES := libts

LOCAL_MODULE := dejitter

LOCAL_PRELINK_MODULE := false

include $(BUILD_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_SRC_FILES:= linear.c

LOCAL_C_INCLUDES += \

$(LOCAL_PATH)/../ \

$(LOCAL_PATH)/../src

LOCAL_SHARED_LIBRARIES := libts

LOCAL_MODULE := linear

LOCAL_PRELINK_MODULE := false

include $(BUILD_SHARED_LIBRARY)

(7)在tslib/tests目录下创建Mdroid.mk,内容如下:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_SRC_FILES:= ts_calibrate.c fbutils.c testutils.c font_8x8.c font_8x16.c

LOCAL_C_INCLUDES += \

$(LOCAL_PATH)/../ \

$(LOCAL_PATH)/../src

LOCAL_SHARED_LIBRARIES := libts

LOCAL_SHARED_LIBRARIES += libutils libcutils

LOCAL_MODULE := tscalibrate

include $(BUILD_EXECUTABLE)

(8)在tslib/config.h文件中加入如下定义:

#define TS_CONF "/system/etc/ts.conf"

#define PLUGIN_DIR "/system/lib"

#define TS_POINTERCAL "/data/etc/pointercal"

(9)将下面路径文件

tslib/src/ts_open.c

tslib/tests/ts_calibrate.c

tslib/tests/fbutils.c

中的

#include <sys/fcntl.h>

修改成

#include <fcntl.h>

(10)将tslib/tests/ts_calibrate.c文件中

static int clearbuf(struct tsdev *ts)

修改为

static void clearbuf(struct tsdev *ts)

(11)修改tslib/etc/ts.conf内容如下:

module_raw input

module pthres pmin=1

module variance delta=30

module dejitter delta=100

module linear

(12)在android源代码init.rc中声明tslib相关的宏如下:

# touchscreen parameters

export TSLIB_FBDEVICE /dev/graphics/fb0

export TSLIB_CALIBFILE /data/etc/pointercal

export TSLIB_CONFFILE /system/etc/ts.conf

export TSLIB_TRIGGERDEV /dev/input/event0

export TSLIB_TSDEVICE /dev/input/event1

(13)重新编译后即可调用tscalibrate命令来校验触摸屏,校验后产生一个/data/etc/pointercal文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: