HF Interface Wrapper 0.1.0-dev
Embedded C++ hardware abstraction layer
Loading...
Searching...
No Matches
EspNvs.cpp File Reference

World-class ESP32-C6 NVS implementation with ESP-IDF v5.5+ advanced features. More...

#include "EspNvs.h"
#include <cstring>
Include dependency graph for EspNvs.cpp:

Detailed Description

World-class ESP32-C6 NVS implementation with ESP-IDF v5.5+ advanced features.

This file provides a comprehensive, production-ready NVS (Non-Volatile Storage) implementation for the ESP32-C6 microcontroller using modern ESP-IDF v5.5+ APIs. The implementation leverages all advanced features including encryption support, enhanced error handling, statistics tracking, iterator support, and comprehensive security configurations.

Key Features Implemented:

  • Modern ESP-IDF v5.5+ NVS API with full thread safety
  • ESP32-C6 HMAC-based encryption support for secure storage
  • Comprehensive error detection and mapping to HardFOC error codes
  • Advanced NVS features: iterators, statistics, partition management
  • Production-ready error handling with graceful degradation
  • Enhanced security with XTS encryption and key management
  • Namespace isolation and management
  • Performance optimization for high-frequency operations

Security Features:

  • HMAC-based encryption scheme (ESP32-C6 specific)
  • XTS encryption for data protection
  • Secure key generation and management
  • eFuse-based key storage for tamper resistance
  • Flash encryption compatibility

Performance Optimizations:

  • Efficient handle management with validation
  • Optimized error code mapping
  • Namespace caching for faster access
  • Intelligent commit strategies for better performance
  • Statistics tracking for performance monitoring

Hardware Requirements:

  • ESP32-C6 microcontroller with NVS partition
  • Properly configured partition table with NVS partition
  • Optional: eFuse keys for encryption (HMAC-based scheme)
  • Adequate flash space for data and metadata
Author
Nebiyu Tadesse
Date
2025
Note
This implementation is specifically optimized for ESP32-C6 and production environments.
Requires ESP-IDF v5.5 or later for full feature support.
Supports both encrypted and non-encrypted NVS partitions.