espvban/ESPIDFNEW/main/flash.c

55 lines
1.3 KiB
C
Raw Normal View History

2024-08-29 21:38:48 +02:00
#include "flash.h"
#include "nvs_flash.h"
const char LOGTAG[] = "nvs storage";
static char flashInits = false;
void flash_init()
{
if (flashInits)
{
return;
}
esp_err_t err = nvs_flash_init();
if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
ESP_ERROR_CHECK(nvs_flash_erase());
ESP_ERROR_CHECK(nvs_flash_init());
}
flashInits = 1;
}
void flash_init_partition(const char *partitionName)
{
ESP_ERROR_CHECK(nvs_flash_init_partition(partitionName));
}
void flash_write_byte(const char *partitionName,const char *varName, void *data, unsigned int size)
{
nvs_handle_t my_handle;
nvs_open(partitionName,NVS_READWRITE,&my_handle);
nvs_set_blob(my_handle,varName,data,size);
nvs_commit(my_handle);
nvs_close(my_handle);
}
unsigned int flash_read_byte(const char *partitionName,const char *varName, void *data, unsigned int size)
{
nvs_handle_t my_handle;
nvs_open(partitionName,NVS_READONLY,&my_handle);
nvs_get_blob(my_handle,varName,data,&size);
nvs_close(my_handle);
return size;
}
void flash_erase_partition(const char *partitionName)
{
ESP_ERROR_CHECK(nvs_flash_erase_partition(partitionName));
}
void flash_deinit()
{
ESP_ERROR_CHECK(nvs_flash_deinit());
flashInits = 0;
}