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

bootloader_dual_bank(sdk11) build error..

These messages below appeared when I built bootloader_dual_bank(sdk11) in the eclipse.

'Building target: bootloader_dual_bank_s130_sdk11.elf'
'Invoking: GNU ARM Cross C Linker'
arm-none-eabi-gcc -mcpu=cortex-m0 -mthumb -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections  -g3 -T "C:/Users/isp40/OneDrive/nRF_SDK/nRF5_SDK_11.0.0/examples/dfu/bootloader/pca10028/dual_bank_ble_s130/eclipse/../../../dfu_gcc_nrf51.ld" -Xlinker --gc-sections -L"C:/Users/isp40/OneDrive/nRF_SDK/nRF5_SDK_11.0.0/components/toolchain/gcc" -Wl,-Map,"C:/Users/isp40/OneDrive/nRF_SDK/nRF5_SDK_11.0.0/examples/dfu/bootloader/pca10028/dual_bank_ble_s130/eclipse/debug/bootloader_dual_bank_s130_sdk11.map" -o "bootloader_dual_bank_s130_sdk11.elf"  ./nRF_SoftDevice/softdevice_handler.o ./nRF_SoftDevice/softdevice_handler_appsh.o  ./nRF_Libraries/app_error.o ./nRF_Libraries/app_error_weak.o ./nRF_Libraries/app_scheduler.o ./nRF_Libraries/app_timer.o ./nRF_Libraries/app_timer_appsh.o ./nRF_Libraries/app_util_platform.o ./nRF_Libraries/bootloader.o ./nRF_Libraries/bootloader_settings.o ./nRF_Libraries/bootloader_util.o ./nRF_Libraries/crc16.o ./nRF_Libraries/dfu_dual_bank.o ./nRF_Libraries/dfu_init_template.o ./nRF_Libraries/dfu_transport_ble.o ./nRF_Libraries/hci_mem_pool.o ./nRF_Libraries/nrf_assert.o  ./nRF_Drivers/nrf_delay.o ./nRF_Drivers/nrf_drv_common.o ./nRF_Drivers/pstorage.o  ./nRF_BLE/ble_advdata.o ./nRF_BLE/ble_conn_params.o ./nRF_BLE/ble_dfu.o ./nRF_BLE/ble_srv_common.o  ./Device/gcc_startup_nrf51.o ./Device/system_nrf51.o  ./Application/dfu_ble_svc.o ./Application/main.o   
c:/program files (x86)/gnu tools arm embedded/2017-q2-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe: bootloader_dual_bank_s130_sdk11.elf section `.text' will not fit in region `FLASH'
c:/program files (x86)/gnu tools arm embedded/2017-q2-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe: section .bootloaderSettings VMA [0003fc00,0003ffff] overlaps section .text VMA [0003c000,000403d7]
c:/program files (x86)/gnu tools arm embedded/2017-q2-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe: region `FLASH' overflowed by 2016 bytes
collect2.exe: error: ld returned 1 exit status
make: *** [bootloader_dual_bank_s130_sdk11.elf] error 1

I replaced 'FLASH' region in the dfu_gcc_nrf51.ld file because I thought this was a gcc compiler optimization failure and I was able to resolve the errors.

original

FLASH (rx) : ORIGIN = 0x3C000, LENGTH = 0x3C00

revision

FLASH (rx) : ORIGIN = 0x3B000, LENGTH = 0x4C00

However the build is done without errors, but it isn't executed after flashing bootloader.

Deos the softdevice recognize from 0x3C000?? Or is it because BOOTLOADERADDR register(one of UICRs) is not changed?? So How can I modify BOOTLOADERADDR register??

image description

p.s. I changed BOOTLOADER_REGION_START in dfu_types.h from 0x0003C000 to 0x0003B000, but it's not effect althouth WARRNING is disappeared.

Parents Reply Children
No Data
Related