This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Application Performance in the Presence of a Disabled Softdevice

Hi,

I have an application that is mainly uart based and uses the app_scheduler, libuarte, cryptocell and pwr_manager. I want to introduce the Softdevice, and the first thing I want to investigate is the performance impact of its presence. Basically, I am mimicking ble_app_template, except that I don't start advertising and I also run the app_scehduler in main. I have a session (includes uart communication and cryptocell operations) in the application course which I have measured the execution without the presence of the Softdevice. I measure the same session with the softdevice present, and the performance of this session was increased by ~70% (roughly 80ms). This number is quite big for my application, so I thought that I could maybe disable the Softdevice if I'm not going to use in my session and maybe that would increase performance. Sadly, I get almost the exact same performance.

My question is then if this is the expected behavior, and to also check if I'm disabling the softdevice correctly. Maybe if I disable it in some other way I will get different numbers in my measurements?

uint8_t is_enabled;
APP_ERROR_CHECK(nrf_sdh_disable_request());
APP_ERROR_CHECK(sd_softdevice_disable());
APP_ERROR_CHECK(sd_softdevice_is_enabled(&is_enabled));
APP_ERROR_CHECK_BOOL(is_enabled == 0);

I'm using an nRF52840-DK on SDK v17.0.2 with S140 v7.2.0. Compiling with gcc arm 9-2019-q4-major on a Mac.


Best regards,

Tofik 

Parents
  • I figured out what was causing the significant delay. When I incorporated the softdevice into my application, I used the button bsp handler in the ble_app_template example. Previously I was configuring gpiote on my own. As it turns out, the button bsp handler has support for long-press, which was causing the delay, because I start my session with a button press.

Reply
  • I figured out what was causing the significant delay. When I incorporated the softdevice into my application, I used the button bsp handler in the ble_app_template example. Previously I was configuring gpiote on my own. As it turns out, the button bsp handler has support for long-press, which was causing the delay, because I start my session with a button press.

Children
Related