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

PCA10056 dev board jumps to hard fault exception when running ble mesh switch example

I have three PCA10056 development boards and have loaded the BLE mesh light_switch proxy_server onto all of them (SDK v2.2.0) which incorperates soft device S140 V6.0.0

All of them work and can be provisioned from the app but after a while (a few minutes) one of them (always the same one) jumps to the hard fault exception vector.

I am using SES and have fully erased the parts before programming them.  I have not modified the example, just built it as is.

I am struggling to explain why one of the boards does this but not the others.  The only difference I can see is that the board that crashes has a label on it saying PCA10056 V0.9.2 and the working ones say V0.9.3 but I assumed this is not relevant as I am erasing the ICs anyway.

Any help gratefully received

Paul.

Parents Reply Children
  • I have tried programming the three boards with the light_switch proxy_client and it does behave exactly the same, the board labelled 0.9.2 jumps to the hard fault handler but the other two boards do not.

    I only have these three boards to test with.

    I tried a full erase using nrfjprog first but this made no difference.

    As an experiment, I tried building the projects as release builds rather than debug (as I always have previously) and in release mode they do not crash.

    When the board crashes in debug mode, generally the stack trace is empty which isn't very helpful.  Once when it crashed I had the following stack trace but I'm not sure it is any help :-

  • Can you give me a step by step procedure on how to reproduce this and I will test this over here? Also is the SoftDevice fault handler called?

  • I am using SES Release 3.30 Build 2017101300.33948
    From nrf5 SDK for Mesh v2.2.0 I compiled the proxy_server light_switch_proxy_server_nrf52840_xxAA_s140_6_0_0 project in Debug mode.

    I have made no modifications to the project.

    I connect to the PCA10056 dev board from the IDE and do an Erase All.

    I then debug the project by clicking the play icon.

    After a while (sometimes a few minutes, sometimes hours) the debug session stops if i then click the play icon to continue, it jumps to the fault vector.

    I have added two screenshots to show this. The first is after the debugger stops itself. The stack trace is empty and it shows that it seems to try to go to an unknown function at address 0x00000978. When debug is resumed it goes to the hard fault handler as shown in the second screenshot.

  • I will test this with the boards on my desk and update you with my findings. Also, can you try to download a fresh copy of the SDK and try again? Don't think it will make any difference but it is worth a shot.

    UPDATE: I have let the board running all day, haven't managed to reproduce your issue yet. Will try with a couple of other boards and see if I can repproduce it.

  • Do you provision it first before you leave it until it goes into hardfault? Or just go into debug mode and leave it running?

Related