Add Key Value Storage implementation for EFR32 platform. (#4367)
* Add pigweed logging backend for CHIP
Add a small module which connects pigweed logs to CHIP logging.
* Update pigweed repo
Adds support for C++14 KVS.
* Add KVS implementation for EFR32 platform
Use the pigweed KVS to implement persitent storage on the EFR32
platform. Only gets included when the application defined the KVS
macros.
* Add persistent storage test/example
Add an example app which tests the KVS api.
diff --git a/src/platform/BUILD.gn b/src/platform/BUILD.gn
index 8157c42..abffbe0 100644
--- a/src/platform/BUILD.gn
+++ b/src/platform/BUILD.gn
@@ -15,7 +15,7 @@
import("//build/config/linux/pkg_config.gni")
import("//build_overrides/chip.gni")
import("//build_overrides/nlio.gni")
-
+import("//build_overrides/pigweed.gni")
import("${chip_root}/build/chip/buildconfig_header.gni")
import("device.gni")
@@ -164,6 +164,7 @@
"../include/platform/ConfigurationManager.h",
"../include/platform/ConnectivityManager.h",
"../include/platform/GeneralUtils.h",
+ "../include/platform/KeyValueStoreManager.h",
"../include/platform/PersistedStorage.h",
"../include/platform/PlatformManager.h",
"../include/platform/SoftwareUpdateManager.h",
@@ -313,6 +314,18 @@
"EFR32/gatt_db.h",
"FreeRTOS/SystemTimeSupport.cpp",
]
+
+ # Add pigweed KVS
+ deps = [
+ "$dir_pw_kvs:crc16",
+ "$dir_pw_log",
+ ]
+ public_deps += [ "$dir_pw_kvs" ]
+ sources += [
+ "EFR32/KeyValueStoreManagerImpl.cpp",
+ "EFR32/KeyValueStoreManagerImpl.h",
+ ]
+
if (chip_enable_openthread) {
public_deps += [ "${openthread_root}:libopenthread-ftd" ]