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

Bootloader compile error keil 5.12

Hi. I find this code github.com/.../nrf51-dfu-single-bank-ble I want to compile bootloader and download it on PCA10004. I have KEIL 5.12 and the project file of the link is for KEIL uvision 4. So if i try to compile it i incoming in few errors. Can you help me?? thank you.

best regards.

  • Hi

    The bootloader should work fine with Keil 5.12. This bootloader is for nRF51 SDK 6.0.0 and softdevice 7.0.0. So you download the zip file from Nordic's Github and then you include it in your SDK 6.0.0 folder. Sometimes when you unzip the zip file, there is created extra folder which makes your dependency files in the projects to be not found, since the project uses relative paths to dependent files. Could that be the case? What errors are you seeing when compiling?

  • Sorry my sdk is 6.1.0 and my SD is 7.1.0. Is this the problem? Now i see that MDK Version 5 - Legacy Support www2.keil.com/.../ i need to install it to work with the project file ? anyway I followed these steps:

    1. download zip file from GitHub
    2. extract zip file in my sdk folder in this path image description
    3. open the project file uvision 4 that i find in arm folder
    4. include the in include folder in compiler setup image description
    5. compile all and the result is this image description

    EDIT 23/12/14

    ok now i try to open de uvision 4 project that i find in my 6.1.0 SDK folder in C:\Keil_v5\ARM\Device\Nordic\nrf51822\Board\nrf6310\device_firmware_updates\bootloader\arm So i only open it and click on Compile but this is the output ERROR.

    Build target 'dfu_dual_bank_ble (s110)'
    Clean started - Project: 'bootloader'
       deleting intermediate output files for target 'dfu_dual_bank_ble (s110)'
    compiling system_nrf51.c...
    assembling arm_startup_nrf51.s...
    compiling main.c...
    ..\main.c(197): warning:  #223-D: function "sd_softdevice_vector_table_base_set" declared implicitly
          err_code = sd_softdevice_vector_table_base_set(BOOTLOADER_REGION_START);
    ..\main.c: 1 warning, 0 errors
    compiling dfu_dual_bank.c...
    compiling bootloader.c...
    ..\..\..\..\..\Source\bootloader_dfu\bootloader.c(318): warning:  #223-D: function "sd_softdevice_vector_table_base_set" declared implicitly
          err_code = sd_softdevice_vector_table_base_set(CODE_REGION_1_START);
    ..\..\..\..\..\Source\bootloader_dfu\bootloader.c: 1 warning, 0 errors
    compiling bootloader_util_arm.c...
    compiling bootloader_settings_arm.c...
    compiling ble_dfu.c...
    compiling hci_mem_pool.c...
    compiling app_timer.c...
    compiling app_scheduler.c...
    compiling app_gpiote.c...
    compiling crc16.c...
    compiling softdevice_handler.c...
    compiling pstorage.c...
    compiling app_button.c...
    compiling nrf_delay.c...
    compiling dfu_transport_ble.c...
    compiling ble_conn_params.c...
    compiling ble_advdata.c...
    compiling ble_srv_common.c...
    linking...
    .\_build\bootloader.axf: Error: L6218E: Undefined symbol sd_softdevice_vector_table_base_set (referred from main.o).
    Not enough information to produce a FEEDBACK file.
    Not enough information to list image symbols.
    Finished: 2 information, 0 warning and 1 error messages.
    ".\_build\bootloader.axf" - 1 Error(s), 2 Warning(s).
    
    *** Performing Cross-Module-Optimization:
    *** Feedback file '.\_build\bootloader.fed' not found.
    Target not created.
    

    Can you help me?

  • Hi I do not think you need the lowest includes as they are a duplicates. The bootloader is made for SDK 6.0.0 , so insert into SDK 6.0.0 instead. There were some bootloader changes between SDK 6.0.0 and SDK 6.1.0.

  • Ok, that compiles without errors on my side. Seems like you have problems with finding the sd_softdevice_vector_table_base_set function. Try to insert the bootloader into a fresh copy of the nRF51 SDK. You can get nRF51 SDK here as zip file.

Related