Instead of using a traditional file based system, HCC has taken the radical approach of defining a system built around the needs of smart-meters. Metering applications usually have well-defined record structures and HCC has used its extensive flash experience to take advantage of this. By taking a data-focused approach instead of a file-focused one, it is possible reduce the required number of write/erase cycles by an order of magnitude. Traditional file systems do not have built-in cyclic buffer logic for storing records and this can add complexity, significantly increasing the number of times flash must be accessed. SMFS uses a structured database to reduce the complexity of the application. This improves the performance in almost every way: speed, power consumption, and flash life.
- Conforms to the HCC Advanced Embedded Framework.
- Designed for integration with both RTOS and non-RTOS based systems.
- Features developed to significantly lower manufacturing BOM cost.
- Minimizes the RAM requirements. SMFS requires less than 15 KB of program memory and 1.5 KB of RAM on 32 bit MCUs.
- Data storage is fail-safe; the system will always recover.
- Supports 16 and 32 bit MCUs.
- Maximizes flash lifetime. SMFS uses wear leveling to level the sector usage. Data can be preserved for 15 years or more.
- Minimizes power consumption to preserve battery life.
- Minimizes flash operations to preserve both the flash and the battery.
- Uses the byte-per-byte writing feature offered by NOR flash instead of writing complete pages. This makes the system faster and more efficient.
- Deterministic behavior in the event of an unexpected reset.
- Allows addition of ‘hook functions’ to allow signing or ciphering of data.
- Fully MISRA-compliant.
- Provides a simulation environment for modeling long term behavior.
- Allows a reserved area of flash for non-SMFS usage.
- Import of flash images to simulation for diagnostic analysis.
The SMFS makes use of a generic serial NOR Flash driver or a RAM driver to access the storage media, as shown below. (The generic serial NOR Flash driver is designed for use with most serial NOR flash devices. It has been tested with Macronix, Winbond, and Micron devices, but can easily be adapted to similar chips.)
SMFS has the following core specification:
- It uses a collection of user-defined databases.
- Each database can contain a defined record type.
- Each database can be defined as a linear or cyclic array.
- The user API is used to access records.