关于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的例子移植,完成以上步骤后,可基于这个库,完成其它更多功能