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

Flashing Bootloader + Application via J-link

Hi, I am using SDK 11 , nRF52 DK . IAR 7.5 In current implementation I am flashing a sofdevice s132 and the bootloader by the nrfjprog.exe but if I am flashing the app this way it is not starts. The board stays in Bootloader . If I am flashing the app via the DFU (nrf connect) the app starts normaly. I found this post: devzone.nordicsemi.com/.../

But the suggested changes not works for me. I am asuming that the reason is that in IAR there is anothe compiler. What changes need to be done for IAR that I will be abe to flash all the 3 hex files together and the app will work. Thanks This is a code segment where the change made:

    uint8_t  m_boot_settings[CODE_PAGE_SIZE]    __attribute__((at(BOOTLOADER_SETTINGS_ADDRESS))) __attribute__((used))= {BANK_VALID_APP};
//uint8_t  m_boot_settings[CODE_PAGE_SIZE]    __attribute__((at(BOOTLOADER_SETTINGS_ADDRESS))) __attribute__((used));                 
uint32_t m_uicr_bootloader_start_address    __attribute__((at(NRF_UICR_BOOT_START_ADDRESS))) = BOOTLOADER_REGION_START;            


#elif defined ( __GNUC__ )

uint8_t m_boot_settings[CODE_PAGE_SIZE] __attribute__ ((section(".bootloaderSettings")));                                        
volatile uint32_t m_uicr_bootloader_start_address  __attribute__ ((section(".uicrBootStartAddress"))) = BOOTLOADER_REGION_START;    
#elif defined ( __ICCARM__ )

__no_init uint8_t m_boot_settings[CODE_PAGE_SIZE] @ BOOTLOADER_SETTINGS_ADDRESS;                                                    
__root    const uint32_t m_uicr_bootloader_start_address @ NRF_UICR_BOOT_START_ADDRESS = BOOTLOADER_REGION_START;                   

#endif

#if defined ( NRF52 )
#if defined ( __CC_ARM )

uint8_t m_mbr_params_page[CODE_PAGE_SIZE]   __attribute__((at(BOOTLOADER_MBR_PARAMS_PAGE_ADDRESS))) __attribute__((used));          
uint32_t m_uicr_mbr_params_page_address     __attribute__((at(NRF_UICR_MBR_PARAMS_PAGE_ADDRESS))) 
                                                = BOOTLOADER_MBR_PARAMS_PAGE_ADDRESS;                                               

#elif defined (__GNUC__ )

uint8_t m_mbr_params_page[CODE_PAGE_SIZE]           __attribute__ ((section(".mbrParamsPage")));                                    
volatile uint32_t m_uicr_mbr_params_page_address    __attribute__ ((section(".uicrMbrParamsPageAddress")))
                                                = BOOTLOADER_MBR_PARAMS_PAGE_ADDRESS;                                               

#elif defined (__ICCARM__ )

__no_init uint8_t m_mbr_params_page[CODE_PAGE_SIZE]     @ BOOTLOADER_MBR_PARAMS_PAGE_ADDRESS;                                       
__root    const uint32_t m_uicr_mbr_params_page_address @ NRF_UICR_MBR_PARAMS_PAGE_ADDRESS = BOOTLOADER_MBR_PARAMS_PAGE_ADDRESS;    

#endif
#endif //defined ( NRF52 )
Related