Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

BMD-330 "SOFTDEVICE: INVALID MEMORY ACCESS" for Blinky

Hi! I'm brand new to Nordic development. I am unable to get blinky working for the nrf52810 SoC, running off of the Rigado BMD-330 evaluation board; however, I am able to successfully run any other set of example code like uart or the classic hrs. I'm sure there is just something silly that I have missed, but I can't for the life of me figure out what that issue is.

I'm running SES, SDK 15.2, S112. I have tried using both the external 32kHz clock on my eval board and the internal RC, but the symptoms are the same for both.

When debugging, blinky will run (no LEDs blinking, but LED1 is on and solid), but the system will hang indefinitely at:

0001164E     BF40        sev

If I pause and play the debugger while it is hanging then at some point the system enters app_error_fault_handler. I set up the debugger so that it outputs to the debug terminal. The error description is:

"SOFTDEVICE: ASSERTION FAILED"

with the locals showing the following:

ID: 0x00000001

PC: 0x0001012e

info: 0x00000000

Thoughts? Advice on how to proceed from here? I'd like to be able to resolve this issue as a learning experience to figure out a bit about what is actually going on under the hood.

  • Hi,

    Since you are using the SoftDevice, I assume the "blinky" example you refer to is the BLE Blinky Application?

    Nothing of what you write indicates an error as far as I can see. The BLE Blinky Application will light LED2 by default and advertise waiting for a central to connect. It will sleep for most of the time, and the way it sleeps is by calling the SEV and WFE instructions (via the SoftDevice API). So it is expected that you see the system at SEV when pausing execution. Have you tested if the system is actually working, for instance by using the nRF Blinky app for your smartphone? I expect it is.

    Moreover, the SoftDevice has strict timing requirements, so it is expected that you get an assert when you continue after pausing or hitting a breakpoint. This is intended and is always the case as long as the SoftDevice is currently doing something that involves timing (advertising, scanning, in a connection etc.).

    PS: The name "BLE Blinky Application" is a confusing (and bad) name for this example, as it does not blink as you would have expected from any example with "blinky" in the name (unless you connect via BLE and toggle the LED from the central) .

  • Einar!! Thank you for your answer, you are completely correct!

    The app is in fact working exactly as intended, I was too hasty and foolish in my reading of the "Blinky Example" page. I failed to properly recognize the file path as ".../peripheral/..." and not ".../ble_peripheral/...".

    In addition, thank you for the info on the performance of the SoftDevice, that will be good to know as I move forward.

Related