[原创]Android HAL实例学习-Jollen的mokoid工程编译篇
来源:互联网 发布:ug 12 for mac 中文版 编辑:程序博客网 时间:2024/06/18 12:33
http://blog.csdn.net/win2k3net/article/details/6106803
这几天正在看HAL,网络上只有这个案例:分析台湾的Jollen的mokoid 工程代码,本文记录编译过程。
预备环境:
1.有Android的项目源代码,已经交叉编译完成。
2.了解Android JNI,自己最好照着NDK r4版本的sample写一个JNI程序;
3.台湾的Jollen的mokoid 工程代码下载 http://code.google.com/p/mokoid/
参考文档:
Android HAL实例解析 - 刘洪涛的专栏 - CSDN博客
《Android硬件驱动开发关键技术和HAL移植要领.pdf》Jollen的培训文档,这个Blog不好上传pdf,有兴趣的tx到eoe下载。
方法和步骤:
1.编译Android系统源代码。
2.把Jollen的mokoid 工程放到android2.1/vendor的目录下(android2.1 是Android的源代码根目录)
3.遇到的问题在《Android HAL实例解析 - 刘洪涛的专栏 - CSDN博客》基本都有说明。
下面罗列我遇见的各种遇到的情况说明:
1. make: *** 没有规则可以创建“out/target/product/ut6410/obj/SHARED_LIBRARIES/led.goldfish_intermediates/led.goldfish.o”需要的目标“vendor/mokoid/hardware/mo
看vendor/mokoid/hardware/modules/led/Android.mk
注释掉不要的
--------------------------------------------------------------------------------------------------
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
LOCAL_SHARED_LIBRARIES := liblog
LOCAL_SRC_FILES := led.c
LOCAL_MODULE := led.default
include $(BUILD_SHARED_LIBRARY)
# Mokoid LED
#include $(CLEAR_VARS)
#
#LOCAL_C_INCLUDES += /
# vendor/mokoid/hardware/modules/include/
#
#LOCAL_PRELINK_MODULE := false
#LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
#LOCAL_SHARED_LIBRARIES := liblog
#LOCAL_SRC_FILES := led.dma6410xp.c
#LOCAL_MODULE := led.smdk6410
#include $(BUILD_SHARED_LIBRARY)
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
LOCAL_SHARED_LIBRARIES := liblog
LOCAL_SRC_FILES := led.c
LOCAL_MODULE := led.default
include $(BUILD_SHARED_LIBRARY)
# Mokoid LED
#include $(CLEAR_VARS)
#
#LOCAL_C_INCLUDES += /
# vendor/mokoid/hardware/modules/include/
#
#LOCAL_PRELINK_MODULE := false
#LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
#LOCAL_SHARED_LIBRARIES := liblog
#LOCAL_SRC_FILES := led.dma6410xp.c
#LOCAL_MODULE := led.smdk6410
#include $(BUILD_SHARED_LIBRARY)
--------------------------------------------------------------------------------------------------
2.target thumb C++: libmokoid_runtime <= vendor/mokoid/frameworks/base/service/jni/onload.cpp
arm-eabi-g++: vendor/mokoid/frameworks/base/service/jni/onload.cpp: No such file or directory
arm-eabi-g++: no input files
arm-eabi-g++: vendor/mokoid/frameworks/base/service/jni/onload.cpp: No such file or directory
arm-eabi-g++: no input files
看vendor/mokoid/frameworks/base/service/jni/Android.mk文件。
找不到onload.cpp,从google code下载下来就没有,先注释掉。
3.复制com.mokoid.server.xml 到目标系统的system/etc/permissions/目录下。
4.修改LedClient.apk或LedTest.apk的 Makefile.
5.继续编译,编译成功,打包Image,下载到开发板。
6.运行成程序,界面提示异常,用logcat看日志,提示找不到 JNI_OnLoad,把《Android HAL实例解析 - 刘洪涛的专栏》文中提到的第三点代码copy到com_mokoid_server_LedService.cpp中,重新编译,在开发板上下载libmokoid_runtime.so到/system/lib下。
运行应用程序OK.大功告成!~
未完待续.....对HAL的和JNI的理解
允许转载,请注明出处:http://blog.csdn.net/win2k3net/archive/2010/12/30/6106803.aspx
- Android HAL实例学习-Jollen的mokoid工程编译篇
- [原创]Android HAL实例学习-Jollen的mokoid工程编译篇
- [原创]Android HAL实例学习-Jollen的mokoid工程编译篇
- [原创]Android HAL实例学习-Jollen…
- [原创]Android HAL实例学习-Jollen…
- 再次研究Jollen的mokoid工程,在模拟器上运行篇!
- Android HAL 实例——mokoid LEDTest
- Android HAL实践(一):Mini6410开发板上的mokoid
- Android HAL实例学习
- Android HAL的作用及编程实例
- Android HAL的作用及编程实例
- Android HAL实例解析
- Android HAL实例分析
- Android HAL实例解析
- Android HAL实例解析
- Android HAL实例解析
- Android HAL实例解析
- Android HAL实例解析
- MFC C++ 设置按钮不可用,无效
- 常用论坛和网站博客备份
- linux批量修改文件名
- 异常退出后,HIVE 无法查看表?
- mfc指针获取
- [原创]Android HAL实例学习-Jollen的mokoid工程编译篇
- Hibernate关联关系配置(一对多、一对一和多对多)
- Ext tree的属性
- Linux下串口编程
- 字符串与数字的相互转换
- KMP后显示打开KMP显示配色方案就会更改为Windows 7 BASIC
- ISTQB AL-TM连载系列11:基于会话的探索性测试管理
- 搜索引擎架构浅析
- hbase在淘宝的应用和优化小结