9 years ago.

Undefined symbol app_error_handler

I updated the nRF51822 library in my program, and now on building I get the following compile error:

Error: Undefined symbol app_error_handler(unsigned, unsigned, const unsigned char*) (referred from softdevice_handler.cpp.NRF51822.o).

Any ideas? I have tried removing and re-importing the library to no avail. Creating another program, e.g. BLE_HeartRate, compiles fine.

Question relating to:

The nRF51822-mKIT is a low cost ARM mbed enabled development board for Bluetooth® Smart designs with the nRF51822 SoC. The kit gives access to all GPIO pins via pin headers …

Forgot to mention I also updated mbed-src library. It seems mbed-src is causing the problem, not nRF51822.

posted by Prashant Vaibhav 09 Apr 2015

Further detail: I did a bisection and narrowed it down to a commit in mbed-src which upgraded Nordic softdevice to v7.1

posted by Prashant Vaibhav 09 Apr 2015

1 Answer

9 years ago.

mbed-src has been updated with v7.1 of the Nordic SDK. But then we've been waiting for the next release of the binary mbed SDK. Most projects import mbed SDK as a library, so users won't see the update unless the SDK is released. The online IDE works in step with the SDK releases.

At present, you'll have a confused state if you use the mbed-src in your program. Many apologies for this. I'll notify the people in our team who're supposed to release the mbed SDK.

Accepted Answer

Please do be aware:

Quote:

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

http://developer.mbed.org/users/mbed_official/code/mbed-src/

posted by Sam Grove 10 Apr 2015

As Sam warned above - mbed-src in reality is mbed-devel. mbed-src ideally would be taken from the same commit as mbed library.

posted by Martin Kojtal 10 Apr 2015

I see. Thanks for the explanation. For now I've switched back to an earlier mbed-src. Reason I must use mbed-src is because our hardware doesn't have LFCLK, which the mbed binary blob requires. I also remap some pins.

posted by Prashant Vaibhav 10 Apr 2015

You can create some custom implementations where needed and #defines for the pins. See this post: http://developer.mbed.org/users/chris/notebook/Patching-functions-and-libraries/

posted by Sam Grove 10 Apr 2015