Преглед изворни кода

bootloader: fix error pointer to ota select info

Tian Zhong Xing пре 9 година
родитељ
комит
461aab3e75
1 измењених фајлова са 3 додато и 4 уклоњено
  1. 3 4
      components/bootloader/src/main/bootloader_start.c

+ 3 - 4
components/bootloader/src/main/bootloader_start.c

@@ -266,7 +266,7 @@ void bootloader_main()
 
     if (bs.ota_info.offset != 0) {              // check if partition table has OTA info partition
         //ESP_LOGE("OTA info sector handling is not implemented");
-        if (bs.ota_info.size < 2 * sizeof(esp_ota_select_entry_t)) {
+        if (bs.ota_info.size < 2 * SPI_SEC_SIZE) {
             ESP_LOGE(TAG, "ERROR: ota_info partition size %d is too small (minimum %d bytes)", bs.ota_info.size, sizeof(esp_ota_select_entry_t));
             return;
         }
@@ -275,10 +275,9 @@ void bootloader_main()
             ESP_LOGE(TAG, "bootloader_mmap(0x%x, 0x%x) failed", bs.ota_info.offset, bs.ota_info.size);
             return;
         }
-        sa = ota_select_map[0];
-        sb = ota_select_map[1];
+        memcpy(&sa, ota_select_map, sizeof(esp_ota_select_entry_t));
+        memcpy(&sb, (uint8_t *)ota_select_map + SPI_SEC_SIZE, sizeof(esp_ota_select_entry_t));
         bootloader_munmap(ota_select_map);
-
         if(sa.ota_seq == 0xFFFFFFFF && sb.ota_seq == 0xFFFFFFFF) {
             // init status flash 
             if (bs.factory.offset != 0) {        // if have factory bin,boot factory bin