Guest User

Untitled

a guest
Dec 20th, 2022
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.28 KB | None | 0 0
  1. void invalidate_external_fw(nrf_dfu_flash_callback_t callback)
  2. {
  3.     ret_code_t err_code;
  4.     static nrf_dfu_settings_t dfu_settings_buffer;
  5.  
  6.     nrf_dfu_bank_invalidate(&s_dfu_settings.bank_1);
  7.  
  8.  
  9.     s_dfu_settings.crc = settings_crc_get(&s_dfu_settings);
  10.     s_dfu_settings.boot_validation_crc = boot_validation_crc(&s_dfu_settings);
  11.     err_code = nrf_dfu_flash_erase((uint32_t)m_dfu_settings_buffer, 1, NULL);
  12.  
  13.  
  14.  
  15.     if(err_code == NRF_SUCCESS)
  16.     {
  17.         // Do nothing
  18.     }
  19.     else
  20.     {
  21.         NRF_LOG_ERROR("Failed to erase m_dfu_settings_buffer", err_code);
  22.     }
  23.  
  24.     memcpy(&dfu_settings_buffer, &s_dfu_settings, sizeof(nrf_dfu_settings_t));
  25.  
  26.     err_code = nrf_dfu_flash_store((uint32_t)m_dfu_settings_buffer,
  27.                                    &s_dfu_settings,
  28.                                    sizeof(nrf_dfu_settings_t),
  29.                                    NULL);
  30.  
  31.  
  32.     nrf_dfu_settings_backup(callback);
  33.  
  34.  
  35.     if(err_code == NRF_SUCCESS)
  36.     {
  37.         // Do nothing
  38.     }
  39.     else
  40.     {
  41.         NRF_LOG_ERROR("Failed to invalidate external firmware, error: 0x%X", err_code);
  42.     }
  43.     /*NRF_LOG_INFO("Actual bank code value: %d, at address: %p",*/
  44.                  /*((nrf_dfu_settings_t *)m_dfu_settings_buffer)->bank_1.bank_code, (void*)m_dfu_settings_buffer);*/
  45. }
  46.  
Advertisement
Add Comment
Please, Sign In to add comment