55 lines
1.3 KiB
C
55 lines
1.3 KiB
C
#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;
|
|
} |