Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[app] Allow to define external clusters in chip_data_model.* #27886

Merged
merged 1 commit into from
Jul 12, 2023

Conversation

Damian-Nordic
Copy link
Contributor

zap_cluster_list.py raises an error when the ZAP file enables a cluster that is not implemented in the SDK. This forces users to patch the SDK in order to use custom, vendor-specific clusters.

Add EXTERNAL_CLUSTERS argument to chip_configure_data_model() CMake function that takes a list of external cluster names for which the default implementation should not included nor required.

Usage example:

chip_configure_data_model(app
    INCLUDE_SERVER
    ZAP_FILE lock-app.zap
    EXTERNAL_CLUSTERS BASIC_INFORMATION_CLUSTER MY_CUSTOM_CLUSTER
)

Replace the existing zap_clusters_with_custom_implementation argument of chip_data_model() GN template with new one: external_clusters. The previous argument took a list of cluster implementation directories to be skipped, so it was only useful for bypassing the default implementations, but could not be used for custom, vendor-specific clusters. The new argument addresses both scenarios.

Usage example:

chip_data_model("lock-common") {
  zap_file = "lock-app.zap"
  ...
  external_clusters = [
    "BASIC_INFORMATION_CLUSTER",
    "MY_CUSTOM_CLUSTER",
  ]
}

zap_cluster_list.py raises an error when the ZAP file
enables a cluster that is not implemented in the SDK. This
forces users to patch the SDK in order to use custom,
vendor-specific clusters.

Add EXTERNAL_CLUSTERS argument to chip_configure_data_model()
CMake function that takes a list of external cluster names
for which the default implementation should not included nor
required.

Usage example:
chip_configure_data_model(app
    INCLUDE_SERVER
    ZAP_FILE lock-app.zap
    EXTERNAL_CLUSTERS BASIC_INFORMATION_CLUSTER MY_CUSTOM_CLUSTER
)

Replace the existing zap_clusters_with_custom_implementation
argument of chip_data_model() GN template with new one:
external_clusters. The previous argument took a list of
cluster implementation directories to be skipped, so it was
only useful for bypassing the default implementations, but
could not be used for custom, vendor-specific clusters.
The new argument addresses both scenarios.

Usage example:
chip_data_model("lock-common") {
  zap_file = "lock-app.zap"
  ...
  external_clusters = [
    "BASIC_INFORMATION_CLUSTER",
    "MY_CUSTOM_CLUSTER",
  ]
}
@Damian-Nordic
Copy link
Contributor Author

@plan44 This PR modifies the work you've done in #22042. Let me know if you're OK with the changes :) Basically, I wanted to also support vendor-specific clusters and have similar interface for CMake-based platforms.

@github-actions
Copy link

github-actions bot commented Jul 11, 2023

PR #27886: Size comparison from aaa2542 to f5dd895

Increases (13 builds for bl602, bl702, bl702l, psoc6, qpg, telink)
platform target config section aaa2542 f5dd895 change % change
bl602 lighting-app bl602 .text 1051798 1051800 2 0.0
bl702 lighting-app bl702 (read/write) 1178719 1178723 4 0.0
.debug_info 41919549 41919551 2 0.0
.text 945846 945850 4 0.0
bl702l lighting-app bl702l (read/write) 1159100 1159104 4 0.0
.debug_info 41912899 41912901 2 0.0
.text 934406 934410 4 0.0
psoc6 all-clusters cy8ckit_062s2_43012 .debug_info 29732536 29732537 1 0.0
all-clusters-minimal cy8ckit_062s2_43012 .debug_info 28449014 28449015 1 0.0
qpg lighting-app qpg6105+debug (read/write) 1172496 1172504 8 0.0
.text 619336 619344 8 0.0
telink all-clusters-minimal-app tlsr9518adk80d text 668418 668422 4 0.0
bridge-app tlsr9518adk80d (read/write) 930852 930860 8 0.0
text 643468 643470 2 0.0
contact-sensor-app tlsr9518adk80d (read/write) 862596 862604 8 0.0
text 586676 586678 2 0.0
lighting-app tlsr9518adk80d text 682380 682384 4 0.0
temperature-measurement-app tlsr9518adk80d text 578406 578410 4 0.0
thermostat tlsr9518adk80d text 617822 617826 4 0.0
window-covering tlsr9518adk80d text 612748 612750 2 0.0
Decreases (12 builds for bl602, cc32xx, cyw30739, esp32, psoc6, telink)
platform target config section aaa2542 f5dd895 change % change
bl602 lighting-app bl602+rpc (read/write) 1415166 1415158 -8 -0.0
.text 1083682 1083680 -2 -0.0
cc32xx lock CC3235SF_LAUNCHXL .debug_info 20030061 20030060 -1 -0.0
cyw30739 light cyw930739m2evb_01 (read/write) 545519 545511 -8 -0.0
.app_xip_area 437977 437969 -8 -0.0
ota-requestor cyw930739m2evb_01 (read/write) 568615 568607 -8 -0.0
.app_xip_area 462161 462153 -8 -0.0
switch cyw930739m2evb_01 (read/write) 541759 541751 -8 -0.0
.app_xip_area 432353 432345 -8 -0.0
esp32 all-clusters-app c3devkit (read only) 1089226 1089224 -2 -0.0
.flash.text 1089226 1089224 -2 -0.0
m5stack (read/write) 497178 497174 -4 -0.0
.flash.rodata 246300 246296 -4 -0.0
psoc6 lock cy8ckit_062s2_43012 .debug_info 22916086 22916085 -1 -0.0
telink all-clusters-app tlsr9518adk80d (read/write) 1051092 1051084 -8 -0.0
text 721874 721872 -2 -0.0
lighting-app-factory-data tlsr9518adk80d text 689900 689896 -4 -0.0
lock-app tlsr9518adk80d text 615342 615340 -2 -0.0
ota-requestor-app tlsr9518adk80d (read/write) 885172 885164 -8 -0.0
text 608490 608488 -2 -0.0
Full report (58 builds for bl602, bl702, bl702l, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
platform target config section aaa2542 f5dd895 change % change
bl602 lighting-app bl602 (read/write) 1367730 1367730 0 0.0
.bss 83942 83942 0 0.0
.data 9624 9624 0 0.0
.text 1051798 1051800 2 0.0
bl602+rpc (read/write) 1415166 1415158 -8 -0.0
.bss 91990 91990 0 0.0
.data 10024 10024 0 0.0
.text 1083682 1083680 -2 -0.0
bl702 lighting-app bl702 (read/write) 1178719 1178723 4 0.0
.bleromro 6342 6342 0 0.0
.bleromrw 124 124 0 0.0
.boot2 328 328 0 0.0
.bss 77773 77773 0 0.0
.bss_psram 24656 24656 0 0.0
.comment 48 48 0 0.0
.data 3592 3592 0 0.0
.debug_abbrev 1552038 1552038 0 0.0
.debug_aranges 151280 151280 0 0.0
.debug_frame 556432 556432 0 0.0
.debug_info 41919549 41919551 2 0.0
.debug_line 5612196 5612196 0 0.0
.debug_loc 3821638 3821638 0 0.0
.debug_ranges 397320 397320 0 0.0
.debug_str 4381823 4381823 0 0.0
.hbn 544 544 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 140 140 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 105704 105704 0 0.0
.rsvd 4 4 0 0.0
.sha_ocram 72 72 0 0.0
.shstrtab 304 304 0 0.0
.stack 2048 2048 0 0.0
.strtab 582236 582236 0 0.0
.symtab 174176 174176 0 0.0
.tcm_data 28 28 0 0.0
.tcmcode 3394 3394 0 0.0
.text 0 0 0 0.0
945846 945850 4 0.0
bl702+rpc (read/write) 1277355 1277355 0 0.0
.bleromro 6342 6342 0 0.0
.bleromrw 124 124 0 0.0
.boot2 328 328 0 0.0
.bss 85821 85821 0 0.0
.bss_psram 25072 25072 0 0.0
.comment 48 48 0 0.0
.data 4144 4144 0 0.0
.debug_abbrev 1717665 1717665 0 0.0
.debug_aranges 159792 159792 0 0.0
.debug_frame 585284 585284 0 0.0
.debug_info 47110033 47110033 0 0.0
.debug_line 6039488 6039488 0 0.0
.debug_loc 4027468 4027468 0 0.0
.debug_ranges 423064 423064 0 0.0
.debug_str 4810463 4810463 0 0.0
.hbn 544 544 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 156 156 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 120356 120356 0 0.0
.rsvd 4 4 0 0.0
.sha_ocram 72 72 0 0.0
.shstrtab 304 304 0 0.0
.stack 2048 2048 0 0.0
.strtab 645177 645177 0 0.0
.symtab 193088 193088 0 0.0
.tcm_data 28 28 0 0.0
.tcmcode 3394 3394 0 0.0
.text 0 0 0 0.0
1020238 1020238 0 0.0
bl702l lighting-app bl702l (read only) 278 278 0 0.0
(read/write) 1159100 1159104 4 0.0
.boot2 292 292 0 0.0
.bss 40776 40776 0 0.0
.bss_psram 69168 69168 0 0.0
.comment 48 48 0 0.0
.data 4560 4560 0 0.0
.debug_abbrev 1552941 1552941 0 0.0
.debug_aranges 145424 145424 0 0.0
.debug_frame 535064 535064 0 0.0
.debug_info 41912899 41912901 2 0.0
.debug_line 5518094 5518094 0 0.0
.debug_loc 3754237 3754237 0 0.0
.debug_ranges 402216 402216 0 0.0
.debug_str 4392517 4392517 0 0.0
.hbn 3244 3244 0 0.0
.hbn_noinit 308 308 0 0.0
.init 408 408 0 0.0
.init_array 140 140 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 99652 99652 0 0.0
.romdata 3224 3224 0 0.0
.rsvd 4 4 0 0.0
.sha_ocram 72 72 0 0.0
.shstrtab 286 286 0 0.0
.stack 2048 2048 0 0.0
.strtab 582143 582143 0 0.0
.symtab 173504 173504 0 0.0
.tcm_data 692 692 0 0.0
.tcmcode 278 278 0 0.0
.text 0 0 0 0.0
934406 934410 4 0.0
cc32xx lock CC3235SF_LAUNCHXL (blank) 0 0 0 0.0
(read only) 608306 608306 0 0.0
(read/write) 204172 204172 0 0.0
.ARM.attributes 44 44 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 197584 197584 0 0.0
.comment 206 206 0 0.0
.data 1468 1468 0 0.0
.debug_abbrev 948503 948503 0 0.0
.debug_aranges 119832 119832 0 0.0
.debug_frame 409352 409352 0 0.0
.debug_info 20030061 20030060 -1 -0.0
.debug_line 2885742 2885742 0 0.0
.debug_line_str 513 513 0 0.0
.debug_loc 33340 33340 0 0.0
.debug_loclists 1740746 1740746 0 0.0
.debug_ranges 4984 4984 0 0.0
.debug_rnglists 108223 108223 0 0.0
.debug_str 3825107 3825107 0 0.0
.ramVecs 780 780 0 0.0
.resetVecs 64 64 0 0.0
.rodata 104914 104914 0 0.0
.shstrtab 265 265 0 0.0
.stack 2048 2048 0 0.0
.strtab 485459 485459 0 0.0
.symtab 288368 288368 0 0.0
.text 501268 501268 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 545519 545511 -8 -0.0
.app_xip_area 437977 437969 -8 -0.0
.bss 62512 62512 0 0.0
.data 712 712 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 530575 530575 0 0.0
.app_xip_area 418057 418057 0 0.0
.bss 67480 67480 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor cyw930739m2evb_01 (read/write) 568615 568607 -8 -0.0
.app_xip_area 462161 462153 -8 -0.0
.bss 61472 61472 0 0.0
.data 668 668 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
switch cyw930739m2evb_01 (read/write) 541759 541751 -8 -0.0
.app_xip_area 432353 432345 -8 -0.0
.bss 64344 64344 0 0.0
.data 744 744 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A+rs9116 (read/write) 1005052 1005052 0 0.0
.bss 182252 182252 0 0.0
.data 2700 2700 0 0.0
.text 820080 820080 0 0.0
BRD4187C (read/write) 1030112 1030112 0 0.0
.bss 161860 161860 0 0.0
.data 3308 3308 0 0.0
.text 864924 864924 0 0.0
lock-app BRD4161A+wf200 (read/write) 1080760 1080760 0 0.0
.bss 176252 176252 0 0.0
.data 2696 2696 0 0.0
.text 901792 901792 0 0.0
window-app BRD4187C (read/write) 1100456 1100456 0 0.0
.bss 144868 144868 0 0.0
.data 3204 3204 0 0.0
.text 952364 952364 0 0.0
esp32 all-clusters-app c3devkit (read only) 1089226 1089224 -2 -0.0
(read/write) 1586768 1586768 0 0.0
.dram0.bss 75944 75944 0 0.0
.dram0.data 13940 13940 0 0.0
.flash.rodata 217736 217736 0 0.0
.flash.text 1089226 1089224 -2 -0.0
.iram0.text 76740 76740 0 0.0
m5stack (read only) 1135835 1135835 0 0.0
(read/write) 497178 497174 -4 -0.0
.dram0.bss 81424 81424 0 0.0
.dram0.data 34304 34304 0 0.0
.flash.rodata 246300 246296 -4 -0.0
.flash.text 1130451 1130451 0 0.0
.iram0.text 126055 126055 0 0.0
k32w contact k32w0+release (read only) 586652 586652 0 0.0
(read/write) 90112 90112 0 0.0
.bss 66108 66108 0 0.0
.data 2168 2168 0 0.0
.text 586116 586116 0 0.0
light k32w0+release (read only) 585356 585356 0 0.0
(read/write) 89760 89760 0 0.0
.bss 65772 65772 0 0.0
.data 2156 2156 0 0.0
.text 584820 584820 0 0.0
lock k32w0+release (read only) 557932 557932 0 0.0
(read/write) 87560 87560 0 0.0
.bss 63636 63636 0 0.0
.data 2100 2100 0 0.0
.text 557396 557396 0 0.0
linux all-clusters-app debug (read only) 3345269 3345269 0 0.0
(read/write) 160936 160936 0 0.0
.bss 60320 60320 0 0.0
.data 2160 2160 0 0.0
.data.rel.ro 91944 91944 0 0.0
.dynamic 608 608 0 0.0
.got 4728 4728 0 0.0
.init 27 27 0 0.0
.init_array 1152 1152 0 0.0
.rodata 233448 233448 0 0.0
.text 2918981 2918981 0 0.0
all-clusters-minimal-app debug (read only) 3058621 3058621 0 0.0
(read/write) 146696 146696 0 0.0
.bss 58208 58208 0 0.0
.data 2128 2128 0 0.0
.data.rel.ro 79960 79960 0 0.0
.dynamic 608 608 0 0.0
.got 4664 4664 0 0.0
.init 27 27 0 0.0
.init_array 1088 1088 0 0.0
.rodata 224552 224552 0 0.0
.text 2647189 2647189 0 0.0
bridge-app debug (read only) 2527149 2527149 0 0.0
(read/write) 129992 129992 0 0.0
.bss 50328 50328 0 0.0
.data 3824 3824 0 0.0
.data.rel.ro 69864 69864 0 0.0
.dynamic 608 608 0 0.0
.got 4568 4568 0 0.0
.init 27 27 0 0.0
.init_array 776 776 0 0.0
.rodata 173064 173064 0 0.0
.text 2180949 2180949 0 0.0
chip-tool debug (read only) 18400473 18400473 0 0.0
(read/write) 1052912 1052912 0 0.0
.bss 93560 93560 0 0.0
.data 5154 5154 0 0.0
.data.rel.ro 946864 946864 0 0.0
.dynamic 624 624 0 0.0
.got 5888 5888 0 0.0
.init 27 27 0 0.0
.init_array 784 784 0 0.0
.rodata 810049 810049 0 0.0
.text 15615779 15615779 0 0.0
chip-tool-ipv6only arm64 (read only) 17698368 17698368 0 0.0
(read/write) 1120472 1120472 0 0.0
.bss 102952 102952 0 0.0
.data 4448 4448 0 0.0
.data.rel.ro 984080 984080 0 0.0
.dynamic 560 560 0 0.0
.got 23488 23488 0 0.0
.init 24 24 0 0.0
.init_array 240 240 0 0.0
.rodata 718592 718592 0 0.0
.text 14820548 14820548 0 0.0
lighting-app debug+rpc+ui (read only) 5211817 5211817 0 0.0
(read/write) 220728 220728 0 0.0
.bss 117264 117264 0 0.0
.data 4880 4880 0 0.0
.data.rel.ro 91048 91048 0 0.0
.dynamic 672 672 0 0.0
.got 5912 5912 0 0.0
.init 27 27 0 0.0
.init_array 928 928 0 0.0
.rodata 329556 329556 0 0.0
.text 4642483 4642483 0 0.0
lock-app debug (read only) 2619845 2619845 0 0.0
(read/write) 117376 117376 0 0.0
.bss 45392 45392 0 0.0
.data 1904 1904 0 0.0
.data.rel.ro 64024 64024 0 0.0
.dynamic 608 608 0 0.0
.got 4592 4592 0 0.0
.init 27 27 0 0.0
.init_array 808 808 0 0.0
.rodata 200552 200552 0 0.0
.text 2254325 2254325 0 0.0
ota-provider-app debug (read only) 2216189 2216189 0 0.0
(read/write) 103952 103952 0 0.0
.bss 44560 44560 0 0.0
.data 2112 2112 0 0.0
.data.rel.ro 52184 52184 0 0.0
.dynamic 608 608 0 0.0
.got 3800 3800 0 0.0
.init 27 27 0 0.0
.init_array 664 664 0 0.0
.rodata 154184 154184 0 0.0
.text 1919669 1919669 0 0.0
ota-requestor-app debug (read only) 2385141 2385141 0 0.0
(read/write) 111744 111744 0 0.0
.bss 47024 47024 0 0.0
.data 2512 2512 0 0.0
.data.rel.ro 57040 57040 0 0.0
.dynamic 608 608 0 0.0
.got 3784 3784 0 0.0
.init 27 27 0 0.0
.init_array 744 744 0 0.0
.rodata 158248 158248 0 0.0
.text 2075685 2075685 0 0.0
shell debug (read only) 2881393 2881393 0 0.0
(read/write) 149352 149352 0 0.0
.bss 59272 59272 0 0.0
.data 1232 1232 0 0.0
.data.rel.ro 83000 83000 0 0.0
.dynamic 608 608 0 0.0
.got 4128 4128 0 0.0
.init 27 27 0 0.0
.init_array 1080 1080 0 0.0
.rodata 201586 201586 0 0.0
.text 2510994 2510994 0 0.0
thermostat-no-ble arm64 (read only) 2611676 2611676 0 0.0
(read/write) 143160 143160 0 0.0
.bss 52392 52392 0 0.0
.data 1736 1736 0 0.0
.data.rel.ro 79392 79392 0 0.0
.dynamic 560 560 0 0.0
.got 5512 5512 0 0.0
.init 24 24 0 0.0
.init_array 416 416 0 0.0
.rodata 129952 129952 0 0.0
.text 2215716 2215716 0 0.0
tv-app debug (read only) 3322161 3322161 0 0.0
(read/write) 261856 261856 0 0.0
.bss 171264 171264 0 0.0
.data 4080 4080 0 0.0
.data.rel.ro 79776 79776 0 0.0
.dynamic 608 608 0 0.0
.got 5000 5000 0 0.0
.init 27 27 0 0.0
.init_array 1080 1080 0 0.0
.rodata 222872 222872 0 0.0
.text 2902290 2902290 0 0.0
tv-casting-app debug (read only) 9322073 9322073 0 0.0
(read/write) 221776 221776 0 0.0
.bss 52128 52128 0 0.0
.data 1744 1744 0 0.0
.data.rel.ro 161296 161296 0 0.0
.dynamic 608 608 0 0.0
.got 4968 4968 0 0.0
.init 27 27 0 0.0
.init_array 1000 1000 0 0.0
.rodata 331308 331308 0 0.0
.text 8555762 8555762 0 0.0
mbed lock-app-release cy8cproto_062_4343w (read only) 6224 6224 0 0.0
(read/write) 2515936 2515936 0 0.0
.bss 216312 216312 0 0.0
.data 5152 5152 0 0.0
.text 1478620 1478620 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1224940 1224940 0 0.0
bss 155370 155370 0 0.0
rodata 139440 139440 0 0.0
text 851056 851056 0 0.0
nrf7002dk_nrf5340_cpuapp (read only) 4 4 0 0.0
(read/write) 1326084 1326084 0 0.0
bss 138696 138696 0 0.0
rodata 134056 134056 0 0.0
text 762616 762616 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1151920 1151920 0 0.0
bss 153489 153489 0 0.0
rodata 111732 111732 0 0.0
text 807600 807600 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 841360 841360 0 0.0
(read/write) 1746620 1746620 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 189412 189412 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2568 2568 0 0.0
.debug_abbrev 1314554 1314554 0 0.0
.debug_aranges 151336 151336 0 0.0
.debug_frame 507020 507020 0 0.0
.debug_info 29732536 29732537 1 0.0
.debug_line 4093591 4093591 0 0.0
.debug_line_str 957 957 0 0.0
.debug_loclists 2346236 2346236 0 0.0
.debug_rnglists 146741 146741 0 0.0
.debug_str 4435020 4435020 0 0.0
.heap 841360 841360 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 775993 775993 0 0.0
.symtab 488208 488208 0 0.0
.text 1546252 1546252 0 0.0
.zero.table 8 8 0 0.0
text 0 0 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 843208 843208 0 0.0
(read/write) 1664972 1664972 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 187572 187572 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2560 2560 0 0.0
.debug_abbrev 1282284 1282284 0 0.0
.debug_aranges 148568 148568 0 0.0
.debug_frame 502816 502816 0 0.0
.debug_info 28449014 28449015 1 0.0
.debug_line 4046714 4046714 0 0.0
.debug_line_str 981 981 0 0.0
.debug_loclists 2304479 2304479 0 0.0
.debug_rnglists 143491 143491 0 0.0
.debug_str 4377191 4377191 0 0.0
.heap 843208 843208 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 703634 703634 0 0.0
.symtab 461856 461856 0 0.0
.text 1466452 1466452 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
light cy8ckit_062s2_43012 (read only) 849416 849416 0 0.0
(read/write) 1597644 1597644 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 181532 181532 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2392 2392 0 0.0
.debug_abbrev 1119162 1119162 0 0.0
.debug_aranges 138928 138928 0 0.0
.debug_frame 466784 466784 0 0.0
.debug_info 23218214 23218214 0 0.0
.debug_line 3618551 3618551 0 0.0
.debug_line_str 942 942 0 0.0
.debug_loclists 2145580 2145580 0 0.0
.debug_rnglists 133525 133525 0 0.0
.debug_str 4190942 4190942 0 0.0
.heap 849416 849416 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 627131 627131 0 0.0
.symtab 427392 427392 0 0.0
.text 1405332 1405332 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
lock cy8ckit_062s2_43012 (read only) 821960 821960 0 0.0
(read/write) 1628540 1628540 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 208988 208988 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2392 2392 0 0.0
.debug_abbrev 1101368 1101368 0 0.0
.debug_aranges 137024 137024 0 0.0
.debug_frame 460044 460044 0 0.0
.debug_info 22916086 22916085 -1 -0.0
.debug_line 3553836 3553836 0 0.0
.debug_line_str 933 933 0 0.0
.debug_loclists 2114160 2114160 0 0.0
.debug_rnglists 131049 131049 0 0.0
.debug_str 4146126 4146126 0 0.0
.heap 821960 821960 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 597360 597360 0 0.0
.symtab 417680 417680 0 0.0
.text 1408772 1408772 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
qpg lighting-app qpg6105+debug (read/write) 1172496 1172504 8 0.0
.bss 99960 99960 0 0.0
.data 788 788 0 0.0
.text 619336 619344 8 0.0
lock-app qpg6105+debug (read/write) 1130616 1130616 0 0.0
.bss 94816 94816 0 0.0
.data 792 792 0 0.0
.text 577460 577460 0 0.0
telink all-clusters-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1051092 1051084 -8 -0.0
bss 98292 98292 0 0.0
text 721874 721872 -2 -0.0
all-clusters-minimal-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 965464 965464 0 0.0
bss 96288 96288 0 0.0
text 668418 668422 4 0.0
bridge-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 930852 930860 8 0.0
bss 100308 100308 0 0.0
text 643468 643470 2 0.0
contact-sensor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 862596 862604 8 0.0
bss 89972 89972 0 0.0
text 586676 586678 2 0.0
light-switch-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 891208 891208 0 0.0
bss 90516 90516 0 0.0
text 612138 612138 0 0.0
lighting-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 969408 969408 0 0.0
bss 98648 98648 0 0.0
text 682380 682384 4 0.0
lighting-app-factory-data tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 980780 980780 0 0.0
bss 102896 102896 0 0.0
text 689900 689896 -4 -0.0
lighting-app-rpc tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1038892 1038892 0 0.0
bss 100204 100204 0 0.0
text 727272 727272 0 0.0
lighting-app-shell tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1070256 1070256 0 0.0
bss 111288 111288 0 0.0
text 747418 747418 0 0.0
lock-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 917708 917708 0 0.0
bss 90636 90636 0 0.0
text 615342 615340 -2 -0.0
ota-requestor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 885172 885164 -8 -0.0
bss 91248 91248 0 0.0
text 608490 608488 -2 -0.0
pump-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 868196 868196 0 0.0
bss 90104 90104 0 0.0
text 592434 592434 0 0.0
pump-controller-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 855216 855216 0 0.0
bss 89904 89904 0 0.0
text 582778 582778 0 0.0
temperature-measurement-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 851372 851372 0 0.0
bss 89812 89812 0 0.0
text 578406 578410 4 0.0
thermostat tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 897284 897284 0 0.0
bss 90348 90348 0 0.0
text 617822 617826 4 0.0
window-covering tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 892664 892664 0 0.0
bss 90640 90640 0 0.0
text 612748 612750 2 0.0

@plan44
Copy link
Contributor

plan44 commented Jul 11, 2023

@plan44 This PR modifies the work you've done in #22042. Let me know if you're OK with the changes :)

I'm not sure without trying (which will take a moment).

Does your change also allow for overriding existing standard cluster implementations? That's not exactly the same thing as allowing extra custom clusters, but that's what led to #22042, telling the SDK not to include specific cluster implementations, so these can be re-implemented outside of the SDK.

@Damian-Nordic
Copy link
Contributor Author

Damian-Nordic commented Jul 11, 2023

I'm not sure without trying (which will take a moment).

Does your change also allow for overriding existing standard cluster implementations? That's not exactly the same thing as allowing extra custom clusters, but that's what led to #22042, telling the SDK not to include specific cluster implementations, so these can be re-implemented outside of the SDK.

Yes, the new argument addresses both scenarios you mentioned. So the difference for you will be that instead of configuring:

zap_clusters_with_custom_implementation = [ "level-control" ]

you will have to write the following:

external_clusters = [ "LEVEL_CONTROL_CLUSTER" ]

The previous approach assumed that zap_cluster_list.json contained the definition for the given cluster and I want to have a single argument that is suitable for both overriding default implementations and for vendor-specific clusters.

@plan44
Copy link
Contributor

plan44 commented Jul 11, 2023

@Damian-Nordic: Thanks for the explanation.

In the meantime I managed to successfully rebuild my target (p44mbrd bridge) having custom level-control, color-control and identity servers with the PR applied, with less complications than expected, works fine :-)

So: I'm fully OK with the change!

Copy link
Contributor

@LuDuda LuDuda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this is great!

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants