Other Parts Discussed in Thread: SYSBIOS
Hello,
I'm having trouble enabling Long Range advertisement set on Project Zero on LaunchPad CC26X2 with SDK 3.10. Steps to reproduce:
1. Import in a fresh CCS 9.0.1 workspace BLE 5 ProjectZero from TI TIREX.
2. Set app project to use FlashROM_Debug configuration.
3. Build all projects and flash them on LP. Verify the console that the device starts (and can be connected to).
4. Add a new advertisement set handle for long range advertisement and add code for configuring and enabling it:
// Use long range params to create long range set #2 GapAdv_params_t advParamLongRange = GAPADV_PARAMS_AE_LONG_RANGE_CONN; // Create Advertisement set #2 and assign handle status = GapAdv_create(&ProjectZero_advCallback, &advParamLongRange, &advHandleLongRange); APP_ASSERT(status == SUCCESS); // Load advertising data for set #2 that is statically allocated by the app status = GapAdv_loadByHandle(advHandleLongRange, GAP_ADV_DATA_TYPE_ADV, sizeof(advertData), advertData); APP_ASSERT(status == SUCCESS); // Load scan response data for set #2 that is statically allocated by the app status = GapAdv_loadByHandle(advHandleLongRange, GAP_ADV_DATA_TYPE_SCAN_RSP, sizeof(scanRspData), scanRspData); APP_ASSERT(status == SUCCESS); // Set event mask for set #2 status = GapAdv_setEventMask(advHandleLongRange, GAP_ADV_EVT_MASK_START_AFTER_ENABLE | GAP_ADV_EVT_MASK_END_AFTER_DISABLE | GAP_ADV_EVT_MASK_SET_TERMINATED); // Enable long range advertising for set #2 status = GapAdv_enable(advHandleLongRange, GAP_ADV_ENABLE_OPTIONS_USE_MAX , 0); APP_ASSERT(status == SUCCESS);
5. Build and debug
After this step I get the following crash:
abort() at exit.c:105 0x0001DE14 xdc_runtime_System_abort__E(unsigned char *)() at System.c:98 0x0001CC74 xdc_runtime_Error_policyDefault__E(struct xdc_runtime_Error_Block *, int, unsigned char *, int, unsigned int, int, int)() at Error.c:172 0x0000BCEA xdc_runtime_Error_raiseX__E(struct xdc_runtime_Error_Block *, int, unsigned char *, int, unsigned int, int, int)() at Error.c:119 0x0001CC04 xdc_runtime_Assert_raise__I(int, unsigned char *, int, unsigned int)() at Assert.c:34 0x000184D6 ti_sysbios_gates_GateMutex_enter__E(struct ti_sysbios_gates_GateMutex_Object *)() at GateMutex.c:101 0x000114BA ti_sysbios_BIOS_rtsLock__I() at ble_debug_pem4f.c:2,471 0x0001C53A rand() at rand.c:64 0x0001A7C4 llGetRandChannelMapIndex(unsigned char)() at ll_ae.c:4,705 0x0001900C LL_TxDoneCback() at ll_isr.c:2,249 0x000028F6 rfCallback(struct RF_ObjectMultiMode *, short, unsigned long long)() at ll_isr.c:295 0x0001703A RF_fsmActiveState(struct RF_ObjectMultiMode *, enum RF_FsmEvent_)() at RFCC26X2_multiMode.c:3,156 0x000021BA RF_swiFsm(unsigned int, unsigned int)() at RFCC26X2_multiMode.c:2,587 0x0001C346 ti_sysbios_knl_Swi_run__I(struct ti_sysbios_knl_Swi_Object *)() at Swi.c:118 0x0000CA64 ti_sysbios_knl_Swi_restoreHwi__E(unsigned int)() at Swi.c:404 0x00015E2C ti_sysbios_family_arm_m3_Hwi_dispatch__I() at Hwi_asm.sv7M:205 0x0000E134 (ti_sysbios_family_arm_m3_Hwi_dispatch__I does not contain frame information)
Please advise.
Thanks,
Igor