Bluedroid的启动与enable流程

来源:互联网 发布:中国儿童编程网 编辑:程序博客网 时间:2024/06/08 19:39

流程如下:

1.  init创建bt_config文件,并建立bluedroid和java之间回调机制;
2.  enable过程完成工作:
Ø  启动HCI和BTSNOOP;
Ø  Initialize the mandatory core stack control blocks(BTU, BTM, L2CAP,and SDP);
Ø  Initialize any optional stack components(RFCOM,BNEP,PAN,A2DP,AVRCP,GAP,HID_HOST);


Ø   BTA初始化;
Ø  注册btu_bta_msg_queuebtu_hci_msg_queue btu_general_alarm_queue对应的 fixed_queue_cb为btu_bta_msg_readybtu_hci_msg_ready alarm_queue_ready,建立BTU与bta hclgeneral_alarm的通信机制;
Ø  通过bta_sys_main的状态机切换: BTA_SYS_HW_OFF_EVT-> BTA_SYS_HW_STARTING -> BTA_SYS_HW_ON进入enable状态,最后进行底初始化:
Ø  /* make sure the control block is properly initialized*/bta_dm_init_cb();
Ø   /* load BLE local information:ID keys, ER if available */
bta_dm_co_ble_load_local_keys(&key_mask,er, &id_key);
Ø   /* initialize bluetooth lowpower manager */
bta_dm_init_pm();
Ø  初始化gatt:
bta_dm_gattc_register();




原创粉丝点击