对于bcm4330这个芯片,好多事情,博通帮我们做好了。我们需要在我们的平台上找相应gpio口,给她上电,上电的代码倒是很简单,看硬件的原理图,找到相应的gpio口,给其上电。就ok了。
1、Source envsetup.sh 2、choosecombo 1 1 msm8660_surf eng
对于脚本不一样,编译的命令还是不一样的。其次我们可以看下android.mk文件,我们只需要把它修改一下,就可以编译了。一开始接触mk文件,心里还是有点发毛的,去网上找点资料,还是可以慢慢地解决的。至于编译是否成功,我们可以看下文件夹\out\target\product\msm8660_surf\system\bin,在这个目录下,把我们编译的命令找出来才是正确的。只有我们在这个文件夹中找出来我们编译的结果,才算是真正的编译出来了。
对于brcm_patchram_plus.c这个文件,我们可以看到这个c文件的前面有如下提示:
手动调试的步骤:
1、echo 1 > /sys/class/rfkill/rfkill0/state
2、brcm_patchram_plus --enable_hci --baudrate 115200 -d --patchram /sdcard/boshoujing.hcd /dev/ttyHS0
3、brcm_patchram_plus --enable_hci --baudrate 115200 -d --patchram /system/lib/modules/BCM4330B1_002_001_003_0379_0430.hcd /dev/ttyHS0
4、hciconfig hci0 up
5、Hciconfig
6、hcitool scan
如果能发现的话,说明是正确地。。。
这样手动调试,一般来说,是可以成功的。其次我们应该是从界面上打开。打开界面,我们需要做的工作,就是修改init.qcom.rc这个文件里面的service,下面我来说下,这几行代码的含义吧。
service hciattach /system/bin/sh /system/etc/brcm_patchram_plus.sh
user bluetooth
group qcom_oncrpc bluetooth net_bt_admin
disabled
Oneshot
Android系统的hciattach服务,不会自动起来的,需要用户bluetooth使用者,文件的具体调用在bluetooth.c中的property_set("ctl.start", "hciattach")中启用,这时候才会真正的调用,disable的意思说,开机后不会自动启用,oneshot代表关闭后,不会自动启用。brcm_patchram_plus这个脚本,比较麻烦,反正说起来也很简单,就是也就是设置波特率和加载固件。
这样蓝牙UI界面基本上就可以起来了。