Flash_Access.h 782 B

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #ifndef _Flash_Access_H_
  7. #define _Flash_Access_H_
  8. #include "esp_err.h"
  9. /**
  10. * @brief Universal flash access interface class
  11. *
  12. */
  13. class Flash_Access
  14. {
  15. public:
  16. virtual size_t get_flash_size() = 0;
  17. virtual esp_err_t erase_sector(size_t sector) = 0;
  18. virtual esp_err_t erase_range(size_t start_address, size_t size) = 0;
  19. virtual esp_err_t write(size_t dest_addr, const void *src, size_t size) = 0;
  20. virtual esp_err_t read(size_t src_addr, void *dest, size_t size) = 0;
  21. virtual size_t get_sector_size() = 0;
  22. virtual esp_err_t flush()
  23. {
  24. return ESP_OK;
  25. };
  26. virtual ~Flash_Access() {};
  27. };
  28. #endif // _Flash_Access_H_