ESPHome 2026.1.0-dev
Loading...
Searching...
No Matches
ota_backend_esp8266.h
Go to the documentation of this file.
1#pragma once
2#ifdef USE_ESP8266
3#include "ota_backend.h"
4
7
8#include <memory>
9
10namespace esphome::ota {
11
16 public:
17 OTAResponseTypes begin(size_t image_size) override;
18 void set_update_md5(const char *md5) override;
19 OTAResponseTypes write(uint8_t *data, size_t len) override;
20 OTAResponseTypes end() override;
21 void abort() override;
22 // Compression supported in all ESP8266 Arduino versions ESPHome supports (>= 2.7.0)
23 bool supports_compression() override { return true; }
24
25 protected:
28
30 bool flash_write_();
31
33 bool write_buffer_();
34
37
39 bool verify_end_();
40
42 uint8_t get_flash_chip_mode_();
43
44 std::unique_ptr<uint8_t[]> buffer_;
45 size_t buffer_size_{0};
46 size_t buffer_len_{0};
47
48 uint32_t start_address_{0};
49 uint32_t current_address_{0};
50 size_t image_size_{0};
51
53 uint8_t expected_md5_[16]; // Fixed-size buffer for 128-bit (16-byte) MD5 digest
54 bool md5_set_{false};
55};
56
57} // namespace esphome::ota
58#endif // USE_ESP8266
OTA backend for ESP8266 using native SDK functions.
bool write_buffer_final_()
Write buffered data to flash without MD5 update (for final padded write)
std::unique_ptr< uint8_t[]> buffer_
OTAResponseTypes write(uint8_t *data, size_t len) override
bool erase_sector_if_needed_()
Erase flash sector if current address is at sector boundary.
bool write_buffer_()
Write buffered data to flash and update MD5.
OTAResponseTypes begin(size_t image_size) override
bool verify_end_()
Verify the firmware header is valid.
bool flash_write_()
Write buffer to flash (does not update address or clear buffer)
OTAResponseTypes end() override
void set_update_md5(const char *md5) override
uint8_t get_flash_chip_mode_()
Get current flash chip mode from flash header.
std::string size_t len
Definition helpers.h:533