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

NRF5 SDK 14 GCC linking error

Hi,

For my new project, I copied the linker script and Makefile from examples/ble_peripheral/ble_app_uart/pca10040/s132/armgcc to a folder and changed the SDK dir and project dir accordingly.

When I run make, GCC successfully compiles all the sources and places the .o files in the _build/nrf52832_xxaa/. However, it fails at the linking stage. Here are the output of my make -n for last compilation and the final linking stage:

'/usr/bin/arm-none-eabi-gcc' -std=c99 -MP -MD -c -o _build/nrf52832_xxaa/nrf_sdh_soc.c.o ../submodules/sdk/components/softdevice/common/nrf_sdh_soc.c -O3 -g3 -DBOARD_PCA10040 -DCONFIG_GPIO_AS_PINRESET -DNRF52 -DNRF52832_XXAA -DNRF52_PAN_74 -DNRF_SD_BLE_API_VERSION=5 -DS132 -DSOFTDEVICE_PRESENT -DSWI_DISABLE0 -mcpu=cortex-m4 -mthumb -mabi=aapcs -Wall -Werror -mfloat-abi=hard -mfpu=fpv4-sp-d16 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin -fshort-enums  -I../submodules/sdk/components/drivers_nrf/comp -I../submodules/sdk/components/libraries/experimental_cli -I../submodules/sdk/components/drivers_nrf/twi_master -I../submodules/sdk/components/ble/ble_services/ble_ancs_c -I../submodules/sdk/components/ble/ble_services/ble_ias_c -I../submodules/sdk/components/libraries/pwm -I../submodules/sdk/components/softdevice/s132/headers/nrf52 -I../submodules/sdk/components/libraries/usbd/class/cdc/acm -I../submodules/sdk/components/libraries/usbd/class/hid/generic -I../submodules/sdk/components/libraries/usbd/class/msc -I../submodules/sdk/components/libraries/usbd/class/hid -I../submodules/sdk/components/ble/ble_services/ble_lbs -I../submodules/sdk/components/ble/ble_services/ble_gls -I../submodules/sdk/components/libraries/fstorage -I../submodules/sdk/components/drivers_nrf/i2s -I../submodules/sdk/components/libraries/mutex -I../submodules/sdk/components/libraries/gpiote -I../submodules/sdk/components/libraries/experimental_log/src -I../submodules/sdk/components/drivers_nrf/gpiote -I../submodules/sdk/components/libraries/fifo -I../submodules/sdk/components/boards -I../submodules/sdk/components/libraries/experimental_memobj -I../submodules/sdk/components/drivers_nrf/common -I../submodules/sdk/components/ble/ble_advertising -I../submodules/sdk/components/ble/ble_services/ble_bas_c -I../submodules/sdk/components/ble/ble_services/ble_hrs_c -I../submodules/sdk/components/libraries/queue -I../submodules/sdk/components/libraries/pwr_mgmt -I../submodules/sdk/components/ble/ble_dtm -I../submodules/sdk/components/toolchain/cmsis/include -I../submodules/sdk/components/ble/ble_services/ble_rscs_c -I../submodules/sdk/components/drivers_nrf/uart -I../submodules/sdk/components/ble/common -I../submodules/sdk/components/ble/ble_services/ble_lls -I../submodules/sdk/components/drivers_nrf/wdt -I../submodules/sdk/components/libraries/bsp -I../submodules/sdk/components/ble/ble_services/ble_bas -I../submodules/sdk/components/libraries/experimental_section_vars -I../submodules/sdk/components/softdevice/s132/headers -I../submodules/sdk/components/ble/ble_services/ble_ans_c -I../submodules/sdk/components/libraries/slip -I../submodules/sdk/components/libraries/mem_manager -I../submodules/sdk/external/segger_rtt -I../submodules/sdk/components/libraries/usbd/class/cdc -I../submodules/sdk/components/drivers_nrf/hal -I../submodules/sdk/components/ble/ble_services/ble_nus_c -I../submodules/sdk/components/drivers_nrf/rtc -I../submodules/sdk/components/softdevice/common -I../submodules/sdk/components/ble/ble_services/ble_ias -I../submodules/sdk/components/libraries/usbd/class/hid/mouse -I../submodules/sdk/components/libraries/ecc -I../submodules/sdk/components/drivers_nrf/ppi -I../submodules/sdk/components/ble/ble_services/ble_dfu -I../submodules/sdk/external/fprintf -I../submodules/sdk/components/drivers_nrf/twis_slave -I../submodules/sdk/components/libraries/atomic -I../submodules/sdk/components -I../submodules/sdk/components/libraries/scheduler -I../submodules/sdk/components/libraries/experimental_log -I../submodules/sdk/components/ble/ble_services/ble_hts -I../submodules/sdk/components/drivers_nrf/delay -I../submodules/sdk/components/libraries/crc16 -I../submodules/sdk/components/drivers_nrf/timer -I../submodules/sdk/components/libraries/util -I../submodules/sdk/components/drivers_nrf/pwm -I../submodules/sdk/config -I../submodules/sdk/components/libraries/csense_drv -I../submodules/sdk/components/libraries/csense -I../submodules/sdk/components/libraries/balloc -I../submodules/sdk/components/libraries/low_power_pwm -I../submodules/sdk/components/libraries/hardfault -I../submodules/sdk/components/ble/ble_services/ble_cscs -I../submodules/sdk/components/libraries/uart -I../submodules/sdk/components/libraries/hci -I../submodules/sdk/components/libraries/usbd/class/hid/kbd -I../submodules/sdk/components/drivers_nrf/spi_slave -I../submodules/sdk/components/drivers_nrf/lpcomp -I../submodules/sdk/components/libraries/timer -I../submodules/sdk/components/drivers_nrf/rng -I../submodules/sdk/components/drivers_nrf/power -I../submodules/sdk/components/libraries/usbd/config -I../submodules/sdk/components/toolchain -I../submodules/sdk/components/libraries/led_softblink -I../submodules/sdk/components/drivers_nrf/qdec -I../submodules/sdk/components/ble/ble_services/ble_cts_c -I../submodules/sdk/components/drivers_nrf/spi_master -I../submodules/sdk/components/ble/ble_services/ble_nus -I../submodules/sdk/components/ble/ble_services/ble_hids -I../submodules/sdk/components/libraries/strerror -I../submodules/sdk/components/drivers_nrf/pdm -I../submodules/sdk/components/libraries/crc32 -I../submodules/sdk/components/libraries/usbd/class/audio -I../submodules/sdk/components/ble/peer_manager -I../submodules/sdk/components/drivers_nrf/swi -I../submodules/sdk/components/ble/ble_services/ble_tps -I../submodules/sdk/components/ble/ble_services/ble_dis -I../submodules/sdk/components/device -I../submodules/sdk/components/ble/nrf_ble_gatt -I../submodules/sdk/components/ble/nrf_ble_qwr -I../submodules/sdk/components/libraries/button -I../submodules/sdk/components/libraries/usbd -I../submodules/sdk/components/drivers_nrf/saadc -I../submodules/sdk/components/libraries/atomic_fifo -I../submodules/sdk/components/ble/ble_services/ble_lbs_c -I../submodules/sdk/components/ble/ble_racp -I../submodules/sdk/components/toolchain/gcc -I../submodules/sdk/components/libraries/fds -I../submodules/sdk/components/libraries/twi -I../submodules/sdk/components/drivers_nrf/clock -I../submodules/sdk/components/ble/ble_services/ble_rscs -I../submodules/sdk/components/drivers_nrf/usbd -I../submodules/sdk/components/ble/ble_services/ble_hrs
Linking target: _build/nrf52832_xxaa.out
"make" -s --no-print-directory -f "../submodules/sdk/components/toolchain/gcc/dump.mk" VARIABLE=CONTENT_TO_DUMP > _build/nrf52832_xxaa.in
'/usr/bin/arm-none-eabi-gcc' -O3 -g3 -mthumb -mabi=aapcs -L ../submodules/sdk/components/toolchain/gcc -Tble_app_uart_gcc_nrf52.ld -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wl,--gc-sections --specs=nano.specs @_build/nrf52832_xxaa.in -Wl,-Map=_build/nrf52832_xxaa.map -o _build/nrf52832_xxaa.out

Full output: paste.gnome.org/pkorqpseu

My file layout is as below:

.
├── src
│   ├── ble_app_uart_gcc_nrf52.ld
│   ├── _build
│   │   ├── nrf52832_xxaa
│   │   ├── nrf52832_xxaa.in
│   │   └── nrf52832_xxaa.map
│   ├── main.c
│   └── Makefile
└── submodules
    └── sdk
        ├── components
        ├── config
        ├── documentation
        ├── examples
        ├── external
        ├── license.txt
        ├── nRF5x_MDK_8_14_1_IAR_NordicLicense.msi
        ├── nRF5x_MDK_8_14_1_Keil4_NordicLicense.msi
        ├── README.md
        └── svd

Full Makefile: paste.gnome.org/pfbghya5x

I am unable to figure out why the linker cant find the corresponding files as they are being compiled. I have not changed any source other than the Makefile. The examples in the sdk folder is building fine as well. Kindly help me find the issue

Parents Reply Children
No Data
Related