a few bugs and solutions to a working "export to GCC(Arm embedded)"

29 Mar 2017

I finally have the exported "export to GCC(Arm embedded)" zip file working. The board is the readbear ble nano. https://developer.mbed.org/platforms/RedBearLab-BLE-Nano/

The usual warning: This works for me, it might destroy your board. So do not do it.

It took a while, some solutions came from mbed.org forums/questions, some from google.

Problem: missing "mbed_config.h" Solution: copied over from old export.

Problem:

undefined reference to `__wrap__free_r'

Solution: remove

'-Wl,--wrap,_free_r'

and

-Wl,--wrap,_free_r

from LD_FLAGS and PREPROC lines in Makefile

Problem:

undefined reference to `__wrap__realloc_r'

Solution: remove

'-Wl,--wrap,_realloc_r'

-Wl,--wrap,_realloc_r

from LD_FLAGS and PREPROC lines in Makefile

Problem:

undefined reference to `__wrap__malloc_r'

Solution: remove

'-Wl,--wrap,_malloc_r'

and

-Wl,--wrap,_malloc_r 

from LD_FLAGS and PREPROC lines in Makefile

Problem: srec_cat: garbage lines / file contains no data

put a "-intel" behind every .hex argument to tell srec_cat that tese are in intel format. the first s110*softdevice file still gave the "garbage lines" error, so remove it. as i understand it, for the RedBearLab BLE Nano only one softdevice is needed and s110 and s130 define the same address ranges anyway. So remove other s110*softdevice files too. it works if only the first s110 file is removed, but srec_cat gives more than 1000 warnings like

    ../nRF51822/TARGET_MCU_NRF51822/bootloader/s130_nrf51_1.0.0_bootloader.hex:
    450: warning: redundant 0x0003F816 value (0x00)

replace

    $(SREC_CAT)
../mbed/TARGET_RBLAB_BLENANO/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/s110_nrf51822_8_0_0/s110_nrf51822_8.0.0_softdevice.hex
../mbed/TARGET_RBLAB_BLENANO/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/s130_nrf51822_1_0_0/s130_nrf51_1.0.0_softdevice.hex
../nRF51822/TARGET_MCU_NRF51822/bootloader/s110_nrf51822_8.0.0_bootloader.hex
../nRF51822/TARGET_MCU_NRF51822/bootloader/s130_nrf51_1.0.0_bootloader.hex
-intel $(PROJECT).hex -intel -o $(PROJECT)-combined.hex -intel
--line-length=44

with

    $(SREC_CAT)
../mbed/TARGET_RBLAB_BLENANO/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/s130_nrf51822_1_0_0/s130_nrf51_1.0.0_softdevice.hex
-intel
../nRF51822/TARGET_MCU_NRF51822/bootloader/s130_nrf51_1.0.0_bootloader.hex
-intel $(PROJECT).hex -intel -o $(PROJECT)-combined.hex -intel
--line-length=44

PS: without the code-tag this forum/wiki turns the "wrap" in between two underlines into an underlined text, which is no good for google searches. PPS: i have nice diff file. but the insert images or files features does not work with my browser.

23 May 2017

Thank you very much! you saved my lots of time

03 Nov 2017

Well thank you very much ... you saved me time on the srec_cat.

It baffles me why Nordic does not make some sort of documentation of these issues more easily obtainable. I searched and searched and finally slogged through the first couple of issues over a period of days.