Partition.h 979 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #ifndef _Partition_H_
  7. #define _Partition_H_
  8. #include "esp_err.h"
  9. #include "Flash_Access.h"
  10. #include "esp_partition.h"
  11. #include "spi_flash_mmap.h" // for SPI_FLASH_SEC_SIZE
  12. /**
  13. * @brief This class is used to access partition. Class implements Flash_Access interface
  14. *
  15. */
  16. class Partition : public Flash_Access
  17. {
  18. public:
  19. Partition(const esp_partition_t *partition);
  20. virtual size_t get_flash_size();
  21. virtual esp_err_t erase_sector(size_t sector);
  22. virtual esp_err_t erase_range(size_t start_address, size_t size);
  23. virtual esp_err_t write(size_t dest_addr, const void *src, size_t size);
  24. virtual esp_err_t read(size_t src_addr, void *dest, size_t size);
  25. virtual size_t get_sector_size();
  26. virtual bool is_readonly();
  27. virtual ~Partition();
  28. protected:
  29. const esp_partition_t *partition;
  30. };
  31. #endif // _Partition_H_