基于Android移植IIC设备驱动笔记

我是从2015.7.23开始移植这个驱动程序的,经过在网上查找资料,决定利用linux下I2C驱动体系结构来完成驱动移植

整个步骤是根据http://blog.csdn.net/rickbeyond/article/details/7838313这个大神的博客开始的,于是我的苦逼坑死我之路从此开始。。。。

 

第一天下午就卡在了第三步,即对Android.mk的编译上,刚开始是报如下错误

make: *** No rule to make target `/iic.c', needed by `out/target/product/generic/obj/SHARED_LIBRARIES/iic.default_intermediates/iic.o'.  Stop.

大神们的博客都被我翻遍了,没有!麻痹的这错误就我一个人遇到啊!!!!好吧,接着在博客园与csdn论坛发贴,到今天为止没有一个人知道,也许是知道,但是不屑回答我吧。。。不过,终于到下午下班之前自己找了半天发现有一条语句没有(如下),遂加上。还真的就不报这个错误了,

LOCAL_SHARED_LIBRARIES := liblog libcutils

但是!!!!!!!但是换了个错误,说找不到i2c-dev.h头文件,打开该路径,发现好像确实是没得,好吧,那我复制一份好了,也不知道对不对,呵呵

不过最后还真生成了.so文件,哎呀卧槽!这个错误我是碰到了有缘人啊!他也没解决,卡在这里了,呵呵,不过那家伙直接换了条路,去写单独的驱动程序去了,好吧,这坑爹路上又只剩我一个人了。。。。

附上昨天提问的链接:http://q.cnblogs.com/q/74082/    

 

终于到了第二天了。。。也就是7月24日,不得不感叹日子过得真是快啊!

嗯~是的,今天有开始开开心心的写第二部分代码,使用JNI在应用程序框架层添加服务访问接口,又在最后!!!update-api!!!!

卧槽,果不其然,出错了!!!!!!!

1 device/samsung/multimedia/codecs/video/Android.mk:10: device/samsung/multimedia/codecs/video/exynos4/mfc/exynos5/Android.mk: No such file or directory

2 device/samsung/multimedia/utils/csc/Android.mk:10: device/samsung/multimedia/utils/csc/exynos4/exynos5/Android.mk: No such file or directory

3 make: *** No rule to make target `device/samsung/multimedia/utils/csc/exynos4/exynos5/Android.mk'.  Stop.

说没有文件,其实是该路径都没有,好吧,查Android.mk

 1 LOCAL_PATH := $(call my-dir)

 2 

 3 include $(CLEAR_VARS)

 4 

 5 ifeq ($(filter-out exynos4,$(TARGET_BOARD_PLATFORM)),)

 6 include   $(LOCAL_PATH)/exynos4/Android.mk

 7 endif

 8 

 9 ifeq ($(filter-out exynos5,$(TARGET_BOARD_PLATFORM)),)

10 include   $(LOCAL_PATH)/exynos5/Android.mk

11 endif

12     

报错说在第10行,进入(LOCAL_PATH)/exynos5/Android.mk这个里面,按照作者的意思应该是device/samsung/multimedia/codecs/video/exynos5/Android.mk啊!!!

  怎么会是device/samsung/multimedia/codecs/video/exynos4/mfc/exynos5/Android.mk呢???!!!!卧槽,于是看了下device/samsung/multimedia/codecs/video/exynos4/Android.mk,说是再进入mfc/Android.mk中,然后没有了,嗯啊!没有了,也就是说当前路径是停留在了device/samsung/multimedia/codecs/video/exynos4/mfc下啊!!!好吧我就想当然的觉得LOCAT_PATH是在这么个属性了!!!

于是!!!我也开始乱来了,把device/samsung/multimedia/codecs/video/Android.mk改成了

 1 LOCAL_PATH := $(call my-dir)

 2 

 3 LOCAL_CUR_PATH :=$(LOCAL_PATH)

 4 include $(CLEAR_VARS)

 5 

 6 ifeq ($(filter-out exynos4,$(TARGET_BOARD_PLATFORM)),)

 7 include   $(LOCAL_PATH)/exynos4/Android.mk

 8 endif

 9 

10 ifeq ($(filter-out exynos5,$(TARGET_BOARD_PLATFORM)),)

11 include   $(LOCAL_CUR_PATH)/exynos5/Android.mk

12 endif

13     

加了一个临时变量保存当前路径,再make update-api,哎呀,居然过了!!!但是!!!卧槽哪有这么多的但是....

1 build/core/base_rules.mk:166: *** device/samsung/multimedia/codecs/video/exynos5/mfc_v4l2: MODULE.TARGET.STATIC_LIBRARIES.libsecmfcapi already defined by device/samsung/multimedia/codecs/video/exynos4/mfc.  Stop.

这是什么鬼啊什么鬼啊啊啊啊!!!模块ID要唯一???我靠,我哪个模块ID不唯一了就?好吧,谁让你是大哥,我去debug..

 

好吧,既然说libsecmfcapi这个模块ID有了,那我改一下好了,改成libsecmfcapi1好了,想想我也是醉了,这也太草率了吧。感觉总有一天会出大事啊!!!

好吧,现在回到第二个问题上来,解决方法应该如上。。

device/samsung/multimedia/utils/csc/Android.mk:10: device/samsung/multimedia/utils/csc/exynos4/exynos5/Android.mk: No such file or directory

 

------------------20150725---------------------------------------

 我个坑爹,make clean了,从昨天下午开始就在编译系统了,现在还没好。。。

http://blog.chinaunix.net/uid-27041925-id-3629918.html

 

千辛万苦终于把system.img编译成功了,然后烧写,呵呵。。出错!

[    5.686470] adb_open

[    5.687201] ADB open:

[    5.689534] android_work: did not send uevent (0 0   (null))

/system/bin/sh: No controlling tty (open /dev/tty: No such device or address)

/system/bin/sh: warning: won't[    5.794294] [WMT-DEV][I]WMT_open:major 190 minor 0 (pid 1255)

[    5.799632] [WMT-DEV][I]WMT_open:1st call (400)

[    5.803812] [mtk_wcn_stp_set_if_tx_type] set STP_IF_TX to UART.

[    5.810570] [WMT-LIB][I]wmt_lib_set_hif:new hifType:0, fcCtrl:0, baud:921600, fm:2 

[    5.817301] [WMT-C][I]opfunc_hif_conf:WMT HIF info added

 have full job control

root@android:/ # [    5.957152] warning: `rild' uses 32-bit capabilities (legacy support in use)

[    6.662710] s3c-fimc3: FIMC3 1 opened.

[    6.841941] s3cfb s3cfb.0: [fb0] dma: 0x690c4000, cpu: 0xf0cff000, size: 0x007d0000

[    6.854159] s3cfb s3cfb.0: [fb1] dma: 0x69894000, cpu: 0xf14d0000, size: 0x007d0000

[    6.866046] s3c-fimc3: FIMC3 2 opened.

[    7.925316] Mali: :::exynos_result_of_asv : 2

[    7.928195] Mali: mali_dvfs[0].vol = 900000

[    7.932362] Mali: :::exynos_result_of_asv : 2

[    7.937240] Mali: mali_dvfs[1].vol = 925000

[    7.940935] Mali: :::exynos_result_of_asv : 2

[    7.946380] Mali: mali_dvfs[2].vol = 1000000

[    7.950646] Mali: :::exynos_result_of_asv : 2

[    7.955138] Mali: mali_dvfs[3].vol = 1050000

[   22.437725] request_suspend_state: wakeup (3->0) at 22437714222 (2018-02-23 06:45:40.413537843 UTC)

[   22.447453] init: untracked pid 1258 exited

[   22.450318] init: untracked pid 1264 exited

[   27.486587] request_suspend_state: wakeup (0->0) at 27486575598 (2018-02-23 06:45:45.462399178 UTC)

[   27.496953] init: untracked pid 1378 exited

[   27.499923] init: untracked pid 1379 exited

[   32.533499] request_suspend_state: wakeup (0->0) at 32533487433 (2018-02-23 06:45:50.509311013 UTC)

[   32.542963] init: untracked pid 1420 exited

[   32.545954] init: untracked pid 1419 exited

[   37.940280] request_suspend_state: wakeup (0->0) at 37940268396 (2018-02-23 06:45:55.916091767 UTC)

[   37.950267] init: untracked pid 1460 exited

[   37.953043] init: untracked pid 1461 exited

[   43.009421] request_suspend_state: wakeup (0->0) at 43009410481 (2018-02-23 06:46:00.985234102 UTC)

某个进程加载不成功,一直卡在图标界面,进不了系统!哎

你可能感兴趣的:(android)