移植bcm2835 C library至安卓7.1

关于bcm2835

BCM2835是一个开源的用于控制树莓派的GPIO引脚的库,提供了IIC,SPI,PWD等的操作接口,具体信息可至网站查看 bcm 2835 c library

步骤

1.在网站下载源码

2.我已经在安卓源码的framework/base下建立了目录zyf,这里面存放了我自己添加的其他的一些代码,现在我们在下面再新建立一个目录bcm2835

3.将下载下来的源码解压,将src目录下的2835.c和2835.h复制到上一步中建立的文件夹内,然后将example/i2c/i2c.c文件复制到bcm2835目录下

4.编写Android.mk,内容如下:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_CFLAGS :=

LOCAL_SHARED_LIBRARIES := libcutils

LOCAL_SRC_FILES :=  i2c.c bcm2835.c

LOCAL_MODULE_TAGS := optional

LOCAL_MODULE := i2c

include $(BUILD_EXECUTABLE)

5.在源码根目录下执行以下命令:

source build/envsetup.sh
mmm framework/base/zyf/bcm2835

6.等待完成后,会在目录:aosp/out/target/product/rpi3/system/bin下找到i2c文件

7.将i2c通过adb push到树莓派

8.执行i2c,发现提示 /dev/mem设备不存在,这里是因为我们需要修改下内核配置,增加/dev/mem设备

在aosp/kernel/rpi/android/configs/android-base.cfg文件中增加以下内容:
CONFIG_DEVKMEM=y
CONFIG_DEVMEM=y

9.重新编译内核,然后替换内核文件

10.树莓派重新上电开机,再次执行成功。

以上是基于bcm2835 c library的i2c的例子移植,完成以上步骤后,可基于这个库,完成其它更多功能

你可能感兴趣的:(移植bcm2835 C library至安卓7.1)