Browse Source

AP_Bootloader: fixed use of FLASH_RESERVE_END_KB

c415-sdk
Andrew Tridgell 5 years ago
parent
commit
a74f2428f2
  1. 4
      Tools/AP_Bootloader/AP_Bootloader.cpp
  2. 11
      Tools/AP_Bootloader/support.cpp

4
Tools/AP_Bootloader/AP_Bootloader.cpp

@ -51,9 +51,9 @@ int main(void) @@ -51,9 +51,9 @@ int main(void)
{
board_info.board_type = APJ_BOARD_ID;
board_info.board_rev = 0;
board_info.fw_size = (BOARD_FLASH_SIZE - FLASH_BOOTLOADER_LOAD_KB)*1024;
board_info.fw_size = (BOARD_FLASH_SIZE - (FLASH_BOOTLOADER_LOAD_KB + FLASH_RESERVE_END_KB))*1024;
if (BOARD_FLASH_SIZE > 1024 && check_limit_flash_1M()) {
board_info.fw_size = (1024 - FLASH_BOOTLOADER_LOAD_KB)*1024;
board_info.fw_size = (1024 - FLASH_BOOTLOADER_LOAD_KB)*1024;
}
bool try_boot = false;

11
Tools/AP_Bootloader/support.cpp

@ -80,11 +80,22 @@ void flash_init(void) @@ -80,11 +80,22 @@ void flash_init(void)
{
uint32_t reserved = 0;
num_pages = stm32_flash_getnumpages();
/*
advance flash_base_page to account for FLASH_BOOTLOADER_LOAD_KB
*/
while (reserved < FLASH_BOOTLOADER_LOAD_KB * 1024U &&
flash_base_page < num_pages) {
reserved += stm32_flash_getpagesize(flash_base_page);
flash_base_page++;
}
/*
reduce num_pages to account for FLASH_RESERVE_END_KB
*/
reserved = 0;
while (reserved < FLASH_RESERVE_END_KB * 1024U) {
reserved += stm32_flash_getpagesize(num_pages-1);
num_pages--;
}
}
void flash_set_keep_unlocked(bool set)

Loading…
Cancel
Save