History: fs_smfs

This page describes all changes made to the fs_smfs package, Smart-Meter File System base, since its release.


1.18 (2017-08-30, 12:28):

  • smfs_get_record_size() prevented other APIs from running if used with RTOS and called with invalid database index.

1.17 (2017-08-02, 11:46):

  • Configuration parameter SMFS_SUPPRESS_IAR_DIAG moved to SMFS configuration file from psp_smfs configuration file.
  • New configuration parameter SMFS_OAL_USED introduced.


  • Formal change eliminating error report generated by the CodeSonar static analysis tool.


  • All API functions are protected against calls with invalid database index.
  • MISRA compliance extended to pass IAR MISRA check (except rules where SMFS deviates i.e. Pm152, Pm102).


  • Operation with block sizes <64k was incorrect.


  • New API functions added for creating, deleting, migrating databases.
  • New API function added for getting database properties.


  • smfs_init() made flash access-free. Flash chip identification, surrounded by smfs_lock() and smfs_unlock() calls moved to smfs_start() so flash chip can be powered before accessing it for the first time.


  • MISRA-compliant version.
  • Added support for key based search.
  • Added init-time layout check to verify if how the medium is formatted is suitable for the actual configuration.
  • Added support for storing/reading Database Structure ID.


  • Several fixes based on review.


  • Several fixes based on review.


  • Database table is being checked for validity when formatting.
  • initialization fix for the case when all data blocks are used.


  • several fixes based on review: Medium and Low priority issues.
  • search algorithm changed, now it uses timestamp-based dichotomic search.


  • several fixes based on review: Highest and High Priority issues fixed.


  • several safety fixes.
  • block init/erase fixed for ( SMFS_CHECK_BLOCKS_ERASED == 0 ).
  • API changes:

-  get_timestamp() callback removed.

-  timestamp comes from input parameter in write functions.

-  read functions output signature and timestamp among data.


  • SMFS and drivers cleaned up, beautified.
  • timestamp not contained by user buffer when writing but returned by user callback function.
  • Databases can be configured, whether or not they contain timestamps.
  • wear leveling introduced.
  • fix regarding writing to non-full databases.
  • several safety related fixes.
  • smfs_cleanup_blocks() API function changed: gets time window size as input parameter.


  • several safety-related fixes.
  • added new API function smfs_clear_records().


  • fix regarding linear database write.
  • new API function smfs_update_record() introduced.


  • initial release.