Hello, I'm trying to develop with the nRF51822 Eval kit and GCC and Eclipse. I've been getting some strange behavior and errors lately. I'm not really sure how to describe it better, because I'm not sure what the problem is but I think it's related to SoftDevice being incorrectly flashed.
So let me just give you an example of what's happening:
I flash SoftDevice using the nRFGo studio and start debugging the example project ble_app_hrs.
After the program reaches the end of the is_first_start() if block, I get the following:
ble_app_hrs Default [GDB Hardware Debugging]
GDB Hardware Debugger (13.08.13 10:47) (Suspended)
Thread  (Suspended)
1 <symbol is not available> 0x00000000
arm-none-eabi-gdb (13.08.13 10:47)
C:\workspace\Nordic Semiconductor\nRF51 SDK_v184.108.40.206417\Nordic\nrf51822\Board\pca10001\ble\ble_app_hrs\gcc\_build\pricetag_bin_s110_xxaa.out (13.08.13 10:47)
I terminate the debug session and check what's going on in the nRFGo studio - It tells me to recover, so I do that and flash the softdevice again.
I try debugging again but this time I comment out the line
NRF_POWER->SYSTEMOFF = 1;
to see what happens. Then the program runs and I see the LED blinking but, as far as I can tell, it's not advertising (I checked with three different combinations of BTLE HW and SW, so I'm actually pretty sure it's not advertising).
So at this point I terminate the debug session and run it one more time. This time I get and assert from the BLE_STACK_HANDLER_INIT macro. Error number 8194 (= 0x2002), line 508.
My best guess is that the SoftDevice gets incorrectly flashed and that causes all these errors, but I have no idea what causes it, or how to fix it. Help would be appreciated.
That error (specified in nrf_error_soc.h) translates to:
The softdevice does not allow interrupt priority set to '0' or '2', only '1' and '3'.
Try setting all your interrupts to either '1' or '3' before enabling the BLE-stack, using this function: