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

About OTA for nRF52810 on SDK v14.1

Hi

Now I'm using nRF52810 base on SDK v14.1 and I want to do the OTA for it. When I combile the bootloader project, I get so many error "No space in execution regions....." . The error wouldn't occur on SDK v14.0.

image description

Because the nRF52810 just have 196KB flash and the softdevice would use 100KB then the bootloader would use 32 KB. My aplicaiton is about 60KB, so could I use the bootloader to do OTA for nRF52810?

Besides, I can see the start address of the bootloader is 0x78000, if use it to do OTA for nRF52810, how could I set the starting address and the IRAM1 in the Keil setting? Thanks.

52810_OTA.rar

Parents Reply
  • Did you flash the secure bootlaoder to your nRF52832 board in addition to the application? ble_dfu_buttonless_async_svci_init() will call nrf_dfu_svci_vector_table_set() which checks if there is a bootloader present or not, i.e.

    uint32_t nrf_dfu_svci_vector_table_set(void)
    {
        uint32_t err_code;
    
        if (NRF_UICR->NRFFW[0] != 0xFFFFFFFF)
        {
            NRF_LOG_INFO("Setting vector table to bootloader: 0x%08x", NRF_UICR->NRFFW[0]);
            err_code = sd_softdevice_vector_table_base_set(NRF_UICR->NRFFW[0]);
            if (err_code != NRF_SUCCESS)
            {
                NRF_LOG_ERROR("Failed running sd_softdevice_vector_table_base_set");
                return err_code;
            }
    
            return NRF_SUCCESS;
        }
    
        NRF_LOG_ERROR("No bootloader was found");
        return NRF_ERROR_NO_MEM;
    }
    
Children
No Data
Related