Skip to content
New issue

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

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

Already on GitHub? Sign in 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!

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

Successfully merging this pull request may close these issues.

6 participants