基于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..

时间: 2024-10-29 19:12:14

基于Android移植IIC设备驱动笔记的相关文章

基于STM32F4移植W5500官方驱动库ioLibrary_Driver(转)

源: 基于STM32F4移植W5500官方驱动库ioLibrary_Driver 参考: 基于STM32+W5500 的Ethernet和Internet移植 Upgrade W5500 Throughput on Nucleo STM32F401RE Using SPI DMA 原文地址:https://www.cnblogs.com/LittleTiger/p/10142827.html

【转】Android打印机--没有设备驱动sdk,自己实现USB打印功能

原文:http://blog.csdn.net/johnwcheung/article/details/71576833 Android下的设备调试,如果设备提供了驱动,按照厂家的驱动调试即可:设备未提供驱动,只能按照通用的方法进行调试. 对于智能POS.收银机以及其他打印设备,如果厂商不提供打印相关sdk,那么打印功能怎么实现呢?其实我们可以基于USB通信机制,自己去实现打印驱动. 整个实现流程如下 初始化打印机:首先要获取USB管理器:其次要注册监听USB设备插拔变化和请求权限的广播:最后列

RT-thread 设备驱动组件之IIC总线设备

本文主要介绍RT-thread中IIC总线设备驱动,涉及到的主要文件有:驱动框架文件(i2c_core.c,i2c_dev.c,i2c-bit-ops.c,i2c_dev.h,i2c.h):底层硬件驱动文件(i2c_soft.c,i2c_soft.h).这里的i2c_soft.c和i2c_soft.h是指利用MCU的GPIO口模拟IIC总线时序,而不是利用MCU的硬件IIC接口.应用IIC总线设备驱动时,需要在rtconfig.h中添加宏定义#define RT_USING_I2C.若使用GPI

Android 开发之 ---- 底层驱动开发(一)

驱动概述 说到 Android 驱动是离不开 Linux 驱动的.Android 内核采用的是 Linux2.6 内核 (最近Linux 3.3 已经包含了一些 Android 代码).但 Android 并没有完全照搬 Linux 系统内核,除了对Linux 进行部分修正,还增加了不少内容.android 驱动 主要分两种类型:Android 专用驱动 和 Android 使用的设备驱动(linux). Android 专有驱动程序: 1)Android Ashmem 匿名共享内存: 为用户空

Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析

关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸机开发 -- IIC总线 ,下面回顾下 IIC 基础概念 一.IIC 基础概念 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.IIC总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信.例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇.可随时监

LINUX块设备驱动<3>

转自:http://blog.chinaunix.net/uid-15724196-id-128141.html 第3章 +---------------------------------------------------+|                 写一个块设备驱动                  |+---------------------------------------------------+| 作者:赵磊                               

IIC设备驱动程序

IIC设备是一种通过IIC总线连接的设备,由于其简单性,被广泛引用于电子系统中.在现代电子系统中,有很多的IIC设备需要进行相互之间通信 IIC总线是由PHILIPS公司开发的两线式串行总线,用于连接微处理器和外部IIC设备.IIC设备产生于20世纪80年代,最初专用与音频和视频设备,现在在各种电子设备中都广泛应用 IIC总线有两条总线线路,一条是串行数据线(SDA),一条是串行时钟线(SCL).SDA负责数据传输,SCL负责数据传输的时钟同步.IIC设备通过这两条总线连接到处理器的IIC总线控

Android字符设备驱动开发基于高通msm8916【原创 】

本人才疏浅学,写一篇文档总结自己在msm8916平台上移植自己编写的简单的字符设备驱动开发的整个流程.这个小项目的主要功能是开发一个简单的APP,APP通过JNI去调用位于kernel的字符设备驱动. APP的设计,开发平台Android Studio 主要的文件是下面的三个文件: MainActivity.java文件的内容如下: 1 package com.example.administrator.myled; 2 3 import android.nfc.Tag; 4 import an

第五章Android移植与驱动读书笔记

本章我们主要学习了Android移植与驱动的关系,设备驱动模块,Linux核心与Android驱动,以及Android驱动的HelloWord这些内容!任何一个计算机系统的运行都是系统中软硬件协作的结果,没有硬件的软件是空中楼阁,而没有软件 的硬件则只是一堆废铁.硬件是底层基础,是所有软件得以运行的平台,代码最终会落实为硬件上的组合 逻辑与时序逻辑:软件则实现了具体应用,它按照各种不同的业务需求而设计,满足了用户的需求.硬件 较固定,软件则很灵活,可以适应各种复杂多变的应用.可以说,计算机系统的