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

How to find cause of a fault occurring inside a SoftDevice?

Hi,

 I'm using SDK 13.1, SoftDevice 4.0.5 on nRF52832. I have an app which runs for a long time but will occasionally enter the hardfault handler from an address within the SoftDevice. Logging is turned off. My app stashes registers from the hardfault info into a small area of ram and upon reboot it is sent to my server. I have not yet seen this error happen using the debugger so I cannot get a stack trace. When I disassemble the fault address in the SoftDevice the instruction is always "svc 255". I don't see this svc code in the SDK, so I presume it is some sort of fatal error code. Any ideas how I might resolve this?

The offending address is most often 0x142e4, but I also see 0x1a968, 0x16d36, and 0x1117c.

Thanks

  • Hi Andreas,

     Thanks for the ideas. The units have had the errata 108 workaround applied and are using MDK 8.17.0; I have verified that the line shown above is implemented.

    I do have a couple of DKs here and I'll try to reproduce the issue with them.

    Some users have reported that the issue happened in a very dense RF environment (e.g., concert). Will the SoftDevice use a lot more power in that situation? I'm wondering if it could be a power supply related problem.

    Does the SoftDevice share the application stack? If so it may be a stack overflow I'm chasing.

    Thanks

  • Hi.

    It would be great if you can try to reproduce the issue on them.

    Could you list all of them with version number and date and if they have the issue or not?

    After you have tested them, can you try to do the same test, but this time you turn off all sd_app_evt_wait, WFE(); and system off?

    Best regards,

    Andreas

Related