mirror of
https://github.com/HendrikRauh/dmx-interface.git
synced 2026-03-09 05:20:21 +00:00
add(storage): implement LittleFS initialization and static file handling
This commit is contained in:
parent
99cb820b0c
commit
cac63b10d7
8 changed files with 189 additions and 38 deletions
6
components/storage/CMakeLists.txt
Normal file
6
components/storage/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
idf_component_register(
|
||||
SRCS "src/storage.c"
|
||||
INCLUDE_DIRS "include"
|
||||
REQUIRES joltwallet__littlefs
|
||||
PRIV_REQUIRES vfs
|
||||
)
|
||||
29
components/storage/include/storage.h
Normal file
29
components/storage/include/storage.h
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
#ifndef STORAGE_H
|
||||
#define STORAGE_H
|
||||
|
||||
#include "esp_err.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Initialize and mount LittleFS filesystem
|
||||
*
|
||||
* @return ESP_OK on success, error code otherwise
|
||||
*/
|
||||
esp_err_t storage_init(void);
|
||||
|
||||
/**
|
||||
* @brief Get the mount point for the LittleFS filesystem
|
||||
*
|
||||
* @return Pointer to the mount point string (e.g., "/data")
|
||||
*/
|
||||
const char *storage_get_mount_point(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* STORAGE_H */
|
||||
56
components/storage/src/storage.c
Normal file
56
components/storage/src/storage.c
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
#include "storage.h"
|
||||
|
||||
#include "esp_littlefs.h"
|
||||
#include "esp_log.h"
|
||||
#include "esp_vfs.h"
|
||||
|
||||
static const char *TAG = "STORAGE";
|
||||
static const char *LITTLEFS_MOUNT_POINT = "/data";
|
||||
|
||||
esp_err_t storage_init(void)
|
||||
{
|
||||
esp_vfs_littlefs_conf_t conf = {
|
||||
.base_path = LITTLEFS_MOUNT_POINT,
|
||||
.partition_label = "storage",
|
||||
.format_if_mount_failed = false,
|
||||
.read_only = false,
|
||||
};
|
||||
|
||||
esp_err_t ret = esp_vfs_littlefs_register(&conf);
|
||||
|
||||
if (ret != ESP_OK)
|
||||
{
|
||||
if (ret == ESP_FAIL)
|
||||
{
|
||||
ESP_LOGE(TAG, "Failed to mount LittleFS or format filesystem");
|
||||
}
|
||||
else if (ret == ESP_ERR_INVALID_STATE)
|
||||
{
|
||||
ESP_LOGE(TAG, "ESP_ERR_INVALID_STATE");
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGE(TAG, "Failed to initialize LittleFS: %s", esp_err_to_name(ret));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
size_t total = 0, used = 0;
|
||||
ret = esp_littlefs_info(conf.partition_label, &total, &used);
|
||||
if (ret == ESP_OK)
|
||||
{
|
||||
ESP_LOGI(TAG, "LittleFS mounted at %s. Total: %d bytes, Used: %d bytes",
|
||||
LITTLEFS_MOUNT_POINT, total, used);
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGE(TAG, "Failed to get LittleFS information");
|
||||
}
|
||||
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
const char *storage_get_mount_point(void)
|
||||
{
|
||||
return LITTLEFS_MOUNT_POINT;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue