(原创)AP6212蓝牙模块在am335x控制板上的应用

      主控板wifi模块调通后接着调试蓝牙,经过两周的摸索,终于把蓝牙应用基本建立起来,下面记录下大概流程。

1、硬件管脚设置

static void uart4_init(int evm_id, int profile)
{
/* Configure Uart4*/
printk(KERN_ERR"====== BT(AP6212) init ======== ");
setup_pin_mux(uart4_pin_mux);

/* Init Broadcom bluetooth, added by MXH */
gpio_request_one(GPIO_TO_PIN(1, 26), GPIOF_OUT_INIT_LOW, "BT_RST");
gpio_export(GPIO_TO_PIN(1, 26), 0);
/* reset bt chip here */
gpio_set_value(GPIO_TO_PIN(1, 26), 0);
mdelay(100);
gpio_set_value(GPIO_TO_PIN(1, 26), 1);
/* wake BT Module assign */
gpio_request_one(GPIO_TO_PIN(1, 24), GPIOF_OUT_INIT_HIGH, "BT_WAKE");
gpio_export(GPIO_TO_PIN(1, 24), 0);
gpio_set_value(GPIO_TO_PIN(1, 24), 1);
mdelay(50);
/* assign wake respone signal */
gpio_request_one(GPIO_TO_PIN(1, 25), GPIOF_IN, "BT_HOST_WAKE");

/* temp for rts cts */
gpio_request_one(GPIO_TO_PIN(3, 0), GPIOF_OUT_INIT_LOW, "CTS");
gpio_export(GPIO_TO_PIN(3, 0), 0);
gpio_set_value(GPIO_TO_PIN(3, 0), 0);

gpio_request_one(GPIO_TO_PIN(0, 29), GPIOF_OUT_INIT_LOW, "RTS");
gpio_export(GPIO_TO_PIN(0, 29), 0);
gpio_set_value(GPIO_TO_PIN(0, 29), 0);

return;
}

2、移植蓝牙协议栈4.95

其中openobex1.5 在config.h定义 HAVE_BLUETOOTH后,无法成功编译,所有仍然采用openobex1.3版本。

协议栈移植参考《交叉编译 bluez-4.95 步骤及使用方法》http://blog.csdn.net/u011408697/article/details/44459239,

但glib库改用2.24.2,并增加了openobex1.3的移植。

3、调试过程见本人的《蓝牙调式记录-20170623.txt》

原文地址:https://www.cnblogs.com/xihong2014/p/7078991.html