This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

CPU Unblocking, BLE Radio Notification and pStorage Access

The following thread talks about CPU unblocking during connection intervals.

devzone.nordicsemi.com/.../

  • How does this feature affect BLE Radio Notification? Do I expect any difference in the Radio Notification pattern?

  • Currently, I am using BLE Radio Notification to find safe times for pstorage access during connection interval when BLE connection is up (SDK6.1). If I enable CPU unblocking (in SDK7.2) feature, do I still need to use BLE Radio Notification feature for safe pstorage access or I can just disable BLE Radio Notification and access pstorage directly?

Thanks, Sam

Parents
  • Hi Sam,

    "unblocking" the CPU during connection intervals will not have any timing implications on the radio_notification. As Pstorage uses the sd_flash-API to store/erase flash, it is considered safe to use at any time (as it queues cmd's), but if you use it with combination with the radio_notification you're certain that you will have a longer period where you're not interrupted by the stack.

    Cheers, Håkon

Reply
  • Hi Sam,

    "unblocking" the CPU during connection intervals will not have any timing implications on the radio_notification. As Pstorage uses the sd_flash-API to store/erase flash, it is considered safe to use at any time (as it queues cmd's), but if you use it with combination with the radio_notification you're certain that you will have a longer period where you're not interrupted by the stack.

    Cheers, Håkon

Children
  • Hi Hakon, Thanks a lot for the response... Just to further understand, can we use pstorage APIs (ie sd_flash APIs) anytime without enabling radio notification even with SDK6.1? AFAIK there were problems because of the CPU blocking during Flash access in my project. And the issues went away when I started using Radio Notification feature. I am hoping that I can get away with disabling Radio Notification feature with CPU unblocking enabled in SDK7.2 in order to reduce data transfer latencies (all my data, exchanged over BLE, is stored in Flash). Let me know your input.

  • Hi Sam

    With pstorage, you can safely call flash write and flash erase operations without worrying about the CPU blocking. This is handled internally in the softdevice since S110 6.0.0, see the release notes for S110 6.0.0. The flash erase operation will however take ~21ms to complete, so if you use radio notifications and have connection/advertising inerval <30ms, your throughput will be decreased when performing flash erase operations, as they might override scheduled BLE transmission. This will however not result in BLE disconnection.

    When using radio notificatoins with pstorage, realise the following limiation of the softdevice:

    If Radio Notifications are enabled, flash write and flash erase operations initiated through the SoftDevice API will be notified to the application as Radio Events (FORT-809).

  • Thank you so much for the clarification. I will close the issue.

Related