Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit 0c5b782
Author: kohait00 <[email protected]>
Date:   Mon Oct 30 13:12:18 2023 +0100

    adjusting esp_ota_write documentation, redefine LOG to Debug domain

commit c00dc14
Author: kohait00 <[email protected]>
Date:   Sun Oct 29 02:42:55 2023 +0100

    correction of the fix, is even simpler now

    the problem is that when a previous write has written just to the end of a sector, the next sector gets deleted too
    because wrote_size+size will just point the the beginning of the net sector.

commit c62e4b5
Author: kohait00 <[email protected]>
Date:   Tue Oct 24 00:43:44 2023 +0200

    fixing OTA on partition just at the end of the flash
  • Loading branch information
kohait00 committed Oct 30, 2023
1 parent 8fc8f3f commit 9a8796d
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
11 changes: 9 additions & 2 deletions components/app_update/esp_ota_ops.c
Original file line number Diff line number Diff line change
Expand Up @@ -197,13 +197,20 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
return ESP_ERR_INVALID_ARG;
}

if(size == 0)
{
ESP_LOGD(TAG, "write data size is 0");
return ESP_OK;
}

// find ota handle in linked list
for (it = LIST_FIRST(&s_ota_ops_entries_head); it != NULL; it = LIST_NEXT(it, entries)) {
if (it->handle == handle) {
if (it->need_erase) {
// must erase the partition before writing to it
uint32_t first_sector = it->wrote_size / SPI_FLASH_SEC_SIZE;
uint32_t last_sector = (it->wrote_size + size) / SPI_FLASH_SEC_SIZE;
uint32_t first_sector = it->wrote_size / SPI_FLASH_SEC_SIZE; //first affected sector
uint32_t last_sector = (it->wrote_size + size - 1) / SPI_FLASH_SEC_SIZE; //last affected sector


ret = ESP_OK;
if ((it->wrote_size % SPI_FLASH_SEC_SIZE) == 0) {
Expand Down
2 changes: 1 addition & 1 deletion components/app_update/include/esp_ota_ops.h
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ esp_err_t esp_ota_begin(const esp_partition_t* partition, size_t image_size, esp
* @param size Size of data buffer in bytes.
*
* @return
* - ESP_OK: Data was written to flash successfully.
* - ESP_OK: Data was written to flash successfully, or size = 0
* - ESP_ERR_INVALID_ARG: handle is invalid.
* - ESP_ERR_OTA_VALIDATE_FAILED: First byte of image contains invalid app image magic byte.
* - ESP_ERR_FLASH_OP_TIMEOUT or ESP_ERR_FLASH_OP_FAIL: Flash write failed.
Expand Down

0 comments on commit 9a8796d

Please sign in to comment.