Details of Known Issues (DRGN-10613)

Hello.

In the developed BLE software, the device uses nRF52840 and uses s140 v7.3.0.

I would like to confirm the s140 nrf52 7.3.0 release notes.

  •  A memory access fault (NRF_FAULT_ID_APP_MEMACC) can occur in sd_nvic_critical_region_exit() if a high priority SoftDevice interrupt occurs during a critical section, for example due to radio traffic (DRGN-10613).
    It can be fixed by editing __NRF_NVIC_SD_IRQS_1 in nrf_nvic.h so that it becomes:
    #define __NRF_NVIC_SD_IRQS_1 ((uint32_t)(1U << (MWU_IRQn - 32)))

What specifically happens when a memory access fault occurs?
I believe that it is asserted and reset due to a hard fault, is that correct?

What is the intent of this change and what impact will it have, including side effects?

If it has no impact, why is it not included in the released source?

Currently there is an issue where events from the SD card stop immediately after BLE connection, and we have confirmed that this fix described in the release notes may be able to avoid this issue. Even with this patch the problem occurred.

Also, Is it correct to assume that the information in the release notes is inherited from the previous version for each release?
Do I only need to check the most recent release notes, or do I need to check all release notes?

best regards.

  • Hi,

    I believe this previous case might answer some of your questions. It is also a bit strange to me why the fix wasn't added in the source code, though for the question on why it isn't added these days I guess one reason is that nRF5 SDK isn't as actively maintained anymore. For that reason I would also recommend you to switch to NCS.

    For the rest of the questions, I've forwarded them to the relevant team, I'll let you know once I hear from them.

    Regards,

    Elfving

  • Hello again, I've now heard from the relevant team. 

    What specifically happens when a memory access fault occurs?

    nrf_fault_handler_t callback provided to sd_softdevice_enable will be called with id=NRF_FAULT_ID_APP_MEMACC. How to handle faults is up to the application.

    What is the intent of this change and what impact will it have, including side effects?

    This will cause the MWU handler to not be masked by the critical section, and thus be run at the correct time. We are not aware about any side-effects of the workaround.

    If it has no impact, why is it not included in the released source?

    The issue was discovered too late to include it to the major 7.0.0 release. It was not prioritized for minor releases mainly because workaround deemed to be enough.

    Also, Is it correct to assume that the information in the release notes is inherited from the previous version for each release?
    Do I only need to check the most recent release notes, or do I need to check all release notes?

    Yes, it's enough to check "Limitations" and "Known Issues" sections in the most recent release notes only.

    Regards,

    Elfving

Related