Silabs add systemview (#23708)
diff --git a/examples/platform/efr32/FreeRTOSConfig.h b/examples/platform/efr32/FreeRTOSConfig.h
index 35d6e37..50f4c24 100644
--- a/examples/platform/efr32/FreeRTOSConfig.h
+++ b/examples/platform/efr32/FreeRTOSConfig.h
@@ -117,6 +117,10 @@
#include "sl_component_catalog.h"
#endif
+#if SL_SYSTEM_VIEW
+#include "SEGGER_SYSVIEW_FreeRTOS.h"
+#endif
+
/*-----------------------------------------------------------
* Application specific definitions.
*
diff --git a/examples/platform/efr32/init_efrPlatform.cpp b/examples/platform/efr32/init_efrPlatform.cpp
index 36ee001..2234be0 100644
--- a/examples/platform/efr32/init_efrPlatform.cpp
+++ b/examples/platform/efr32/init_efrPlatform.cpp
@@ -56,12 +56,20 @@
#include "sl_mbedtls.h"
#include "sl_system_init.h"
+#if SL_SYSTEM_VIEW
+#include "SEGGER_SYSVIEW.h"
+#endif
+
void initAntenna(void);
void init_efrPlatform(void)
{
sl_system_init();
sl_mbedtls_init();
+#if SL_SYSTEM_VIEW
+ SEGGER_SYSVIEW_Conf();
+ SEGGER_SYSVIEW_Start();
+#endif
#if EFR32_LOG_ENABLED
efr32InitLog();
diff --git a/third_party/silabs/efr32_sdk.gni b/third_party/silabs/efr32_sdk.gni
index a7b8034..493caaf 100644
--- a/third_party/silabs/efr32_sdk.gni
+++ b/third_party/silabs/efr32_sdk.gni
@@ -35,6 +35,9 @@
# Use Silabs factory data provider example.
# Users can implement their own.
use_efr32_factory_data_provider = true
+
+ # Enable Segger System View
+ use_system_view = false
}
# Explorer Kit and MGM240L do not have external flash
@@ -195,6 +198,17 @@
#"__STACK_SIZE=0",
]
+ if (use_system_view) {
+ _include_dirs += [
+ "${efr32_sdk_root}/util/third_party/segger/systemview/SEGGER",
+ "${efr32_sdk_root}/util/third_party/segger/systemview/Sample/FreeRTOSV10/Config/Cortex-M",
+ "${efr32_sdk_root}/util/third_party/segger/systemview/Sample/FreeRTOSV10",
+ "${efr32_sdk_root}/util/third_party/segger/systemview/Config/",
+ ]
+
+ defines += [ "SL_SYSTEM_VIEW=1" ]
+ }
+
defines += board_defines
if (use_wstk_leds) {
@@ -571,6 +585,14 @@
"${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/autogen/sl_simple_button_instances.c",
]
+ if (use_system_view) {
+ sources += [
+ "${efr32_sdk_root}/util/third_party/segger/systemview/SEGGER/SEGGER_SYSVIEW.c",
+ "${efr32_sdk_root}/util/third_party/segger/systemview/Sample/FreeRTOSV10/Config/Cortex-M/SEGGER_SYSVIEW_Config_FreeRTOS.c",
+ "${efr32_sdk_root}/util/third_party/segger/systemview/Sample/FreeRTOSV10/SEGGER_SYSVIEW_FreeRTOS.c",
+ ]
+ }
+
if (use_wstk_leds) {
sources += [
"${efr32_sdk_root}/platform/driver/leddrv/src/sl_led.c",