關(guān)于bcm2835
BCM2835是一個(gè)開源的用于控制樹莓派的GPIO引腳的庫开瞭,提供了IIC,SPI,PWD等的操作接口点把,具體信息可至網(wǎng)站查看 bcm 2835 c library
步驟
1.在網(wǎng)站下載源碼
2.我已經(jīng)在安卓源碼的framework/base下建立了目錄zyf,這里面存放了我自己添加的其他的一些代碼屿附,現(xiàn)在我們?cè)谙旅嬖傩陆⒁粋€(gè)目錄bcm2835
3.將下載下來的源碼解壓郎逃,將src目錄下的2835.c和2835.h復(fù)制到上一步中建立的文件夾內(nèi),然后將example/i2c/i2c.c文件復(fù)制到bcm2835目錄下
4.編寫Android.mk挺份,內(nèi)容如下:
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.在源碼根目錄下執(zhí)行以下命令:
source build/envsetup.sh
mmm framework/base/zyf/bcm2835
6.等待完成后褒翰,會(huì)在目錄:aosp/out/target/product/rpi3/system/bin下找到i2c文件
7.將i2c通過adb push到樹莓派
8.執(zhí)行i2c,發(fā)現(xiàn)提示 /dev/mem設(shè)備不存在匀泊,這里是因?yàn)槲覀冃枰薷南聝?nèi)核配置优训,增加/dev/mem設(shè)備
在aosp/kernel/rpi/android/configs/android-base.cfg文件中增加以下內(nèi)容:
CONFIG_DEVKMEM=y
CONFIG_DEVMEM=y
9.重新編譯內(nèi)核,然后替換內(nèi)核文件
10.樹莓派重新上電開機(jī)各聘,再次執(zhí)行成功揣非。
以上是基于bcm2835 c library的i2c的例子移植,完成以上步驟后躲因,可基于這個(gè)庫妆兑,完成其它更多功能