sakumisu d4940ebd22 update(nimble): remove nimble submodule, because it costs time to pull 11 meses atrás
..
nimble d4940ebd22 update(nimble): remove nimble submodule, because it costs time to pull 11 meses atrás
porting c7cf09f6c3 update nimble porting with freertos 2 anos atrás
README.md cdfb7c3fb2 support hci usb h4 for usb bluetooth 1 ano atrás
ble_hci_usbh.c cdfb7c3fb2 support hci usb h4 for usb bluetooth 1 ano atrás

README.md

Note

当前支持 nimble 主线 1.6.0 版本,禁止使用其余软件包或者第三方包

  • ble_hs_startup_set_evmask_tx 函数中 BLE_HCI_OCF_CB_SET_EVENT_MASK2 功能需要关闭

    // if (version >= BLE_HCI_VER_BCS_4_1) {
    //     /**
    //      * Enable the following events:
    //      *     0x0000000000800000 Authenticated Payload Timeout Event
    //      */
    //     cmd2.event_mask2 = htole64(0x0000000000800000);
    //     rc = ble_hs_hci_cmd_tx(BLE_HCI_OP(BLE_HCI_OGF_CTLR_BASEBAND,
    //                                       BLE_HCI_OCF_CB_SET_EVENT_MASK2),
    //                            &cmd2, sizeof(cmd2), NULL, 0);
    //     if (rc != 0) {
    //         return rc;
    //     }
    // }
    
    
  • 主线中头文件和源文件参与编译例子

    源文件
    
    nimble/host/src/ble_att_clt.c
    nimble/host/src/ble_att_cmd.c
    nimble/host/src/ble_att_svr.c
    nimble/host/src/ble_att.c
    nimble/host/src/ble_audio_broadcast.c
    nimble/host/src/ble_dtm.c
    nimble/host/src/ble_eatt.c
    nimble/host/src/ble_eddystone.c
    nimble/host/src/ble_gap.c
    nimble/host/src/ble_gattc.c
    nimble/host/src/ble_gatts.c
    nimble/host/src/ble_gatts_lcl.c
    nimble/host/src/ble_hs.c
    nimble/host/src/ble_hs_adv.c
    nimble/host/src/ble_hs_atomic.c
    nimble/host/src/ble_hs_cfg.c
    nimble/host/src/ble_hs_conn.c
    nimble/host/src/ble_hs_flow.c
    nimble/host/src/ble_hs_hci.c
    nimble/host/src/ble_hs_hci_cmd.c
    nimble/host/src/ble_hs_hci_evt.c
    nimble/host/src/ble_hs_hci_util.c
    nimble/host/src/ble_hs_id.c
    nimble/host/src/ble_hs_log.c
    nimble/host/src/ble_hs_mbuf.c
    nimble/host/src/ble_hs_misc.c
    nimble/host/src/ble_hs_mqueue.c
    nimble/host/src/ble_hs_periodic_sync.c
    nimble/host/src/ble_hs_pvcy.c
    nimble/host/src/ble_hs_shutdown.c
    nimble/host/src/ble_hs_startup.c
    nimble/host/src/ble_hs_stop.c
    nimble/host/src/ble_ibeacon.c
    nimble/host/src/ble_iso.c
    nimble/host/src/ble_l2cap.c
    nimble/host/src/ble_l2cap_coc.c
    nimble/host/src/ble_l2cap_sig.c
    nimble/host/src/ble_l2cap_sig_cmd.c
    nimble/host/src/ble_sm.c
    nimble/host/src/ble_sm_alg.c
    nimble/host/src/ble_sm_cmd.c
    nimble/host/src/ble_sm_lgcy.c
    nimble/host/src/ble_sm_sc.c
    nimble/host/src/ble_store.c
    nimble/host/src/ble_store_util.c
    nimble/host/src/ble_uuid.c
    
    nimble/host/services/gap/src/ble_svc_gap.c
    nimble/host/services/gatt/src/ble_svc_gatt.c
    nimble/host/services/bas/src/ble_svc_bas.c
    nimble/host/services/dis/src/ble_svc_dis.c
    # nimble/host/store/config/src/ble_store_config.c
    # nimble/host/store/config/src/ble_store_config_conf.c
    nimble/host/store/ram/src/ble_store_ram.c
    nimble/host/util/src/addr.c
    
    nimble/transport/common/hci_h4/src/hci_h4.c
    nimble/transport/src/transport.c
    
    ext/tinycrypt/src/aes_decrypt.c
    ext/tinycrypt/src/aes_encrypt.c
    ext/tinycrypt/src/cbc_mode.c
    ext/tinycrypt/src/ccm_mode.c
    ext/tinycrypt/src/cmac_mode.c
    ext/tinycrypt/src/ctr_mode.c
    ext/tinycrypt/src/ctr_prng.c
    ext/tinycrypt/src/ecc.c
    ext/tinycrypt/src/ecc_dh.c
    ext/tinycrypt/src/ecc_dsa.c
    ext/tinycrypt/src/ecc_platform_specific.c
    ext/tinycrypt/src/hmac.c
    ext/tinycrypt/src/hmac_prng.c
    ext/tinycrypt/src/sha256.c
    ext/tinycrypt/src/utils.c
    
    
    ===========头文件=================
    
    nimble/include
    nimble/host/include
    nimble/host/services/ans/include
    nimble/host/services/bas/include
    nimble/host/services/dis/include
    nimble/host/services/gap/include
    nimble/host/services/gatt/include
    nimble/host/services/ias/include
    nimble/host/services/lls/include
    nimble/host/services/tps/include
    nimble/host/store/ram/include
    nimble/host/util/include
    nimble/transport/include
    ext/tinycrypt/include
    nimble/transport/common/hci_h4/include
    
    
    
    
  • porting 请禁止使用 nimble 官方源码,请使用 porting 目录下的文件

    头文件
    porting/nimble/include
    porting/npl/freertos/include
    
    源文件
    porting/nimble/src/endian.c
    porting/nimble/src/mem.c
    porting/nimble/src/nimble_port.c
    porting/nimble/src/os_mbuf.c
    porting/nimble/src/os_mempool.c
    porting/nimble/src/os_msys_init.c
    
    porting/npl/freertos/src/nimble_port_freertos.c
    porting/npl/freertos/src/npl_os_freertos.c
    
  • 初始化 nimble,请注意,必须在 usb bluetooth 识别以后才能初始化

    #include "nimble/nimble_port.h"
    #include "usbh_core.h"
    
    void nimble_thread_entry(void *parameter)
    {
    nimble_port_run();
    }
    
    void nimble_init(void)
    {
    nimble_port_init();
    
    usb_osal_thread_create("nimble", 2048, CONFIG_USBHOST_PSC_PRIO + 1, nimble_thread_entry, NULL);
    }