esp-matter: Add menuconfig options to exclude unused clusters for flash optimization

This commit is contained in:
WanqQixiang
2025-02-13 11:58:11 +08:00
parent 9be61fd27a
commit 6cdb7a3c02
8 changed files with 1091 additions and 5 deletions
+10 -1
View File
@@ -183,12 +183,13 @@ build_image:
validation_error=1
fi
# Validate if we have the latest ZAP common files
# Validate if we have the latest ZAP common and cluster select files
# python3 is not installed in dind image, so we need to install it
- apk add --no-cache python3
# update the submodule to so that script runs based on that submodule
- git submodule update --init --depth 1 connectedhomeip/connectedhomeip
- python3 components/esp_matter/zap_common/generate_zap_common_files.py
- python3 components/esp_matter/utils/cluster_select/generate_cluster_select_files.py
- |
if git diff --quiet components/esp_matter/zap_common; then
echo "ZAP common files are up to date."
@@ -197,6 +198,14 @@ build_image:
echo " Please run ./components/esp_matter/zap_common/generate_zap_common_files.py and commit the changes."
validation_error=1
fi
- |
if git diff --quiet components/esp_matter/utils/cluster_select; then
echo "Cluster select files are up to date."
else
echo "ERROR: Cluster select files are not up to date."
echo " Please run ./components/esp_matter/utils/cluster_select/generate_cluster_select_files.py and commit the changes."
validation_error=1
fi
# Exit with collected error status
- if [ $validation_error -ne 0 ]; then exit 1; fi
+4 -3
View File
@@ -19,9 +19,10 @@ set(INCLUDE_DIRS_LIST "."
set(EXCLUDE_SRCS_LIST )
if (CONFIG_ESP_MATTER_ENABLE_DATA_MODEL)
# Get the list of cluster directories present in ${MATTER_SDK_PATH}/src/app/clusters
file(GLOB CLUSTER_DIR_LIST true ${MATTER_SDK_PATH}/src/app/clusters/*)
foreach(CLUSTER_DIR ${CLUSTER_DIR_LIST})
include("utils/cluster_select/cluster_dir.cmake")
get_supported_cluster_dirs(SUPPORTED_CLUSTER_DIRS)
foreach(CLUSTER_DIR ${SUPPORTED_CLUSTER_DIRS})
# If the cluster directory has .c/.cpp file, add it to SRC_DIRS_LIST
file(GLOB_RECURSE C_CPP_FILES "${CLUSTER_DIR}/*.c" "${CLUSTER_DIR}/*.cpp")
if (C_CPP_FILES)
list(APPEND SRC_DIRS_LIST "${CLUSTER_DIR}")
+13
View File
@@ -238,4 +238,17 @@ menu "ESP Matter"
Disable this option to initialize Thread stack and start Thread task with more
flexibility.
menu "Select Supported Matter Clusters"
visible if ESP_MATTER_ENABLE_DATA_MODEL
# If the cluster implementation source files use a class derived from another class with virtual functions
# and instantiate an object of that class, the linker may include this cluster in the final binary even if
# it is unused. To mitigate this and reduce firmware size, we offer a method to exclude those source files
# from compilation. If your product's data model does not require a specific cluster, you can deselect it
# under this menu to optimize flash usage.
rsource "utils/cluster_select/Kconfig.in"
endmenu
endmenu
@@ -0,0 +1,439 @@
# This file is generated by generate_cluster_select_files.py
# Please don't edit this file
config SUPPORT_ACCESS_CONTROL_CLUSTER
bool "Support ACCESS_CONTROL_CLUSTER"
default y
config SUPPORT_ACCOUNT_LOGIN_CLUSTER
bool "Support ACCOUNT_LOGIN_CLUSTER"
default y
config SUPPORT_ACTIVATED_CARBON_FILTER_MONITORING_CLUSTER
bool "Support ACTIVATED_CARBON_FILTER_MONITORING_CLUSTER"
default y
config SUPPORT_ADMINISTRATOR_COMMISSIONING_CLUSTER
bool "Support ADMINISTRATOR_COMMISSIONING_CLUSTER"
default y
config SUPPORT_AIR_QUALITY_CLUSTER
bool "Support AIR_QUALITY_CLUSTER"
default y
config SUPPORT_APPLICATION_BASIC_CLUSTER
bool "Support APPLICATION_BASIC_CLUSTER"
default y
config SUPPORT_APPLICATION_LAUNCHER_CLUSTER
bool "Support APPLICATION_LAUNCHER_CLUSTER"
default y
config SUPPORT_AUDIO_OUTPUT_CLUSTER
bool "Support AUDIO_OUTPUT_CLUSTER"
default y
config SUPPORT_BASIC_INFORMATION_CLUSTER
bool "Support BASIC_INFORMATION_CLUSTER"
default y
config SUPPORT_BINDING_CLUSTER
bool "Support BINDING_CLUSTER"
default y
config SUPPORT_BOOLEAN_STATE_CONFIGURATION_CLUSTER
bool "Support BOOLEAN_STATE_CONFIGURATION_CLUSTER"
default y
config SUPPORT_BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER
bool "Support BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER"
default y
config SUPPORT_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER
bool "Support CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER"
default y
config SUPPORT_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER
bool "Support CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER"
default y
config SUPPORT_CHANNEL_CLUSTER
bool "Support CHANNEL_CLUSTER"
default y
config SUPPORT_CHIME_CLUSTER
bool "Support CHIME_CLUSTER"
default y
config SUPPORT_COLOR_CONTROL_CLUSTER
bool "Support COLOR_CONTROL_CLUSTER"
default y
config SUPPORT_COMMISSIONER_CONTROL_CLUSTER
bool "Support COMMISSIONER_CONTROL_CLUSTER"
default y
config SUPPORT_CONTENT_LAUNCHER_CLUSTER
bool "Support CONTENT_LAUNCHER_CLUSTER"
default y
config SUPPORT_CONTENT_CONTROL_CLUSTER
bool "Support CONTENT_CONTROL_CLUSTER"
default y
config SUPPORT_CONTENT_APP_OBSERVER_CLUSTER
bool "Support CONTENT_APP_OBSERVER_CLUSTER"
default y
config SUPPORT_DESCRIPTOR_CLUSTER
bool "Support DESCRIPTOR_CLUSTER"
default y
config SUPPORT_DEVICE_ENERGY_MANAGEMENT_CLUSTER
bool "Support DEVICE_ENERGY_MANAGEMENT_CLUSTER"
default y
config SUPPORT_DEVICE_ENERGY_MANAGEMENT_MODE_CLUSTER
bool "Support DEVICE_ENERGY_MANAGEMENT_MODE_CLUSTER"
default y
config SUPPORT_DIAGNOSTIC_LOGS_CLUSTER
bool "Support DIAGNOSTIC_LOGS_CLUSTER"
default y
config SUPPORT_DISHWASHER_ALARM_CLUSTER
bool "Support DISHWASHER_ALARM_CLUSTER"
default y
config SUPPORT_DISHWASHER_MODE_CLUSTER
bool "Support DISHWASHER_MODE_CLUSTER"
default y
config SUPPORT_MICROWAVE_OVEN_MODE_CLUSTER
bool "Support MICROWAVE_OVEN_MODE_CLUSTER"
default y
config SUPPORT_DOOR_LOCK_CLUSTER
bool "Support DOOR_LOCK_CLUSTER"
default y
config SUPPORT_ECOSYSTEM_INFORMATION_CLUSTER
bool "Support ECOSYSTEM_INFORMATION_CLUSTER"
default y
config SUPPORT_ELECTRICAL_ENERGY_MEASUREMENT_CLUSTER
bool "Support ELECTRICAL_ENERGY_MEASUREMENT_CLUSTER"
default y
config SUPPORT_ELECTRICAL_POWER_MEASUREMENT_CLUSTER
bool "Support ELECTRICAL_POWER_MEASUREMENT_CLUSTER"
default y
config SUPPORT_ENERGY_EVSE_CLUSTER
bool "Support ENERGY_EVSE_CLUSTER"
default y
config SUPPORT_ENERGY_EVSE_MODE_CLUSTER
bool "Support ENERGY_EVSE_MODE_CLUSTER"
default y
config SUPPORT_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER
bool "Support ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER"
default y
config SUPPORT_ENERGY_PREFERENCE_CLUSTER
bool "Support ENERGY_PREFERENCE_CLUSTER"
default y
config SUPPORT_FAN_CONTROL_CLUSTER
bool "Support FAN_CONTROL_CLUSTER"
default y
config SUPPORT_FAULT_INJECTION_CLUSTER
bool "Support FAULT_INJECTION_CLUSTER"
default y
config SUPPORT_FIXED_LABEL_CLUSTER
bool "Support FIXED_LABEL_CLUSTER"
default y
config SUPPORT_FORMALDEHYDE_CONCENTRATION_MEASUREMENT_CLUSTER
bool "Support FORMALDEHYDE_CONCENTRATION_MEASUREMENT_CLUSTER"
default y
config SUPPORT_GENERAL_COMMISSIONING_CLUSTER
bool "Support GENERAL_COMMISSIONING_CLUSTER"
default y
config SUPPORT_GENERAL_DIAGNOSTICS_CLUSTER
bool "Support GENERAL_DIAGNOSTICS_CLUSTER"
default y
config SUPPORT_GROUPS_CLUSTER
bool "Support GROUPS_CLUSTER"
default y
config SUPPORT_HEPA_FILTER_MONITORING_CLUSTER
bool "Support HEPA_FILTER_MONITORING_CLUSTER"
default y
config SUPPORT_GROUP_KEY_MANAGEMENT_CLUSTER
bool "Support GROUP_KEY_MANAGEMENT_CLUSTER"
default y
config SUPPORT_ICD_MANAGEMENT_CLUSTER
bool "Support ICD_MANAGEMENT_CLUSTER"
default y
config SUPPORT_IDENTIFY_CLUSTER
bool "Support IDENTIFY_CLUSTER"
default y
config SUPPORT_KEYPAD_INPUT_CLUSTER
bool "Support KEYPAD_INPUT_CLUSTER"
default y
config SUPPORT_LAUNDRY_WASHER_MODE_CLUSTER
bool "Support LAUNDRY_WASHER_MODE_CLUSTER"
default y
config SUPPORT_LEVEL_CONTROL_CLUSTER
bool "Support LEVEL_CONTROL_CLUSTER"
default y
config SUPPORT_LOCALIZATION_CONFIGURATION_CLUSTER
bool "Support LOCALIZATION_CONFIGURATION_CLUSTER"
default y
config SUPPORT_LOW_POWER_CLUSTER
bool "Support LOW_POWER_CLUSTER"
default y
config SUPPORT_MEDIA_INPUT_CLUSTER
bool "Support MEDIA_INPUT_CLUSTER"
default y
config SUPPORT_MEDIA_PLAYBACK_CLUSTER
bool "Support MEDIA_PLAYBACK_CLUSTER"
default y
config SUPPORT_MICROWAVE_OVEN_CONTROL_CLUSTER
bool "Support MICROWAVE_OVEN_CONTROL_CLUSTER"
default y
config SUPPORT_MESSAGES_CLUSTER
bool "Support MESSAGES_CLUSTER"
default y
config SUPPORT_MODE_SELECT_CLUSTER
bool "Support MODE_SELECT_CLUSTER"
default y
config SUPPORT_NETWORK_COMMISSIONING_CLUSTER
bool "Support NETWORK_COMMISSIONING_CLUSTER"
default y
config SUPPORT_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER
bool "Support NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER"
default y
config SUPPORT_SAMPLE_MEI_CLUSTER
bool "Support SAMPLE_MEI_CLUSTER"
default y
config SUPPORT_OCCUPANCY_SENSING_CLUSTER
bool "Support OCCUPANCY_SENSING_CLUSTER"
default y
config SUPPORT_ON_OFF_CLUSTER
bool "Support ON_OFF_CLUSTER"
default y
config SUPPORT_POWER_TOPOLOGY_CLUSTER
bool "Support POWER_TOPOLOGY_CLUSTER"
default y
config SUPPORT_OPERATIONAL_CREDENTIALS_CLUSTER
bool "Support OPERATIONAL_CREDENTIALS_CLUSTER"
default y
config SUPPORT_OPERATIONAL_STATE_CLUSTER
bool "Support OPERATIONAL_STATE_CLUSTER"
default y
config SUPPORT_OPERATIONAL_STATE_OVEN_CLUSTER
bool "Support OPERATIONAL_STATE_OVEN_CLUSTER"
default y
config SUPPORT_OPERATIONAL_STATE_RVC_CLUSTER
bool "Support OPERATIONAL_STATE_RVC_CLUSTER"
default y
config SUPPORT_OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER
bool "Support OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER"
default y
config SUPPORT_OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER
bool "Support OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER"
default y
config SUPPORT_OVEN_MODE_CLUSTER
bool "Support OVEN_MODE_CLUSTER"
default y
config SUPPORT_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER
bool "Support OZONE_CONCENTRATION_MEASUREMENT_CLUSTER"
default y
config SUPPORT_PM10_CONCENTRATION_MEASUREMENT_CLUSTER
bool "Support PM10_CONCENTRATION_MEASUREMENT_CLUSTER"
default y
config SUPPORT_PM1_CONCENTRATION_MEASUREMENT_CLUSTER
bool "Support PM1_CONCENTRATION_MEASUREMENT_CLUSTER"
default y
config SUPPORT_PM2_5_CONCENTRATION_MEASUREMENT_CLUSTER
bool "Support PM2_5_CONCENTRATION_MEASUREMENT_CLUSTER"
default y
config SUPPORT_POWER_SOURCE_CLUSTER
bool "Support POWER_SOURCE_CLUSTER"
default y
config SUPPORT_POWER_SOURCE_CONFIGURATION_CLUSTER
bool "Support POWER_SOURCE_CONFIGURATION_CLUSTER"
default y
config SUPPORT_PUMP_CONFIGURATION_AND_CONTROL_CLUSTER
bool "Support PUMP_CONFIGURATION_AND_CONTROL_CLUSTER"
default y
config SUPPORT_RADON_CONCENTRATION_MEASUREMENT_CLUSTER
bool "Support RADON_CONCENTRATION_MEASUREMENT_CLUSTER"
default y
config SUPPORT_REFRIGERATOR_ALARM_CLUSTER
bool "Support REFRIGERATOR_ALARM_CLUSTER"
default y
config SUPPORT_REFRIGERATOR_AND_TEMPERATURE_CONTROLLED_CABINET_MODE_CLUSTER
bool "Support REFRIGERATOR_AND_TEMPERATURE_CONTROLLED_CABINET_MODE_CLUSTER"
default y
config SUPPORT_RVC_CLEAN_MODE_CLUSTER
bool "Support RVC_CLEAN_MODE_CLUSTER"
default y
config SUPPORT_RVC_RUN_MODE_CLUSTER
bool "Support RVC_RUN_MODE_CLUSTER"
default y
config SUPPORT_SCENES_CLUSTER
bool "Support SCENES_CLUSTER"
default y
config SUPPORT_SERVICE_AREA_CLUSTER
bool "Support SERVICE_AREA_CLUSTER"
default y
config SUPPORT_SMOKE_CO_ALARM_CLUSTER
bool "Support SMOKE_CO_ALARM_CLUSTER"
default y
config SUPPORT_SOFTWARE_DIAGNOSTICS_CLUSTER
bool "Support SOFTWARE_DIAGNOSTICS_CLUSTER"
default y
config SUPPORT_SWITCH_CLUSTER
bool "Support SWITCH_CLUSTER"
default y
config SUPPORT_TARGET_NAVIGATOR_CLUSTER
bool "Support TARGET_NAVIGATOR_CLUSTER"
default y
config SUPPORT_TEMPERATURE_CONTROL_CLUSTER
bool "Support TEMPERATURE_CONTROL_CLUSTER"
default y
config SUPPORT_THERMOSTAT_CLUSTER
bool "Support THERMOSTAT_CLUSTER"
default y
config SUPPORT_THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER
bool "Support THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER"
default y
config SUPPORT_THREAD_BORDER_ROUTER_MANAGEMENT_CLUSTER
bool "Support THREAD_BORDER_ROUTER_MANAGEMENT_CLUSTER"
default y
config SUPPORT_THREAD_NETWORK_DIAGNOSTICS_CLUSTER
bool "Support THREAD_NETWORK_DIAGNOSTICS_CLUSTER"
default y
config SUPPORT_THREAD_NETWORK_DIRECTORY_CLUSTER
bool "Support THREAD_NETWORK_DIRECTORY_CLUSTER"
default y
config SUPPORT_TIME_FORMAT_LOCALIZATION_CLUSTER
bool "Support TIME_FORMAT_LOCALIZATION_CLUSTER"
default y
config SUPPORT_TIME_SYNCHRONIZATION_CLUSTER
bool "Support TIME_SYNCHRONIZATION_CLUSTER"
default y
config SUPPORT_TIMER_CLUSTER
bool "Support TIMER_CLUSTER"
default y
config SUPPORT_TVOC_CONCENTRATION_MEASUREMENT_CLUSTER
bool "Support TVOC_CONCENTRATION_MEASUREMENT_CLUSTER"
default y
config SUPPORT_UNIT_TESTING_CLUSTER
bool "Support UNIT_TESTING_CLUSTER"
default y
config SUPPORT_USER_LABEL_CLUSTER
bool "Support USER_LABEL_CLUSTER"
default y
config SUPPORT_VALVE_CONFIGURATION_AND_CONTROL_CLUSTER
bool "Support VALVE_CONFIGURATION_AND_CONTROL_CLUSTER"
default y
config SUPPORT_WAKE_ON_LAN_CLUSTER
bool "Support WAKE_ON_LAN_CLUSTER"
default y
config SUPPORT_LAUNDRY_WASHER_CONTROLS_CLUSTER
bool "Support LAUNDRY_WASHER_CONTROLS_CLUSTER"
default y
config SUPPORT_LAUNDRY_DRYER_CONTROLS_CLUSTER
bool "Support LAUNDRY_DRYER_CONTROLS_CLUSTER"
default y
config SUPPORT_WIFI_NETWORK_DIAGNOSTICS_CLUSTER
bool "Support WIFI_NETWORK_DIAGNOSTICS_CLUSTER"
default y
config SUPPORT_WIFI_NETWORK_MANAGEMENT_CLUSTER
bool "Support WIFI_NETWORK_MANAGEMENT_CLUSTER"
default y
config SUPPORT_WINDOW_COVERING_CLUSTER
bool "Support WINDOW_COVERING_CLUSTER"
default y
config SUPPORT_WATER_HEATER_MANAGEMENT_CLUSTER
bool "Support WATER_HEATER_MANAGEMENT_CLUSTER"
default y
config SUPPORT_WATER_HEATER_MODE_CLUSTER
bool "Support WATER_HEATER_MODE_CLUSTER"
default y
@@ -0,0 +1,334 @@
# This file is generated by generate_cluster_select_files.py
# Please don't edit this file
function(get_supported_cluster_dirs source_dirs)
set(temp_list )
if(CONFIG_SUPPORT_ACCESS_CONTROL_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/access-control-server")
endif()
if(CONFIG_SUPPORT_ACCOUNT_LOGIN_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/account-login-server")
endif()
if(CONFIG_SUPPORT_ACTIVATED_CARBON_FILTER_MONITORING_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/resource-monitoring-server")
endif()
if(CONFIG_SUPPORT_ADMINISTRATOR_COMMISSIONING_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/administrator-commissioning-server")
endif()
if(CONFIG_SUPPORT_AIR_QUALITY_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/air-quality-server")
endif()
if(CONFIG_SUPPORT_APPLICATION_BASIC_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/application-basic-server")
endif()
if(CONFIG_SUPPORT_APPLICATION_LAUNCHER_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/application-launcher-server")
endif()
if(CONFIG_SUPPORT_AUDIO_OUTPUT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/audio-output-server")
endif()
if(CONFIG_SUPPORT_BASIC_INFORMATION_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/basic-information")
endif()
if(CONFIG_SUPPORT_BINDING_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/bindings")
endif()
if(CONFIG_SUPPORT_BOOLEAN_STATE_CONFIGURATION_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/boolean-state-configuration-server")
endif()
if(CONFIG_SUPPORT_BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/bridged-device-basic-information-server")
endif()
if(CONFIG_SUPPORT_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/concentration-measurement-server")
endif()
if(CONFIG_SUPPORT_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/concentration-measurement-server")
endif()
if(CONFIG_SUPPORT_CHANNEL_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/channel-server")
endif()
if(CONFIG_SUPPORT_CHIME_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/chime-server")
endif()
if(CONFIG_SUPPORT_COLOR_CONTROL_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/color-control-server")
endif()
if(CONFIG_SUPPORT_COMMISSIONER_CONTROL_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/commissioner-control-server")
endif()
if(CONFIG_SUPPORT_CONTENT_LAUNCHER_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/content-launch-server")
endif()
if(CONFIG_SUPPORT_CONTENT_CONTROL_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/content-control-server")
endif()
if(CONFIG_SUPPORT_CONTENT_APP_OBSERVER_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/content-app-observer")
endif()
if(CONFIG_SUPPORT_DESCRIPTOR_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/descriptor")
endif()
if(CONFIG_SUPPORT_DEVICE_ENERGY_MANAGEMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/device-energy-management-server")
endif()
if(CONFIG_SUPPORT_DEVICE_ENERGY_MANAGEMENT_MODE_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/mode-base-server")
endif()
if(CONFIG_SUPPORT_DIAGNOSTIC_LOGS_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/diagnostic-logs-server")
endif()
if(CONFIG_SUPPORT_DISHWASHER_ALARM_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/dishwasher-alarm-server")
endif()
if(CONFIG_SUPPORT_DISHWASHER_MODE_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/mode-base-server")
endif()
if(CONFIG_SUPPORT_MICROWAVE_OVEN_MODE_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/mode-base-server")
endif()
if(CONFIG_SUPPORT_DOOR_LOCK_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/door-lock-server")
endif()
if(CONFIG_SUPPORT_ECOSYSTEM_INFORMATION_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/ecosystem-information-server")
endif()
if(CONFIG_SUPPORT_ELECTRICAL_ENERGY_MEASUREMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/electrical-energy-measurement-server")
endif()
if(CONFIG_SUPPORT_ELECTRICAL_POWER_MEASUREMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/electrical-power-measurement-server")
endif()
if(CONFIG_SUPPORT_ENERGY_EVSE_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/energy-evse-server")
endif()
if(CONFIG_SUPPORT_ENERGY_EVSE_MODE_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/mode-base-server")
endif()
if(CONFIG_SUPPORT_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/ethernet-network-diagnostics-server")
endif()
if(CONFIG_SUPPORT_ENERGY_PREFERENCE_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/energy-preference-server")
endif()
if(CONFIG_SUPPORT_FAN_CONTROL_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/fan-control-server")
endif()
if(CONFIG_SUPPORT_FAULT_INJECTION_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/fault-injection-server")
endif()
if(CONFIG_SUPPORT_FIXED_LABEL_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/fixed-label-server")
endif()
if(CONFIG_SUPPORT_FORMALDEHYDE_CONCENTRATION_MEASUREMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/concentration-measurement-server")
endif()
if(CONFIG_SUPPORT_GENERAL_COMMISSIONING_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/general-commissioning-server")
endif()
if(CONFIG_SUPPORT_GENERAL_DIAGNOSTICS_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/general-diagnostics-server")
endif()
if(CONFIG_SUPPORT_GROUPS_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/groups-server")
endif()
if(CONFIG_SUPPORT_HEPA_FILTER_MONITORING_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/resource-monitoring-server")
endif()
if(CONFIG_SUPPORT_GROUP_KEY_MANAGEMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/group-key-mgmt-server")
endif()
if(CONFIG_SUPPORT_ICD_MANAGEMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/icd-management-server")
endif()
if(CONFIG_SUPPORT_IDENTIFY_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/identify-server")
endif()
if(CONFIG_SUPPORT_KEYPAD_INPUT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/keypad-input-server")
endif()
if(CONFIG_SUPPORT_LAUNDRY_WASHER_MODE_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/mode-base-server")
endif()
if(CONFIG_SUPPORT_LEVEL_CONTROL_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/level-control")
endif()
if(CONFIG_SUPPORT_LOCALIZATION_CONFIGURATION_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/localization-configuration-server")
endif()
if(CONFIG_SUPPORT_LOW_POWER_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/low-power-server")
endif()
if(CONFIG_SUPPORT_MEDIA_INPUT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/media-input-server")
endif()
if(CONFIG_SUPPORT_MEDIA_PLAYBACK_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/media-playback-server")
endif()
if(CONFIG_SUPPORT_MICROWAVE_OVEN_CONTROL_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/microwave-oven-control-server")
endif()
if(CONFIG_SUPPORT_MESSAGES_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/messages-server")
endif()
if(CONFIG_SUPPORT_MODE_SELECT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/mode-select-server")
endif()
if(CONFIG_SUPPORT_NETWORK_COMMISSIONING_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/network-commissioning")
endif()
if(CONFIG_SUPPORT_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/concentration-measurement-server")
endif()
if(CONFIG_SUPPORT_SAMPLE_MEI_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/sample-mei-server")
endif()
if(CONFIG_SUPPORT_OCCUPANCY_SENSING_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/occupancy-sensor-server")
endif()
if(CONFIG_SUPPORT_ON_OFF_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/on-off-server")
endif()
if(CONFIG_SUPPORT_POWER_TOPOLOGY_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/power-topology-server")
endif()
if(CONFIG_SUPPORT_OPERATIONAL_CREDENTIALS_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/operational-credentials-server")
endif()
if(CONFIG_SUPPORT_OPERATIONAL_STATE_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/operational-state-server")
endif()
if(CONFIG_SUPPORT_OPERATIONAL_STATE_OVEN_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/operational-state-server")
endif()
if(CONFIG_SUPPORT_OPERATIONAL_STATE_RVC_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/operational-state-server")
endif()
if(CONFIG_SUPPORT_OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/ota-provider")
endif()
if(CONFIG_SUPPORT_OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/ota-requestor")
endif()
if(CONFIG_SUPPORT_OVEN_MODE_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/mode-base-server")
endif()
if(CONFIG_SUPPORT_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/concentration-measurement-server")
endif()
if(CONFIG_SUPPORT_PM10_CONCENTRATION_MEASUREMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/concentration-measurement-server")
endif()
if(CONFIG_SUPPORT_PM1_CONCENTRATION_MEASUREMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/concentration-measurement-server")
endif()
if(CONFIG_SUPPORT_PM2_5_CONCENTRATION_MEASUREMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/concentration-measurement-server")
endif()
if(CONFIG_SUPPORT_POWER_SOURCE_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/power-source-server")
endif()
if(CONFIG_SUPPORT_POWER_SOURCE_CONFIGURATION_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/power-source-configuration-server")
endif()
if(CONFIG_SUPPORT_PUMP_CONFIGURATION_AND_CONTROL_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/pump-configuration-and-control-server")
endif()
if(CONFIG_SUPPORT_RADON_CONCENTRATION_MEASUREMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/concentration-measurement-server")
endif()
if(CONFIG_SUPPORT_REFRIGERATOR_ALARM_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/refrigerator-alarm-server")
endif()
if(CONFIG_SUPPORT_REFRIGERATOR_AND_TEMPERATURE_CONTROLLED_CABINET_MODE_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/mode-base-server")
endif()
if(CONFIG_SUPPORT_RVC_CLEAN_MODE_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/mode-base-server")
endif()
if(CONFIG_SUPPORT_RVC_RUN_MODE_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/mode-base-server")
endif()
if(CONFIG_SUPPORT_SCENES_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/scenes-server")
endif()
if(CONFIG_SUPPORT_SERVICE_AREA_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/service-area-server")
endif()
if(CONFIG_SUPPORT_SMOKE_CO_ALARM_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/smoke-co-alarm-server")
endif()
if(CONFIG_SUPPORT_SOFTWARE_DIAGNOSTICS_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/software-diagnostics-server")
endif()
if(CONFIG_SUPPORT_SWITCH_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/switch-server")
endif()
if(CONFIG_SUPPORT_TARGET_NAVIGATOR_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/target-navigator-server")
endif()
if(CONFIG_SUPPORT_TEMPERATURE_CONTROL_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/temperature-control-server")
endif()
if(CONFIG_SUPPORT_THERMOSTAT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/thermostat-server")
endif()
if(CONFIG_SUPPORT_THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/thermostat-user-interface-configuration-server")
endif()
if(CONFIG_SUPPORT_THREAD_BORDER_ROUTER_MANAGEMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/thread-border-router-management-server")
endif()
if(CONFIG_SUPPORT_THREAD_NETWORK_DIAGNOSTICS_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/thread-network-diagnostics-server")
endif()
if(CONFIG_SUPPORT_THREAD_NETWORK_DIRECTORY_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/thread-network-directory-server")
endif()
if(CONFIG_SUPPORT_TIME_FORMAT_LOCALIZATION_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/time-format-localization-server")
endif()
if(CONFIG_SUPPORT_TIME_SYNCHRONIZATION_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/time-synchronization-server")
endif()
if(CONFIG_SUPPORT_TIMER_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/timer-server")
endif()
if(CONFIG_SUPPORT_TVOC_CONCENTRATION_MEASUREMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/concentration-measurement-server")
endif()
if(CONFIG_SUPPORT_UNIT_TESTING_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/test-cluster-server")
endif()
if(CONFIG_SUPPORT_USER_LABEL_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/user-label-server")
endif()
if(CONFIG_SUPPORT_VALVE_CONFIGURATION_AND_CONTROL_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/valve-configuration-and-control-server")
endif()
if(CONFIG_SUPPORT_WAKE_ON_LAN_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/wake-on-lan-server")
endif()
if(CONFIG_SUPPORT_LAUNDRY_WASHER_CONTROLS_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/laundry-washer-controls-server")
endif()
if(CONFIG_SUPPORT_LAUNDRY_DRYER_CONTROLS_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/laundry-dryer-controls-server")
endif()
if(CONFIG_SUPPORT_WIFI_NETWORK_DIAGNOSTICS_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/wifi-network-diagnostics-server")
endif()
if(CONFIG_SUPPORT_WIFI_NETWORK_MANAGEMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/wifi-network-management-server")
endif()
if(CONFIG_SUPPORT_WINDOW_COVERING_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/window-covering-server")
endif()
if(CONFIG_SUPPORT_WATER_HEATER_MANAGEMENT_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/water-heater-management-server")
endif()
if(CONFIG_SUPPORT_WATER_HEATER_MODE_CLUSTER)
list(APPEND temp_list "${MATTER_SDK_PATH}/src/app/clusters/mode-base-server")
endif()
set(${source_dirs} ${temp_list} PARENT_SCOPE)
endfunction()
@@ -0,0 +1,96 @@
#!/usr/bin/env python3
# Copyright 2025 Espressif Systems (Shanghai) PTE LTD
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
Script to generate files under cluster_select directory, please run this script
after updating connectedhomeip submodule
"""
import argparse
import json
import os
import pathlib
import logging
import sys
if not os.getenv('ESP_MATTER_PATH'):
logging.error("ESP_MATTER_PATH environment variable is not set")
sys.exit(1)
BASE_PATH = os.getenv('ESP_MATTER_PATH')
def write_file_header(file):
file.writelines(
['# This file is generated by {}\n'.format(os.path.basename(__file__)),
'# Please don\'t edit this file\n'
'\n'])
def load_json(json_file):
with open(json_file, 'r', encoding='utf-8') as file:
data = json.load(file)
server_dirs = data.get("ServerDirectories", {})
return {key: value for key, value in server_dirs.items() if value}
def generate_cluster_select_kconfig(cluster_list, output_dir):
with open(os.path.join(output_dir, 'Kconfig.in'), 'w') as kconfig_file:
write_file_header(kconfig_file)
for cluster in cluster_list.keys():
kconfig_file.writelines(
[f'config SUPPORT_{cluster}\n',
f'\tbool "Support {cluster}"\n',
'\tdefault y\n'
'\n'])
def generate_cluster_select_cmake(cluster_list, output_dir):
with open(os.path.join(output_dir, 'cluster_dir.cmake'), 'w') as cmake_file:
write_file_header(cmake_file)
cmake_file.write('function(get_supported_cluster_dirs source_dirs)\n')
cmake_file.write('\tset(temp_list )\n')
for cluster, dirs in cluster_list.items():
cmake_file.write(f'\tif(CONFIG_SUPPORT_{cluster})\n')
for dir in dirs:
cmake_file.write(f'\t\tlist(APPEND temp_list "${{MATTER_SDK_PATH}}/src/app/clusters/{dir}")\n')
cmake_file.write('\tendif()\n')
cmake_file.write('\tset(${source_dirs} ${temp_list} PARENT_SCOPE)\n')
cmake_file.write('endfunction()')
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--cluster-implementation-data',
help='Path to .json file which lists the directories cluster implementations live in',
required=False,
type=pathlib.Path,
default=os.path.join(
BASE_PATH, 'connectedhomeip/connectedhomeip/src/app/zap_cluster_list.json'))
parser.add_argument('-o', '--output-dir',
default=os.path.join(
BASE_PATH, 'components/esp_matter/utils/cluster_select'),
help='The output directory')
args = parser.parse_args()
cluster_list = load_json(args.cluster_implementation_data)
generate_cluster_select_kconfig(cluster_list, args.output_dir)
generate_cluster_select_cmake(cluster_list, args.output_dir)
if __name__ == "__main__":
main()
+105 -1
View File
@@ -155,7 +155,6 @@ Below are the configuration options that can be set to achieve these optimizatio
On Bootup, 83220, 472
Post Commissioning, 143804, -152
6.2.7 Configuring logging event buffer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -176,6 +175,111 @@ potentially missing critical events.
Used D/IRAM,158610,3072
Used Flash,1275860,0
6.2.8 Excluding Unused Matter Clusters
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If the cluster implementation source files use a class derived from another class with virtual functions and instantiate
a global object of this class, the linker may keep all the related symbols that may be used for this class in the vtable.
To eliminate these symbols, you can deselect the unused Matter clusters under ``→ Component config````ESP Matter``
``Select Supported Matter Clusters``. Excluding unused clusters will help reduce flash and memory usage.
::
CONFIG_SUPPORT_ACCOUNT_LOGIN_CLUSTER=n
CONFIG_SUPPORT_ACTIVATED_CARBON_FILTER_MONITORING_CLUSTER=n
CONFIG_SUPPORT_AIR_QUALITY_CLUSTER=n
CONFIG_SUPPORT_APPLICATION_BASIC_CLUSTER=n
CONFIG_SUPPORT_APPLICATION_LAUNCHER_CLUSTER=n
CONFIG_SUPPORT_AUDIO_OUTPUT_CLUSTER=n
CONFIG_SUPPORT_BOOLEAN_STATE_CONFIGURATION_CLUSTER=n
CONFIG_SUPPORT_BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER=n
CONFIG_SUPPORT_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_CHANNEL_CLUSTER=n
CONFIG_SUPPORT_CHIME_CLUSTER=n
CONFIG_SUPPORT_COMMISSIONER_CONTROL_CLUSTER=n
CONFIG_SUPPORT_CONTENT_LAUNCHER_CLUSTER=n
CONFIG_SUPPORT_CONTENT_CONTROL_CLUSTER=n
CONFIG_SUPPORT_CONTENT_APP_OBSERVER_CLUSTER=n
CONFIG_SUPPORT_DEVICE_ENERGY_MANAGEMENT_CLUSTER=n
CONFIG_SUPPORT_DEVICE_ENERGY_MANAGEMENT_MODE_CLUSTER=n
CONFIG_SUPPORT_DIAGNOSTIC_LOGS_CLUSTER=n
CONFIG_SUPPORT_DISHWASHER_ALARM_CLUSTER=n
CONFIG_SUPPORT_DISHWASHER_MODE_CLUSTER=n
CONFIG_SUPPORT_MICROWAVE_OVEN_MODE_CLUSTER=n
CONFIG_SUPPORT_DOOR_LOCK_CLUSTER=n
CONFIG_SUPPORT_ECOSYSTEM_INFORMATION_CLUSTER=n
CONFIG_SUPPORT_ELECTRICAL_ENERGY_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_ELECTRICAL_POWER_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_ENERGY_EVSE_CLUSTER=n
CONFIG_SUPPORT_ENERGY_EVSE_MODE_CLUSTER=n
CONFIG_SUPPORT_ENERGY_PREFERENCE_CLUSTER=n
CONFIG_SUPPORT_FAN_CONTROL_CLUSTER=n
CONFIG_SUPPORT_FAULT_INJECTION_CLUSTER=n
CONFIG_SUPPORT_FIXED_LABEL_CLUSTER=n
CONFIG_SUPPORT_FORMALDEHYDE_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_HEPA_FILTER_MONITORING_CLUSTER=n
CONFIG_SUPPORT_ICD_MANAGEMENT_CLUSTER=n
CONFIG_SUPPORT_KEYPAD_INPUT_CLUSTER=n
CONFIG_SUPPORT_LAUNDRY_WASHER_MODE_CLUSTER=n
CONFIG_SUPPORT_LOCALIZATION_CONFIGURATION_CLUSTER=n
CONFIG_SUPPORT_LOW_POWER_CLUSTER=n
CONFIG_SUPPORT_MEDIA_INPUT_CLUSTER=n
CONFIG_SUPPORT_MEDIA_PLAYBACK_CLUSTER=n
CONFIG_SUPPORT_MICROWAVE_OVEN_CONTROL_CLUSTER=n
CONFIG_SUPPORT_MESSAGES_CLUSTER=n
CONFIG_SUPPORT_MODE_SELECT_CLUSTER=n
CONFIG_SUPPORT_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_SAMPLE_MEI_CLUSTER=n
CONFIG_SUPPORT_OCCUPANCY_SENSING_CLUSTER=n
CONFIG_SUPPORT_POWER_TOPOLOGY_CLUSTER=n
CONFIG_SUPPORT_OPERATIONAL_STATE_CLUSTER=n
CONFIG_SUPPORT_OPERATIONAL_STATE_OVEN_CLUSTER=n
CONFIG_SUPPORT_OPERATIONAL_STATE_RVC_CLUSTER=n
CONFIG_SUPPORT_OVEN_MODE_CLUSTER=n
CONFIG_SUPPORT_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_PM10_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_PM1_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_PM2_5_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_POWER_SOURCE_CLUSTER=n
CONFIG_SUPPORT_POWER_SOURCE_CONFIGURATION_CLUSTER=n
CONFIG_SUPPORT_PUMP_CONFIGURATION_AND_CONTROL_CLUSTER=n
CONFIG_SUPPORT_RADON_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_REFRIGERATOR_ALARM_CLUSTER=n
CONFIG_SUPPORT_REFRIGERATOR_AND_TEMPERATURE_CONTROLLED_CABINET_MODE_CLUSTER=n
CONFIG_SUPPORT_RVC_CLEAN_MODE_CLUSTER=n
CONFIG_SUPPORT_RVC_RUN_MODE_CLUSTER=n
CONFIG_SUPPORT_SERVICE_AREA_CLUSTER=n
CONFIG_SUPPORT_SMOKE_CO_ALARM_CLUSTER=n
CONFIG_SUPPORT_SOFTWARE_DIAGNOSTICS_CLUSTER=n
CONFIG_SUPPORT_SWITCH_CLUSTER=n
CONFIG_SUPPORT_TARGET_NAVIGATOR_CLUSTER=n
CONFIG_SUPPORT_TEMPERATURE_CONTROL_CLUSTER=n
CONFIG_SUPPORT_THERMOSTAT_CLUSTER=n
CONFIG_SUPPORT_THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER=n
CONFIG_SUPPORT_THREAD_BORDER_ROUTER_MANAGEMENT_CLUSTER=n
CONFIG_SUPPORT_THREAD_NETWORK_DIRECTORY_CLUSTER=n
CONFIG_SUPPORT_TIME_FORMAT_LOCALIZATION_CLUSTER=n
CONFIG_SUPPORT_TIME_SYNCHRONIZATION_CLUSTER=n
CONFIG_SUPPORT_TIMER_CLUSTER=n
CONFIG_SUPPORT_TVOC_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_UNIT_TESTING_CLUSTER=n
CONFIG_SUPPORT_USER_LABEL_CLUSTER=n
CONFIG_SUPPORT_VALVE_CONFIGURATION_AND_CONTROL_CLUSTER=n
CONFIG_SUPPORT_WAKE_ON_LAN_CLUSTER=n
CONFIG_SUPPORT_LAUNDRY_WASHER_CONTROLS_CLUSTER=n
CONFIG_SUPPORT_LAUNDRY_DRYER_CONTROLS_CLUSTER=n
CONFIG_SUPPORT_WIFI_NETWORK_MANAGEMENT_CLUSTER=n
CONFIG_SUPPORT_WINDOW_COVERING_CLUSTER=n
CONFIG_SUPPORT_WATER_HEATER_MANAGEMENT_CLUSTER=n
CONFIG_SUPPORT_WATER_HEATER_MODE_CLUSTER=n
.. csv-table:: Static memory stats
:header: "", "Size", "Decreased by"
Used D/IRAM,167706,1336
Used Flash,1348790,21996
6.3 References for futher optimizations
---------------------------------------
+90
View File
@@ -40,3 +40,93 @@ CONFIG_MBEDTLS_HKDF_C=y
# Increase LwIP IPv6 address number to 6 (MAX_FABRIC + 1)
# unique local addresses for fabrics(MAX_FABRIC), a link local address(1)
CONFIG_LWIP_IPV6_NUM_ADDRESSES=6
# Exclude unused clusters to optimize flash and memory usage
CONFIG_SUPPORT_ACCOUNT_LOGIN_CLUSTER=n
CONFIG_SUPPORT_ACTIVATED_CARBON_FILTER_MONITORING_CLUSTER=n
CONFIG_SUPPORT_AIR_QUALITY_CLUSTER=n
CONFIG_SUPPORT_APPLICATION_BASIC_CLUSTER=n
CONFIG_SUPPORT_APPLICATION_LAUNCHER_CLUSTER=n
CONFIG_SUPPORT_AUDIO_OUTPUT_CLUSTER=n
CONFIG_SUPPORT_BOOLEAN_STATE_CONFIGURATION_CLUSTER=n
CONFIG_SUPPORT_BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER=n
CONFIG_SUPPORT_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_CHANNEL_CLUSTER=n
CONFIG_SUPPORT_CHIME_CLUSTER=n
CONFIG_SUPPORT_COMMISSIONER_CONTROL_CLUSTER=n
CONFIG_SUPPORT_CONTENT_LAUNCHER_CLUSTER=n
CONFIG_SUPPORT_CONTENT_CONTROL_CLUSTER=n
CONFIG_SUPPORT_CONTENT_APP_OBSERVER_CLUSTER=n
CONFIG_SUPPORT_DEVICE_ENERGY_MANAGEMENT_CLUSTER=n
CONFIG_SUPPORT_DEVICE_ENERGY_MANAGEMENT_MODE_CLUSTER=n
CONFIG_SUPPORT_DIAGNOSTIC_LOGS_CLUSTER=n
CONFIG_SUPPORT_DISHWASHER_ALARM_CLUSTER=n
CONFIG_SUPPORT_DISHWASHER_MODE_CLUSTER=n
CONFIG_SUPPORT_MICROWAVE_OVEN_MODE_CLUSTER=n
CONFIG_SUPPORT_DOOR_LOCK_CLUSTER=n
CONFIG_SUPPORT_ECOSYSTEM_INFORMATION_CLUSTER=n
CONFIG_SUPPORT_ELECTRICAL_ENERGY_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_ELECTRICAL_POWER_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_ENERGY_EVSE_CLUSTER=n
CONFIG_SUPPORT_ENERGY_EVSE_MODE_CLUSTER=n
CONFIG_SUPPORT_ENERGY_PREFERENCE_CLUSTER=n
CONFIG_SUPPORT_FAN_CONTROL_CLUSTER=n
CONFIG_SUPPORT_FAULT_INJECTION_CLUSTER=n
CONFIG_SUPPORT_FIXED_LABEL_CLUSTER=n
CONFIG_SUPPORT_FORMALDEHYDE_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_HEPA_FILTER_MONITORING_CLUSTER=n
CONFIG_SUPPORT_ICD_MANAGEMENT_CLUSTER=n
CONFIG_SUPPORT_KEYPAD_INPUT_CLUSTER=n
CONFIG_SUPPORT_LAUNDRY_WASHER_MODE_CLUSTER=n
CONFIG_SUPPORT_LOCALIZATION_CONFIGURATION_CLUSTER=n
CONFIG_SUPPORT_LOW_POWER_CLUSTER=n
CONFIG_SUPPORT_MEDIA_INPUT_CLUSTER=n
CONFIG_SUPPORT_MEDIA_PLAYBACK_CLUSTER=n
CONFIG_SUPPORT_MICROWAVE_OVEN_CONTROL_CLUSTER=n
CONFIG_SUPPORT_MESSAGES_CLUSTER=n
CONFIG_SUPPORT_MODE_SELECT_CLUSTER=n
CONFIG_SUPPORT_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_SAMPLE_MEI_CLUSTER=n
CONFIG_SUPPORT_OCCUPANCY_SENSING_CLUSTER=n
CONFIG_SUPPORT_POWER_TOPOLOGY_CLUSTER=n
CONFIG_SUPPORT_OPERATIONAL_STATE_CLUSTER=n
CONFIG_SUPPORT_OPERATIONAL_STATE_OVEN_CLUSTER=n
CONFIG_SUPPORT_OPERATIONAL_STATE_RVC_CLUSTER=n
CONFIG_SUPPORT_OVEN_MODE_CLUSTER=n
CONFIG_SUPPORT_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_PM10_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_PM1_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_PM2_5_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_POWER_SOURCE_CLUSTER=n
CONFIG_SUPPORT_POWER_SOURCE_CONFIGURATION_CLUSTER=n
CONFIG_SUPPORT_PUMP_CONFIGURATION_AND_CONTROL_CLUSTER=n
CONFIG_SUPPORT_RADON_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_REFRIGERATOR_ALARM_CLUSTER=n
CONFIG_SUPPORT_REFRIGERATOR_AND_TEMPERATURE_CONTROLLED_CABINET_MODE_CLUSTER=n
CONFIG_SUPPORT_RVC_CLEAN_MODE_CLUSTER=n
CONFIG_SUPPORT_RVC_RUN_MODE_CLUSTER=n
CONFIG_SUPPORT_SERVICE_AREA_CLUSTER=n
CONFIG_SUPPORT_SMOKE_CO_ALARM_CLUSTER=n
CONFIG_SUPPORT_SOFTWARE_DIAGNOSTICS_CLUSTER=n
CONFIG_SUPPORT_SWITCH_CLUSTER=n
CONFIG_SUPPORT_TARGET_NAVIGATOR_CLUSTER=n
CONFIG_SUPPORT_TEMPERATURE_CONTROL_CLUSTER=n
CONFIG_SUPPORT_THERMOSTAT_CLUSTER=n
CONFIG_SUPPORT_THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER=n
CONFIG_SUPPORT_THREAD_BORDER_ROUTER_MANAGEMENT_CLUSTER=n
CONFIG_SUPPORT_THREAD_NETWORK_DIRECTORY_CLUSTER=n
CONFIG_SUPPORT_TIME_FORMAT_LOCALIZATION_CLUSTER=n
CONFIG_SUPPORT_TIME_SYNCHRONIZATION_CLUSTER=n
CONFIG_SUPPORT_TIMER_CLUSTER=n
CONFIG_SUPPORT_TVOC_CONCENTRATION_MEASUREMENT_CLUSTER=n
CONFIG_SUPPORT_UNIT_TESTING_CLUSTER=n
CONFIG_SUPPORT_USER_LABEL_CLUSTER=n
CONFIG_SUPPORT_VALVE_CONFIGURATION_AND_CONTROL_CLUSTER=n
CONFIG_SUPPORT_WAKE_ON_LAN_CLUSTER=n
CONFIG_SUPPORT_LAUNDRY_WASHER_CONTROLS_CLUSTER=n
CONFIG_SUPPORT_LAUNDRY_DRYER_CONTROLS_CLUSTER=n
CONFIG_SUPPORT_WIFI_NETWORK_MANAGEMENT_CLUSTER=n
CONFIG_SUPPORT_WINDOW_COVERING_CLUSTER=n
CONFIG_SUPPORT_WATER_HEATER_MANAGEMENT_CLUSTER=n
CONFIG_SUPPORT_WATER_HEATER_MODE_CLUSTER=n