SystemInit() errata workarounds executed twice per power-up cycle (nRF5 SDK 16.0.0)

Hello,

We have a question about the errata workarounds applied in SystemInit() in nRF5 SDK v16.0.0.

Our firmware is split into two images: a boot application and a main application. On power-up the device starts in the boot application, which then relocates the vector table and jumps directly to the main application (no system reset in between). As a consequence, SystemInit(), and therefore every errata workaround it contains, is executed twice in a single power-up cycle.

Our questions:

1. Can executing these workarounds twice lead to any unintended behaviour or side effects?

2. If executing them twice is problematic, could you indicate per erratum what action we should take (for example, skipping the workaround on the second execution, or applying it in a specific order)?

For reference, below is the list of errata workarounds we identified in SystemInit() for this SDK version, grouped by the device variants they apply to.

nRF52832 only:
ERRATA_12, ERRATA_16, ERRATA_31, ERRATA_32, ERRATA_37, ERRATA_57, ERRATA_108, ERRATA_182

nRF52832, nRF52833 and nRF52840:
ERRATA_36, ERRATA_66, ERRATA_136

nRF52840 only:
ERRATA_98, ERRATA_103, ERRATA_115, ERRATA_120, ERRATA_217


Thank you in advance for your help.

Best regards,

Joeri

Related