Configuration

When using FlashDB, you can configure its functions through fdb_cfg.h. The file template is located in the inc directory, or you can copy it in the specific demo project. Let’s introduce the configuration details in detail below

FDB_USING_KVDB

Enable KVDB feature

FDB_KV_AUTO_UPDATE

Enable KV automatic upgrade function. After this function is enabled, fdb_kvdb.ver_num stores the version of the current database. If the version changes, it will automatically trigger an upgrade action and update the new default KV collection to the current database.

FDB_USING_TSDB

Enable TSDB feature

FDB_USING_FAL_MODE

Enable FAL mode, partition in FAL is used to store the database. In this mode, FlashDB directly operates Flash, so performance is better.

FDB_USING_FILE_POSIX_MODE

Using POSIX file mode, you need to provide an open/read/write/close related file access interface.

FDB_USING_FILE_LIBC_MODE

Using the file mode of the C standard library, you need to provide a fopen/fread/fwrte/fclose related file access interface.

FDB_USING_FILE_LIBC_MODE and FDB_USING_FILE_POSIX_MODE mode can ONLY be one. Compared to FAL mode, the storage location, size and quantity of the database in the file mode are not limited.

FDB_WRITE_GRAN

Flash write granularity, the unit is bit. Currently supports

  • 1: nor flash
  • 8: stm32f2/f4 on-chip Flash
  • 32: stm32f1 on-chip Flash

If multiple Flash specifications are used in the database, for example: both nor flash and stm32f4 on-chip Flash, the maximum value is used as the configuration item, namely: 8 bit

FDB_BIG_ENDIAN

MCU small-endian configuration, when the default is not configured, the system automatically uses the small-endian configuration

FDB_PRINT(…)

The print function macro defines the configuration. When it is not configured by default, using printf as the print log is the output function. Users can also customize new print function macro definitions, for example:

  1. #define FDB_PRINT(...) my_printf(__VA_ARGS__)

FDB_DEBUG_ENABLE

Enable debugging information output. When this configuration is closed, the system will not output logs for debugging.