0

Disabling S132 Softdevice when running FreeRTOS

x_mike gravatar image

asked 2017-08-17 08:41:35 +0100

updated 2017-08-17 09:09:06 +0100

Hi All, Nordic,

In my application, I don't always need BLE connectivity, so I was hoping to disable the S132 softdevice when not needed. However when I do this FreeRTOS stops working normally.

Any thoughts? Is there an alternative way to put the BLE stack on pause?

Details: - NRF52832 - S132 V4.02 - SDK 13.0 - FreeRTOS 9.0.0 with a couple of patches from this forum

To disable the softdevice, from the FreeRTOS task which handles the softdevice events, I call,

err_code = ble_conn_params_stop();   
APP_ERROR_CHECK(err_code);  
err_code = softdevice_handler_sd_disable();   
APP_ERROR_CHECK(err_code);

FreeRTOS, thereafter is stuck in this loop in port_cmsis_systick.c

do{
       __WFE();
    } while (0 == (NVIC->ISPR[0] | NVIC->ISPR[1]));

FreeRTOS still seems to process external interrupts (button press) which activate tasks waiting for events, but the same tasks waiting for events, don't run at their expected timeouts.

Regards, Michael

edit retag flag offensive close delete report spam

1 answer

Sort by ยป oldest newest most voted
0
Petter gravatar image

answered 2017-08-17 15:19:37 +0100

I'm not an expert on FreeRTOS, but are you sure it is necessary to disable the SoftDevice? It wouldn't do much as long as you don't use it, i.e. don't advertise, scan and so on.

edit flag offensive delete publish link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer. Do not ask a new question or reply to an answer here.

[hide preview]

Question Tools

1 follower

Stats

Asked: 2017-08-17 08:41:35 +0100

Seen: 53 times

Last updated: aug. 17