connectedhomeip
Declare a "server cluster interface" that is intended to combine "attribute access interface" and "command handler interface"
#37541
Merged

Declare a "server cluster interface" that is intended to combine "attribute access interface" and "command handler interface" #37541

andy31415
andy3141545 days ago (edited 26 days ago)

This defines a ServerClusterInterface class along with a registry. Also slight update to build_coverage to run on more (specifically my) machines without errors.

Implementation notes:

  • Interface now includes metadata for attributes (AAI does not) and maintains the cluster version.
  • This includes the changes in #37526 (so no AAI replacement for list begin/end) as that interface gets finalized.
  • Renamed Invoke to InvokeCommand as per review feedback. Made this new name consistent across the new interface and DataModel::Provider

This is currently unused. I expect usages to add flash & RAM cost, that will be slowly offset (especially RAM) as we move clusters around:

  • RAM for linked list will be one list instead of 2 (AAI to CHI) so any cluster moved that uses both would save 1 pointer
  • metadata will increase slightly, can be reduced if we get ember to stop generating metadata for included clusters
  • RAM can decrease by FeatureMap and ClusterRevision if we stop ember from allocating space for it (however we will offset this by flash "encode const value").
  • RAM usage increases slightly during conversion for "store version data" which ember currently allocates for all clusters.
  • Very long term: if we replace all clusters, we can drop AAI/CHI and that would save some flash. Still expect no savings because new interface does all of AAI and CHI and a bit more.

TLDR on resourcing: probably ok on RAM over time, there is a flash overhead for this, claiming this is important for testable and maintainable code in the future.

Testing

Unit tests created. Got 100% coverage (including testing trivial "return error" functions to get that). The registry includes a randomized stress test.

image

semanticdiff-com
semanticdiff-com45 days ago (edited 39 days ago)

Review changes with  SemanticDiff

pullapprove pullapprove added review - pending
github-actions github-actions added scripts
github-actions github-actions added lib
github-actions github-actions added app
github-actions github-actions added core
github-actions github-actions added documentation
andy31415 andy31415 force pushed from c7ccbb3e to 4eab278b 45 days ago
project-chip project-chip deleted a comment from github-actions on 2025-02-12
project-chip project-chip deleted a comment from github-actions on 2025-02-12
project-chip project-chip deleted a comment from github-actions on 2025-02-12
project-chip project-chip deleted a comment from github-actions on 2025-02-12
github-actions
github-actions45 days ago (edited 45 days ago)

PR #37541: Size comparison from 522876c to 4eab278

Full report (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 522876c 4eab278 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1095960 1095960 0 0.0
RAM 94906 94906 0 0.0
bl702 lighting-app bl702+eth FLASH 652080 652080 0 0.0
RAM 33633 33633 0 0.0
bl702+wifi FLASH 828572 828572 0 0.0
RAM 22341 22341 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061718 1061718 0 0.0
RAM 32285 32285 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892592 892592 0 0.0
RAM 26912 26912 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975962 975962 0 0.0
RAM 24752 24752 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815204 815204 0 0.0
RAM 120352 120352 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 823832 823832 0 0.0
RAM 125360 125360 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 770992 770992 0 0.0
RAM 113820 113820 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755260 755260 0 0.0
RAM 114028 114028 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538894 538894 0 0.0
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572766 572766 0 0.0
RAM 205360 205360 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 656501 656501 0 0.0
RAM 75420 75420 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 676361 676361 0 0.0
RAM 78060 78060 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 676361 676361 0 0.0
RAM 78060 78060 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 633285 633285 0 0.0
RAM 70488 70488 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616117 616117 0 0.0
RAM 71532 71532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635753 635753 0 0.0
RAM 74076 74076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635753 635753 0 0.0
RAM 74076 74076 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635621 635621 0 0.0
RAM 74540 74540 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 655337 655337 0 0.0
RAM 77084 77084 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 655337 655337 0 0.0
RAM 77084 77084 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 611969 611969 0 0.0
RAM 68628 68628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631829 631829 0 0.0
RAM 71268 71268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631829 631829 0 0.0
RAM 71268 71268 0 0.0
efr32 lock-app BRD4187C FLASH 937264 937264 0 0.0
RAM 159908 159908 0 0.0
BRD4338a FLASH 730592 730584 -8 -0.0
RAM 234720 234720 0 0.0
window-app BRD4187C FLASH 1029856 1029856 0 0.0
RAM 128012 128012 0 0.0
esp32 all-clusters-app c3devkit DRAM 97312 97312 0 0.0
FLASH 1581680 1581680 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 116100 116100 0 0.0
FLASH 1549606 1549606 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4760 4760 0 0.0
FLASH 2708747 2708795 48 0.0
RAM 132784 132784 0 0.0
all-clusters-app debug unknown 5568 5568 0 0.0
FLASH 5975210 5975258 48 0.0
RAM 531600 531600 0 0.0
all-clusters-minimal-app debug unknown 5464 5464 0 0.0
FLASH 5322754 5322802 48 0.0
RAM 242712 242712 0 0.0
bridge-app debug unknown 5480 5480 0 0.0
FLASH 4681398 4681414 16 0.0
RAM 221448 221448 0 0.0
chip-tool debug unknown 6120 6120 0 0.0
FLASH 13098960 13099008 48 0.0
RAM 596578 596578 0 0.0
chip-tool-ipv6only arm64 unknown 21816 21816 0 0.0
FLASH 11162224 11162256 32 0.0
RAM 648256 648256 0 0.0
fabric-admin debug unknown 5808 5808 0 0.0
FLASH 11387977 11388025 48 0.0
RAM 596362 596362 0 0.0
fabric-bridge-app debug unknown 4736 4736 0 0.0
FLASH 4506720 4506768 48 0.0
RAM 208632 208632 0 0.0
fabric-sync debug unknown 4976 4976 0 0.0
FLASH 5612965 5612981 16 0.0
RAM 483504 483504 0 0.0
lighting-app debug+rpc+ui unknown 6152 6152 0 0.0
FLASH 5484513 5484529 16 0.0
RAM 225392 225392 0 0.0
lock-app debug unknown 5416 5416 0 0.0
FLASH 4730794 4730810 16 0.0
RAM 207696 207696 0 0.0
ota-provider-app debug unknown 4776 4776 0 0.0
FLASH 4359828 4359844 16 0.0
RAM 201336 201336 0 0.0
ota-requestor-app debug unknown 4728 4728 0 0.0
FLASH 4497204 4497220 16 0.0
RAM 205920 205920 0 0.0
shell debug unknown 4256 4256 0 0.0
FLASH 3005468 3005516 48 0.0
RAM 160552 160552 0 0.0
thermostat-no-ble arm64 unknown 9512 9512 0 0.0
FLASH 4096488 4096504 16 0.0
RAM 246024 246024 0 0.0
tv-app debug unknown 5744 5744 0 0.0
FLASH 5951893 5951909 16 0.0
RAM 606904 606904 0 0.0
tv-casting-app debug unknown 5320 5320 0 0.0
FLASH 11271725 11271741 16 0.0
RAM 710864 710864 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 907464 907464 0 0.0
RAM 142411 142411 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 901920 901920 0 0.0
RAM 124755 124755 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 846084 846084 0 0.0
RAM 141339 141339 0 0.0
nxp contact k32w0+release FLASH 584752 584752 0 0.0
RAM 70876 70876 0 0.0
mcxw71+release FLASH 600208 600208 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 611076 611076 0 0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685512 685512 0 0.0
RAM 48680 48680 0 0.0
lock mcxw71+release FLASH 749024 749024 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646756 1646756 0 0.0
RAM 211576 211576 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1553524 1553524 0 0.0
RAM 208392 208392 0 0.0
light cy8ckit_062s2_43012 FLASH 1439196 1439196 0 0.0
RAM 197144 197144 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467412 1467412 0 0.0
RAM 224704 224704 0 0.0
qpg lighting-app qpg6105+debug FLASH 662340 662340 0 0.0
RAM 105220 105220 0 0.0
lock-app qpg6105+debug FLASH 620136 620136 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459736 459736 0 0.0
RAM 141568 141568 0 0.0
telink bridge-app tl7218x FLASH 665226 665226 0 0.0
RAM 90828 90828 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 621908 621908 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745418 745418 0 0.0
RAM 40496 40496 0 0.0
tl7218x FLASH 753974 753974 0 0.0
RAM 97632 97632 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680678 680678 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709240 709240 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600796 600796 0 0.0
RAM 138912 138912 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788928 788928 0 0.0
RAM 96488 96488 0 0.0
tizen all-clusters-app arm unknown 5104 5104 0 0.0
FLASH 1751708 1751732 24 0.0
RAM 93508 93508 0 0.0
chip-tool-ubsan arm unknown 11396 11396 0 0.0
FLASH 18683110 18683134 24 0.0
RAM 8181084 8181084 0 0.0
harimau-qirex
harimau-qirex commented on 2025-02-12
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.h
35 /// exists on the given endpoint for the given clusterid.
36 ///
37 /// Registrations need a valid endpointid and cluster MUST return a valid clusterid.
38
CHIP_ERROR Register(EndpointId endpointId, ServerClusterInterface * cluster);
harimau-qirex45 days ago👍 1

I recommend adding [[nodiscard]] to this method. When writing #37078 the issues with the FabricSync tests would've been much easier to diagnose if the CHI registry required the caller to do something with the return value.

tcarmelveilleux
tcarmelveilleux commented on 2025-02-12
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
40 ServerClusterInterface();
41 virtual ~ServerClusterInterface() = default;
42
43
// since we use `mNext == this` as a marker for "is in a list"
44
// the assignment of these interfaces is overloaded even for the move operator
tcarmelveilleux45 days ago

Don't forget to capitalize.

tcarmelveilleux
tcarmelveilleux commented on 2025-02-12
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
tcarmelveilleux45 days ago

Suggest mentioning that it has internal intrusive list semantics.

andy3141544 days ago

I was torn here ... I want the "intrusive list" to be an implementation detail and not a stable API. For efficiency we could opt for example on https://pigweed.dev/pw_containers/maps.html#pw-intrusivemap (looks neat to get log search guaranteed, unsure about overhead).

Would you prefer a mention of "this has intrusive list" with stating that the API there is NOT stable? I tried to add those to every method, but can also split it in a separate class and have it noted that the dependency there is not stable API.

tcarmelveilleux
tcarmelveilleux commented on 2025-02-12
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
63 }
64
65 ///////////////////////////////////// Cluster Metadata Support //////////////////////////////////////////////////
66
virtual ClusterId GetClusterId() const = 0;
tcarmelveilleux45 days ago

This interface prevents implementing more than 1 cluster in a given instance. This seems like it's a bit overly limiting. Since most of the methods underneath actually take paths, the cluster ID could be part of the path or of the cluster quality flags.

The reason to possibly support > 1 cluster ID is to allow more ease in making bridges (where there are a lot of cluster versions to host, or variance depending on underlying transport), or to support make tests more easily (e.g. 1 handler for several clusters in a fake)

andy3141544 days ago

This makes checking for uniqueness a lot clearer. My thinking was that for implemented clusters we generally need some "state" in some way (since we would not guarantee ember "get data at this path" anymore).

For bridges, you are right one could implement more generic things, however then I may need paths on other places (like qualities or accepted commands and such if they vary) and bridges are likely "large systems" so if I ask them to just register clusters as they need, they could instantiate reasonably small bridge clusters as needed (probably order of 10-20 per endpoint) and that does not sound so onerous.

My current thinking is still to YAGNI this:

  • we can add a WildcardClusterId if needed in the future (e.g. make it return invalid and support it) for "any cluster" and "any endpoint"
  • we have no concrete need for this right now except ease of testing and bridges and those can be built with the current interface.
tcarmelveilleux
tcarmelveilleux commented on 2025-02-12
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
94 /// - FeatureMap::Id - generally 0 as a default
95 /// - ClusterRevision::Id - this is implementation defined
96 ///
97
/// This DOES NOT need to handle attributes built out of cluster metadata. No need to handle:
tcarmelveilleux45 days ago

This DOES NOT need to handle attributes built out of cluster metadata

Not sure what that means, or that the average developer would understand what that means. Do you mean "this does NOT handle any implicit ZAP-based data access, such as falling-back on "RAM attributes" supported by legacy ZAP-based flows" ?

andy3141544 days ago

Will try to rephrase. I meant this method WILL NOT ever be called with attributeID being those list attributes because we handle those inside the interaction model engine. So instead of trying to implement code to build those lists (which takes flash) the interfaces are supposed to implement the metadata calls since we need those anyway (e.g. to check permissions)

tcarmelveilleux
tcarmelveilleux commented on 2025-02-12
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
132 /// Must only be implemented if commands are supported by the cluster
133 ///
134 /// Default implementation errors out with an UnspportedCommand error.
135
virtual std::optional<DataModel::ActionReturnStatus> Invoke(const DataModel::InvokeRequest & request,
tcarmelveilleux45 days ago

InvokeCommand for symmetry with ReadAttribute/WriteAttribute

andy3141544 days ago

This is already named Invoke in DataModel::Provider. Should that be renamed too?

andy3141544 days ago

Renamed done on both sides.

tcarmelveilleux
tcarmelveilleux commented on 2025-02-12
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
146 /// Default implementation is a NOOP (no list items generated)
147 virtual CHIP_ERROR GeneratedCommands(const ConcreteClusterPath & path, DataModel::ListBuilder<CommandId> & builder);
148
149
// Internal details for processing
tcarmelveilleux45 days ago

If these are internal, could they be part of a separate base class?

andy3141544 days ago

A bit more difficult since the pointer is Self i.e. ServerClusterInterface *.

I could make it a template base class, however not sure if that helps or hurts readability. Thoughts?

andy3141544 days ago

Leaning more towards splitting, because then I can document the "this is NOT a stable interface" only once and also resolve the comment about class documentation.

tcarmelveilleux44 days ago

Yes. I think the bottom line may be that "RegisterableClusterServer" desccends from ClusterServerInterface, and the registration logic is what is hidden in the Registerable part, but the Data Model Provider onlyc alls ClusterServerInterface?

andy3141544 days ago

Done with the split, placed the template in Detail. A bit of casting going on, hoping it is ok.

tcarmelveilleux
tcarmelveilleux commented on 2025-02-12
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
37class ServerClusterInterface
38{
39public:
40
ServerClusterInterface();
tcarmelveilleux45 days ago

I don't see any methods to associate the Matter stack context, that would give access to:

  • EventLogging
  • Attribute dirty marking
  • PersistentStorageDelegate
  • FabricTable
  • SceneTable (if it exists)
  • etc

Which is all state needed by several clusters. Is it intended that this would be done not by common code? Perhaps a few clusters don't need to log events, but I claim most would need to mark dirty.

andy3141544 days ago

I will have to design how the common context looks like and is initialized. it very likely it is a datamodelprovider (provides a context with event logging, eventing, dirty notification) however will see what else. My concern is that i have to balance:

  • provide everything via a pointer - minimal RAM, however context will be 100% a god object that will be really hard for tests to provide
  • provide a few choices/reduced amount or defer to clusters themselves (so that main can set them up) but that uses more RAM and ember has a hard time.

I am leaning towards followup to refine things.

tcarmelveilleux44 days ago

OK, we can follow-up. This could be partially solved by adding interface methods for those common cases of marking dirty or logging an event, that would then access the right state when it becomes registered. That way the API accounts for it today.

andy3141544 days ago

Keeping it as followup for now, so we can have the starter PR in. It is reasonably large already.

Followup I thinkg would be:

  • iterators (seems straight-forward now to have listings of clusters and attributes based on the registry)
  • context design
  • have some clusters converted

Would like to be able to see flash overhead as soon as possible, hence having things in sooner is better.

github-actions
github-actions44 days ago (edited 44 days ago)

PR #37541: Size comparison from 522876c to 8f7a492

Full report (3 builds for cc32xx, stm32)
platform target config section 522876c 8f7a492 change % change
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538894 538894 0 0.0
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572766 572766 0 0.0
RAM 205360 205360 0 0.0
stm32 light STM32WB5MM-DK FLASH 459736 459736 0 0.0
RAM 141568 141568 0 0.0
github-actions
github-actions44 days ago (edited 44 days ago)

PR #37541: Size comparison from 522876c to 576c374

Full report (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 522876c 576c374 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1095960 1095960 0 0.0
RAM 94906 94906 0 0.0
bl702 lighting-app bl702+eth FLASH 652080 652080 0 0.0
RAM 33633 33633 0 0.0
bl702+wifi FLASH 828572 828572 0 0.0
RAM 22341 22341 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061718 1061718 0 0.0
RAM 32285 32285 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892592 892592 0 0.0
RAM 26912 26912 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975962 975962 0 0.0
RAM 24752 24752 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815204 815204 0 0.0
RAM 120352 120352 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 823832 823832 0 0.0
RAM 125360 125360 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 770992 770992 0 0.0
RAM 113820 113820 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755260 755260 0 0.0
RAM 114028 114028 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538894 538894 0 0.0
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572766 572766 0 0.0
RAM 205360 205360 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 656501 656501 0 0.0
RAM 75420 75420 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 676361 676361 0 0.0
RAM 78060 78060 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 676361 676361 0 0.0
RAM 78060 78060 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 633285 633285 0 0.0
RAM 70488 70488 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616117 616117 0 0.0
RAM 71532 71532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635753 635753 0 0.0
RAM 74076 74076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635753 635753 0 0.0
RAM 74076 74076 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635621 635621 0 0.0
RAM 74540 74540 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 655337 655337 0 0.0
RAM 77084 77084 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 655337 655337 0 0.0
RAM 77084 77084 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 611969 611969 0 0.0
RAM 68628 68628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631829 631829 0 0.0
RAM 71268 71268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631829 631829 0 0.0
RAM 71268 71268 0 0.0
efr32 lock-app BRD4187C FLASH 937264 937264 0 0.0
RAM 159908 159908 0 0.0
BRD4338a FLASH 730592 730584 -8 -0.0
RAM 234720 234720 0 0.0
window-app BRD4187C FLASH 1029856 1029856 0 0.0
RAM 128012 128012 0 0.0
esp32 all-clusters-app c3devkit DRAM 97312 97312 0 0.0
FLASH 1581680 1581680 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 116100 116100 0 0.0
FLASH 1549606 1549606 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4760 4760 0 0.0
FLASH 2708747 2708795 48 0.0
RAM 132784 132784 0 0.0
all-clusters-app debug unknown 5568 5568 0 0.0
FLASH 5975210 5975258 48 0.0
RAM 531600 531600 0 0.0
all-clusters-minimal-app debug unknown 5464 5464 0 0.0
FLASH 5322754 5322802 48 0.0
RAM 242712 242712 0 0.0
bridge-app debug unknown 5480 5480 0 0.0
FLASH 4681398 4681414 16 0.0
RAM 221448 221448 0 0.0
chip-tool debug unknown 6120 6120 0 0.0
FLASH 13098960 13099008 48 0.0
RAM 596578 596578 0 0.0
chip-tool-ipv6only arm64 unknown 21816 21816 0 0.0
FLASH 11162224 11162256 32 0.0
RAM 648256 648256 0 0.0
fabric-admin debug unknown 5808 5808 0 0.0
FLASH 11387977 11388025 48 0.0
RAM 596362 596362 0 0.0
fabric-bridge-app debug unknown 4736 4736 0 0.0
FLASH 4506720 4506768 48 0.0
RAM 208632 208632 0 0.0
fabric-sync debug unknown 4976 4976 0 0.0
FLASH 5612965 5612981 16 0.0
RAM 483504 483504 0 0.0
lighting-app debug+rpc+ui unknown 6152 6152 0 0.0
FLASH 5484513 5484529 16 0.0
RAM 225392 225392 0 0.0
lock-app debug unknown 5416 5416 0 0.0
FLASH 4730794 4730810 16 0.0
RAM 207696 207696 0 0.0
ota-provider-app debug unknown 4776 4776 0 0.0
FLASH 4359828 4359844 16 0.0
RAM 201336 201336 0 0.0
ota-requestor-app debug unknown 4728 4728 0 0.0
FLASH 4497204 4497220 16 0.0
RAM 205920 205920 0 0.0
shell debug unknown 4256 4256 0 0.0
FLASH 3005468 3005516 48 0.0
RAM 160552 160552 0 0.0
thermostat-no-ble arm64 unknown 9512 9512 0 0.0
FLASH 4096488 4096504 16 0.0
RAM 246024 246024 0 0.0
tv-app debug unknown 5744 5744 0 0.0
FLASH 5951893 5951909 16 0.0
RAM 606904 606904 0 0.0
tv-casting-app debug unknown 5320 5320 0 0.0
FLASH 11271725 11271741 16 0.0
RAM 710864 710864 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 907464 907464 0 0.0
RAM 142411 142411 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 901920 901920 0 0.0
RAM 124755 124755 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 846084 846084 0 0.0
RAM 141339 141339 0 0.0
nxp contact k32w0+release FLASH 584752 584752 0 0.0
RAM 70876 70876 0 0.0
mcxw71+release FLASH 600208 600208 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 611076 611076 0 0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685512 685512 0 0.0
RAM 48680 48680 0 0.0
lock mcxw71+release FLASH 749024 749024 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646756 1646756 0 0.0
RAM 211576 211576 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1553524 1553524 0 0.0
RAM 208392 208392 0 0.0
light cy8ckit_062s2_43012 FLASH 1439196 1439196 0 0.0
RAM 197144 197144 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467412 1467412 0 0.0
RAM 224704 224704 0 0.0
qpg lighting-app qpg6105+debug FLASH 662340 662340 0 0.0
RAM 105220 105220 0 0.0
lock-app qpg6105+debug FLASH 620136 620136 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459736 459736 0 0.0
RAM 141568 141568 0 0.0
telink bridge-app tl7218x FLASH 665226 665226 0 0.0
RAM 90828 90828 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 621908 621908 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745418 745418 0 0.0
RAM 40496 40496 0 0.0
tl7218x FLASH 753974 753974 0 0.0
RAM 97632 97632 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680678 680678 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709240 709240 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600796 600796 0 0.0
RAM 138912 138912 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788928 788928 0 0.0
RAM 96488 96488 0 0.0
tizen all-clusters-app arm unknown 5104 5104 0 0.0
FLASH 1751708 1751732 24 0.0
RAM 93508 93508 0 0.0
chip-tool-ubsan arm unknown 11396 11396 0 0.0
FLASH 18683110 18683134 24 0.0
RAM 8181084 8181084 0 0.0
github-actions github-actions added controller
github-actions github-actions added tests
github-actions
github-actions44 days ago (edited 44 days ago)

PR #37541: Size comparison from 522876c to a854a2c

Full report (14 builds for cc13x4_26x4, cc32xx, nrfconnect, qpg, stm32, tizen)
platform target config section 522876c a854a2c change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815204 815204 0 0.0
RAM 120352 120352 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 823832 823832 0 0.0
RAM 125360 125360 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 770992 770992 0 0.0
RAM 113820 113820 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755260 755260 0 0.0
RAM 114028 114028 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538894 538894 0 0.0
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572766 572766 0 0.0
RAM 205360 205360 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 907464 907464 0 0.0
RAM 142411 142411 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 901920 901920 0 0.0
RAM 124755 124755 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 846084 846084 0 0.0
RAM 141339 141339 0 0.0
qpg lighting-app qpg6105+debug FLASH 662340 662340 0 0.0
RAM 105220 105220 0 0.0
lock-app qpg6105+debug FLASH 620136 620136 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459736 459736 0 0.0
RAM 141568 141568 0 0.0
tizen all-clusters-app arm unknown 5104 5104 0 0.0
FLASH 1751708 1751732 24 0.0
RAM 93508 93508 0 0.0
chip-tool-ubsan arm unknown 11396 11396 0 0.0
FLASH 18683110 18683134 24 0.0
RAM 8181084 8181084 0 0.0
mspang
mspang commented on 2025-02-13
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
210 virtual CHIP_ERROR GeneratedCommands(const ConcreteClusterPath & path, DataModel::ListBuilder<CommandId> & builder);
211
212private:
213
DataVersion mDataVersion; // will be random-initialized as per spec
mspang44 days ago (edited 43 days ago)

I think that these interfaces should be free from functionality and data members.

Requiring a single implementation of data version makes this interface less useful.

  • We can't precisely reconstruct specific cluster state for test or other purposes
  • It adds unnecessary coupling to the crypto library & we can't inject the entropy source
  • We can't construct a "fuzzer" server cluster to try to expose bugs with data version handling.

Keeping the interface pure virtual is the best practice.

andy3141543 days ago

How about the IntrusiveList bit? I would generally want classes from clusters to be directly usable within registries and mocks will be hard to use if they don't have that intrusiveness.

mspang43 days ago

It seems like any ember compatibility code should be able to be configured out of the build entirely, since we want to make it possible to have a legacy-free build and soon.

andy3141543 days ago

I made the base class pure virtual except the intrusive list bit since I could not find a good way to minimize RAM usage and keep pure virtual without intrusiveness. Created a "Standard" class that implements the interface with the implementations it had before. GetDataVersion is now pure virtual.

I think API-compatibility can be maintained if we figure out a better way to decouple the registry from interface, for now however I would rather leave that for future work as it seems splittable.

github-actions
github-actions44 days ago (edited 43 days ago)

PR #37541: Size comparison from 522876c to 2f39744

Full report (14 builds for cc13x4_26x4, cc32xx, nrfconnect, qpg, stm32, tizen)
platform target config section 522876c 2f39744 change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815204 815204 0 0.0
RAM 120352 120352 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 823832 823832 0 0.0
RAM 125360 125360 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 770992 770992 0 0.0
RAM 113820 113820 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755260 755260 0 0.0
RAM 114028 114028 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538894 538894 0 0.0
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572766 572766 0 0.0
RAM 205360 205360 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 907464 907464 0 0.0
RAM 142411 142411 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 901920 901920 0 0.0
RAM 124755 124755 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 846084 846084 0 0.0
RAM 141339 141339 0 0.0
qpg lighting-app qpg6105+debug FLASH 662340 662340 0 0.0
RAM 105220 105220 0 0.0
lock-app qpg6105+debug FLASH 620136 620136 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459736 459736 0 0.0
RAM 141568 141568 0 0.0
tizen all-clusters-app arm unknown 5104 5104 0 0.0
FLASH 1751708 1751732 24 0.0
RAM 93508 93508 0 0.0
chip-tool-ubsan arm unknown 11396 11396 0 0.0
FLASH 18683110 18683134 24 0.0
RAM 8181084 8181084 0 0.0
mspang
mspang commented on 2025-02-13
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
114/// Provides metadata as well as interaction processing (attribute read/write and command handling).
115///
116/// Implementation note:
117
/// - this class is highly coupled with ServerClusterInterfaceRegistry. The fact that it
mspang43 days ago

If ServerClusterInterfaceRegistry is optional ember compatibility code, could the state associated with managing these lists also be optional?

andy3141543 days ago

I could not figure out a good way to do this and still highly optmize for RAM.

I think if we do decide to allow for another 100 or so bytes of RAM for tiny apps, we could make this a real map to pointers (we would need endpointid + pointer, so about 8 bytes for every mapped cluster ... a tiny thread sensor with 1 endpoint should have 10 root node clusters and 3 clusters on a endpoint like "contact sensor" or "light sensor") .. so every increase is multiplied by 13 or more as cluster counts increase.

Would be interested in suggestions, although at this time I would prefer them as followups.

github-actions
github-actions43 days ago (edited 43 days ago)

PR #37541: Size comparison from 522876c to 57f2321

Full report (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 522876c 57f2321 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1095960 1095960 0 0.0
RAM 94906 94906 0 0.0
bl702 lighting-app bl702+eth FLASH 652080 652080 0 0.0
RAM 33633 33633 0 0.0
bl702+wifi FLASH 828572 828572 0 0.0
RAM 22341 22341 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061718 1061718 0 0.0
RAM 32285 32285 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892592 892592 0 0.0
RAM 26912 26912 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975962 975962 0 0.0
RAM 24752 24752 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815204 815204 0 0.0
RAM 120352 120352 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 823832 823832 0 0.0
RAM 125360 125360 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 770992 770992 0 0.0
RAM 113820 113820 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755260 755260 0 0.0
RAM 114028 114028 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538894 538894 0 0.0
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572766 572766 0 0.0
RAM 205360 205360 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 656501 656501 0 0.0
RAM 75420 75420 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 676361 676361 0 0.0
RAM 78060 78060 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 676361 676361 0 0.0
RAM 78060 78060 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 633285 633285 0 0.0
RAM 70488 70488 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616117 616117 0 0.0
RAM 71532 71532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635753 635753 0 0.0
RAM 74076 74076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635753 635753 0 0.0
RAM 74076 74076 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635621 635621 0 0.0
RAM 74540 74540 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 655337 655337 0 0.0
RAM 77084 77084 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 655337 655337 0 0.0
RAM 77084 77084 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 611969 611969 0 0.0
RAM 68628 68628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631829 631829 0 0.0
RAM 71268 71268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631829 631829 0 0.0
RAM 71268 71268 0 0.0
efr32 lock-app BRD4187C FLASH 937264 937264 0 0.0
RAM 159908 159908 0 0.0
BRD4338a FLASH 730592 730584 -8 -0.0
RAM 234720 234720 0 0.0
window-app BRD4187C FLASH 1029856 1029856 0 0.0
RAM 128012 128012 0 0.0
esp32 all-clusters-app c3devkit DRAM 97312 97312 0 0.0
FLASH 1581680 1581680 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 116100 116100 0 0.0
FLASH 1549606 1549606 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4760 4712 -48 -1.0
FLASH 2708747 2648949 -59798 -2.2
RAM 132784 111600 -21184 -16.0
all-clusters-app debug unknown 5568 5520 -48 -0.9
FLASH 5975210 5915380 -59830 -1.0
RAM 531600 510416 -21184 -4.0
all-clusters-minimal-app debug unknown 5464 5416 -48 -0.9
FLASH 5322754 5262924 -59830 -1.1
RAM 242712 221528 -21184 -8.7
bridge-app debug unknown 5480 5432 -48 -0.9
FLASH 4681398 4621568 -59830 -1.3
RAM 221448 200264 -21184 -9.6
chip-tool debug unknown 6120 6088 -32 -0.5
FLASH 13098960 13071018 -27942 -0.2
RAM 596578 596482 -96 -0.0
chip-tool-ipv6only arm64 unknown 21816 21816 0 0.0
FLASH 11162224 11137760 -24464 -0.2
RAM 648256 648160 -96 -0.0
fabric-admin debug unknown 5808 5776 -32 -0.6
FLASH 11387977 11360035 -27942 -0.2
RAM 596362 596266 -96 -0.0
fabric-bridge-app debug unknown 4736 4680 -56 -1.2
FLASH 4506720 4446922 -59798 -1.3
RAM 208632 187480 -21152 -10.1
fabric-sync debug unknown 4976 4936 -40 -0.8
FLASH 5612965 5563829 -49136 -0.9
RAM 483504 467024 -16480 -3.4
lighting-app debug+rpc+ui unknown 6152 6104 -48 -0.8
FLASH 5484513 5424689 -59824 -1.1
RAM 225392 204208 -21184 -9.4
lock-app debug unknown 5416 5384 -32 -0.6
FLASH 4730794 4681612 -49182 -1.0
RAM 207696 191216 -16480 -7.9
ota-provider-app debug unknown 4776 4720 -56 -1.2
FLASH 4359828 4299998 -59830 -1.4
RAM 201336 180184 -21152 -10.5
ota-requestor-app debug unknown 4728 4672 -56 -1.2
FLASH 4497204 4437374 -59830 -1.3
RAM 205920 184768 -21152 -10.3
shell debug unknown 4256 4216 -40 -0.9
FLASH 3005468 2950108 -55360 -1.8
RAM 160552 144040 -16512 -10.3
thermostat-no-ble arm64 unknown 9512 9512 0 0.0
FLASH 4096488 4039896 -56592 -1.4
RAM 246024 228528 -17496 -7.1
tv-app debug unknown 5744 5712 -32 -0.6
FLASH 5951893 5902709 -49184 -0.8
RAM 606904 590424 -16480 -2.7
tv-casting-app debug unknown 5320 5288 -32 -0.6
FLASH 11271725 11243533 -28192 -0.3
RAM 710864 710640 -224 -0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 907464 907464 0 0.0
RAM 142411 142411 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 901920 901920 0 0.0
RAM 124755 124755 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 846084 846084 0 0.0
RAM 141339 141339 0 0.0
nxp contact k32w0+release FLASH 584752 584752 0 0.0
RAM 70876 70876 0 0.0
mcxw71+release FLASH 600208 600208 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 611076 611076 0 0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685512 685512 0 0.0
RAM 48680 48680 0 0.0
lock mcxw71+release FLASH 749024 749024 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646756 1646756 0 0.0
RAM 211576 211576 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1553524 1553524 0 0.0
RAM 208392 208392 0 0.0
light cy8ckit_062s2_43012 FLASH 1439196 1439196 0 0.0
RAM 197144 197144 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467412 1467412 0 0.0
RAM 224704 224704 0 0.0
qpg lighting-app qpg6105+debug FLASH 662340 662340 0 0.0
RAM 105220 105220 0 0.0
lock-app qpg6105+debug FLASH 620136 620136 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459736 459736 0 0.0
RAM 141568 141568 0 0.0
telink bridge-app tl7218x FLASH 665226 665226 0 0.0
RAM 90828 90828 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 621908 621908 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745418 745418 0 0.0
RAM 40496 40496 0 0.0
tl7218x FLASH 753974 753974 0 0.0
RAM 97632 97632 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680678 680678 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709240 709240 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600796 600796 0 0.0
RAM 138912 138912 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788928 788928 0 0.0
RAM 96488 96488 0 0.0
tizen all-clusters-app arm unknown 5104 5104 0 0.0
FLASH 1751708 1751732 24 0.0
RAM 93508 93508 0 0.0
chip-tool-ubsan arm unknown 11396 11396 0 0.0
FLASH 18683110 18683134 24 0.0
RAM 8181084 8181084 0 0.0
github-actions
github-actions43 days ago (edited 43 days ago)

PR #37541: Size comparison from 522876c to e42fd3a

Full report (67 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, linux, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 522876c e42fd3a change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1095960 1095960 0 0.0
RAM 94906 94906 0 0.0
bl702 lighting-app bl702+eth FLASH 652080 652080 0 0.0
RAM 33633 33633 0 0.0
bl702+wifi FLASH 828572 828572 0 0.0
RAM 22341 22341 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061718 1061718 0 0.0
RAM 32285 32285 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892592 892592 0 0.0
RAM 26912 26912 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975962 975962 0 0.0
RAM 24752 24752 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815204 815204 0 0.0
RAM 120352 120352 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 823832 823832 0 0.0
RAM 125360 125360 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 770992 770992 0 0.0
RAM 113820 113820 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755260 755260 0 0.0
RAM 114028 114028 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538894 538894 0 0.0
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572766 572766 0 0.0
RAM 205360 205360 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 656501 656501 0 0.0
RAM 75420 75420 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 676361 676361 0 0.0
RAM 78060 78060 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 676361 676361 0 0.0
RAM 78060 78060 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 633285 633285 0 0.0
RAM 70488 70488 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616117 616117 0 0.0
RAM 71532 71532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635753 635753 0 0.0
RAM 74076 74076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635753 635753 0 0.0
RAM 74076 74076 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635621 635621 0 0.0
RAM 74540 74540 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 655337 655337 0 0.0
RAM 77084 77084 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 655337 655337 0 0.0
RAM 77084 77084 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 611969 611969 0 0.0
RAM 68628 68628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631829 631829 0 0.0
RAM 71268 71268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631829 631829 0 0.0
RAM 71268 71268 0 0.0
efr32 lock-app BRD4187C FLASH 937264 937264 0 0.0
RAM 159908 159908 0 0.0
BRD4338a FLASH 730592 730584 -8 -0.0
RAM 234720 234720 0 0.0
window-app BRD4187C FLASH 1029856 1029856 0 0.0
RAM 128012 128012 0 0.0
linux air-purifier-app debug unknown 4760 4712 -48 -1.0
FLASH 2708747 2648949 -59798 -2.2
RAM 132784 111600 -21184 -16.0
all-clusters-app debug unknown 5568 5520 -48 -0.9
FLASH 5975210 5915380 -59830 -1.0
RAM 531600 510416 -21184 -4.0
all-clusters-minimal-app debug unknown 5464 5416 -48 -0.9
FLASH 5322754 5262924 -59830 -1.1
RAM 242712 221528 -21184 -8.7
bridge-app debug unknown 5480 5432 -48 -0.9
FLASH 4681398 4621568 -59830 -1.3
RAM 221448 200264 -21184 -9.6
chip-tool debug unknown 6120 6088 -32 -0.5
FLASH 13098960 13071254 -27706 -0.2
RAM 596578 596482 -96 -0.0
chip-tool-ipv6only arm64 unknown 21816 21816 0 0.0
FLASH 11162224 11137808 -24416 -0.2
RAM 648256 648160 -96 -0.0
fabric-admin debug unknown 5808 5776 -32 -0.6
FLASH 11387977 11360035 -27942 -0.2
RAM 596362 596266 -96 -0.0
fabric-bridge-app debug unknown 4736 4680 -56 -1.2
FLASH 4506720 4446922 -59798 -1.3
RAM 208632 187480 -21152 -10.1
fabric-sync debug unknown 4976 4936 -40 -0.8
FLASH 5612965 5563829 -49136 -0.9
RAM 483504 467024 -16480 -3.4
lighting-app debug+rpc+ui unknown 6152 6104 -48 -0.8
FLASH 5484513 5424689 -59824 -1.1
RAM 225392 204208 -21184 -9.4
lock-app debug unknown 5416 5384 -32 -0.6
FLASH 4730794 4681612 -49182 -1.0
RAM 207696 191216 -16480 -7.9
ota-provider-app debug unknown 4776 4720 -56 -1.2
FLASH 4359828 4299998 -59830 -1.4
RAM 201336 180184 -21152 -10.5
ota-requestor-app debug unknown 4728 4672 -56 -1.2
FLASH 4497204 4437374 -59830 -1.3
RAM 205920 184768 -21152 -10.3
shell debug unknown 4256 4216 -40 -0.9
FLASH 3005468 2950108 -55360 -1.8
RAM 160552 144040 -16512 -10.3
thermostat-no-ble arm64 unknown 9512 9512 0 0.0
FLASH 4096488 4039896 -56592 -1.4
RAM 246024 228528 -17496 -7.1
tv-app debug unknown 5744 5712 -32 -0.6
FLASH 5951893 5902709 -49184 -0.8
RAM 606904 590424 -16480 -2.7
tv-casting-app debug unknown 5320 5288 -32 -0.6
FLASH 11271725 11243773 -27952 -0.2
RAM 710864 710640 -224 -0.0
nxp contact k32w0+release FLASH 584752 584752 0 0.0
RAM 70876 70876 0 0.0
mcxw71+release FLASH 600208 600208 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 611076 611076 0 0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685512 685512 0 0.0
RAM 48680 48680 0 0.0
lock mcxw71+release FLASH 749024 749024 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646756 1646756 0 0.0
RAM 211576 211576 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1553524 1553524 0 0.0
RAM 208392 208392 0 0.0
light cy8ckit_062s2_43012 FLASH 1439196 1439196 0 0.0
RAM 197144 197144 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467412 1467412 0 0.0
RAM 224704 224704 0 0.0
qpg lighting-app qpg6105+debug FLASH 662340 662340 0 0.0
RAM 105220 105220 0 0.0
lock-app qpg6105+debug FLASH 620136 620136 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459736 459736 0 0.0
RAM 141568 141568 0 0.0
telink bridge-app tl7218x FLASH 665226 665226 0 0.0
RAM 90828 90828 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 621908 621908 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745418 745418 0 0.0
RAM 40496 40496 0 0.0
tl7218x FLASH 753974 753974 0 0.0
RAM 97632 97632 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680678 680678 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709240 709240 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600796 600796 0 0.0
RAM 138912 138912 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788928 788928 0 0.0
RAM 96488 96488 0 0.0
tizen all-clusters-app arm unknown 5104 5104 0 0.0
FLASH 1751708 1751732 24 0.0
RAM 93508 93508 0 0.0
chip-tool-ubsan arm unknown 11396 11396 0 0.0
FLASH 18683110 18683358 248 0.0
RAM 8181084 8181084 0 0.0
github-actions
github-actions43 days ago (edited 43 days ago)

PR #37541: Size comparison from 522876c to ee94351

Full report (3 builds for cc32xx, stm32)
platform target config section 522876c ee94351 change % change
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538894 538894 0 0.0
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572766 572766 0 0.0
RAM 205360 205360 0 0.0
stm32 light STM32WB5MM-DK FLASH 459736 459736 0 0.0
RAM 141568 141568 0 0.0
github-actions
github-actions43 days ago (edited 43 days ago)

PR #37541: Size comparison from 522876c to 8bec18e

Full report (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 522876c 8bec18e change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1095960 1095960 0 0.0
RAM 94906 94906 0 0.0
bl702 lighting-app bl702+eth FLASH 652080 652080 0 0.0
RAM 33633 33633 0 0.0
bl702+wifi FLASH 828572 828572 0 0.0
RAM 22341 22341 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061718 1061718 0 0.0
RAM 32285 32285 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892592 892592 0 0.0
RAM 26912 26912 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975962 975962 0 0.0
RAM 24752 24752 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815204 815204 0 0.0
RAM 120352 120352 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 823832 823832 0 0.0
RAM 125360 125360 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 770992 770992 0 0.0
RAM 113820 113820 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755260 755260 0 0.0
RAM 114028 114028 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538894 538894 0 0.0
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572766 572766 0 0.0
RAM 205360 205360 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 656501 656501 0 0.0
RAM 75420 75420 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 676361 676361 0 0.0
RAM 78060 78060 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 676361 676361 0 0.0
RAM 78060 78060 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 633285 633285 0 0.0
RAM 70488 70488 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616117 616117 0 0.0
RAM 71532 71532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635753 635753 0 0.0
RAM 74076 74076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635753 635753 0 0.0
RAM 74076 74076 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635621 635621 0 0.0
RAM 74540 74540 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 655337 655337 0 0.0
RAM 77084 77084 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 655337 655337 0 0.0
RAM 77084 77084 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 611969 611969 0 0.0
RAM 68628 68628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631829 631829 0 0.0
RAM 71268 71268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631829 631829 0 0.0
RAM 71268 71268 0 0.0
efr32 lock-app BRD4187C FLASH 937264 937264 0 0.0
RAM 159908 159908 0 0.0
BRD4338a FLASH 730592 730584 -8 -0.0
RAM 234720 234720 0 0.0
window-app BRD4187C FLASH 1029856 1029856 0 0.0
RAM 128012 128012 0 0.0
esp32 all-clusters-app c3devkit DRAM 97312 97312 0 0.0
FLASH 1581680 1581680 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 116100 116100 0 0.0
FLASH 1549606 1549606 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4760 4712 -48 -1.0
FLASH 2708747 2648949 -59798 -2.2
RAM 132784 111600 -21184 -16.0
all-clusters-app debug unknown 5568 5520 -48 -0.9
FLASH 5975210 5915380 -59830 -1.0
RAM 531600 510416 -21184 -4.0
all-clusters-minimal-app debug unknown 5464 5416 -48 -0.9
FLASH 5322754 5262924 -59830 -1.1
RAM 242712 221528 -21184 -8.7
bridge-app debug unknown 5480 5432 -48 -0.9
FLASH 4681398 4621568 -59830 -1.3
RAM 221448 200264 -21184 -9.6
chip-tool debug unknown 6120 6088 -32 -0.5
FLASH 13098960 13071254 -27706 -0.2
RAM 596578 596482 -96 -0.0
chip-tool-ipv6only arm64 unknown 21816 21816 0 0.0
FLASH 11162224 11137808 -24416 -0.2
RAM 648256 648160 -96 -0.0
fabric-admin debug unknown 5808 5776 -32 -0.6
FLASH 11387977 11360035 -27942 -0.2
RAM 596362 596266 -96 -0.0
fabric-bridge-app debug unknown 4736 4680 -56 -1.2
FLASH 4506720 4446922 -59798 -1.3
RAM 208632 187480 -21152 -10.1
fabric-sync debug unknown 4976 4936 -40 -0.8
FLASH 5612965 5563829 -49136 -0.9
RAM 483504 467024 -16480 -3.4
lighting-app debug+rpc+ui unknown 6152 6104 -48 -0.8
FLASH 5484513 5424689 -59824 -1.1
RAM 225392 204208 -21184 -9.4
lock-app debug unknown 5416 5384 -32 -0.6
FLASH 4730794 4681612 -49182 -1.0
RAM 207696 191216 -16480 -7.9
ota-provider-app debug unknown 4776 4720 -56 -1.2
FLASH 4359828 4299998 -59830 -1.4
RAM 201336 180184 -21152 -10.5
ota-requestor-app debug unknown 4728 4672 -56 -1.2
FLASH 4497204 4437374 -59830 -1.3
RAM 205920 184768 -21152 -10.3
shell debug unknown 4256 4216 -40 -0.9
FLASH 3005468 2950108 -55360 -1.8
RAM 160552 144040 -16512 -10.3
thermostat-no-ble arm64 unknown 9512 9512 0 0.0
FLASH 4096488 4039896 -56592 -1.4
RAM 246024 228528 -17496 -7.1
tv-app debug unknown 5744 5712 -32 -0.6
FLASH 5951893 5902709 -49184 -0.8
RAM 606904 590424 -16480 -2.7
tv-casting-app debug unknown 5320 5288 -32 -0.6
FLASH 11271725 11243773 -27952 -0.2
RAM 710864 710640 -224 -0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 907464 907464 0 0.0
RAM 142411 142411 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 901920 901920 0 0.0
RAM 124755 124755 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 846084 846084 0 0.0
RAM 141339 141339 0 0.0
nxp contact k32w0+release FLASH 584752 584752 0 0.0
RAM 70876 70876 0 0.0
mcxw71+release FLASH 600208 600208 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 611076 611076 0 0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685512 685512 0 0.0
RAM 48680 48680 0 0.0
lock mcxw71+release FLASH 749024 749024 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646756 1646756 0 0.0
RAM 211576 211576 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1553524 1553524 0 0.0
RAM 208392 208392 0 0.0
light cy8ckit_062s2_43012 FLASH 1439196 1439196 0 0.0
RAM 197144 197144 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467412 1467412 0 0.0
RAM 224704 224704 0 0.0
qpg lighting-app qpg6105+debug FLASH 662340 662340 0 0.0
RAM 105220 105220 0 0.0
lock-app qpg6105+debug FLASH 620136 620136 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459736 459736 0 0.0
RAM 141568 141568 0 0.0
telink bridge-app tl7218x FLASH 665226 665226 0 0.0
RAM 90828 90828 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 621908 621908 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745418 745418 0 0.0
RAM 40496 40496 0 0.0
tl7218x FLASH 753974 753974 0 0.0
RAM 97632 97632 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680678 680678 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709240 709240 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600796 600796 0 0.0
RAM 138912 138912 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788928 788928 0 0.0
RAM 96488 96488 0 0.0
tizen all-clusters-app arm unknown 5104 5104 0 0.0
FLASH 1751708 1751732 24 0.0
RAM 93508 93508 0 0.0
chip-tool-ubsan arm unknown 11396 11396 0 0.0
FLASH 18683110 18683358 248 0.0
RAM 8181084 8181084 0 0.0
github-actions
github-actions43 days ago (edited 43 days ago)

PR #37541: Size comparison from 207cdfa to cfbd633

Full report (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 207cdfa cfbd633 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1096002 1096002 0 0.0
RAM 94906 94906 0 0.0
bl702 lighting-app bl702+eth FLASH 652380 652380 0 0.0
RAM 33633 33633 0 0.0
bl702+wifi FLASH 828614 828614 0 0.0
RAM 22341 22341 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061760 1061760 0 0.0
RAM 32285 32285 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892634 892634 0 0.0
RAM 26912 26912 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 976004 976004 0 0.0
RAM 24752 24752 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815468 815468 0 0.0
RAM 120352 120352 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 824096 824096 0 0.0
RAM 125360 125360 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771248 771248 0 0.0
RAM 113820 113820 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755516 755516 0 0.0
RAM 114028 114028 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538998 538998 0 0.0
RAM 205208 205208 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572870 572870 0 0.0
RAM 205360 205360 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 656597 656597 0 0.0
RAM 75420 75420 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 676457 676457 0 0.0
RAM 78060 78060 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 676457 676457 0 0.0
RAM 78060 78060 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 633381 633381 0 0.0
RAM 70488 70488 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616213 616213 0 0.0
RAM 71532 71532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635849 635849 0 0.0
RAM 74076 74076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635849 635849 0 0.0
RAM 74076 74076 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635717 635717 0 0.0
RAM 74540 74540 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 655433 655433 0 0.0
RAM 77084 77084 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 655433 655433 0 0.0
RAM 77084 77084 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 612065 612065 0 0.0
RAM 68628 68628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631925 631925 0 0.0
RAM 71268 71268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631925 631925 0 0.0
RAM 71268 71268 0 0.0
efr32 lock-app BRD4187C FLASH 937424 937424 0 0.0
RAM 159916 159916 0 0.0
BRD4338a FLASH 731696 731696 0 0.0
RAM 234772 234772 0 0.0
window-app BRD4187C FLASH 1030016 1030016 0 0.0
RAM 128020 128020 0 0.0
esp32 all-clusters-app c3devkit DRAM 97312 97312 0 0.0
FLASH 1581788 1581788 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 116100 116100 0 0.0
FLASH 1549762 1549762 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4712 4712 0 0.0
FLASH 2649195 2649243 48 0.0
RAM 111600 111600 0 0.0
all-clusters-app debug unknown 5520 5520 0 0.0
FLASH 5915628 5915676 48 0.0
RAM 510416 510416 0 0.0
all-clusters-minimal-app debug unknown 5416 5416 0 0.0
FLASH 5263172 5263220 48 0.0
RAM 221528 221528 0 0.0
bridge-app debug unknown 5432 5432 0 0.0
FLASH 4621848 4621864 16 0.0
RAM 200264 200264 0 0.0
chip-tool debug unknown 6088 6088 0 0.0
FLASH 13071502 13071550 48 0.0
RAM 596482 596482 0 0.0
chip-tool-ipv6only arm64 unknown 21816 21816 0 0.0
FLASH 11138080 11138112 32 0.0
RAM 648184 648184 0 0.0
fabric-admin debug unknown 5776 5776 0 0.0
FLASH 11360283 11360331 48 0.0
RAM 596266 596266 0 0.0
fabric-bridge-app debug unknown 4680 4680 0 0.0
FLASH 4447170 4447218 48 0.0
RAM 187480 187480 0 0.0
fabric-sync debug unknown 4936 4936 0 0.0
FLASH 5564101 5564117 16 0.0
RAM 467024 467024 0 0.0
lighting-app debug+rpc+ui unknown 6104 6104 0 0.0
FLASH 5424961 5424977 16 0.0
RAM 204208 204208 0 0.0
lock-app debug unknown 5384 5384 0 0.0
FLASH 4681892 4681908 16 0.0
RAM 191216 191216 0 0.0
ota-provider-app debug unknown 4720 4720 0 0.0
FLASH 4300278 4300294 16 0.0
RAM 180184 180184 0 0.0
ota-requestor-app debug unknown 4672 4672 0 0.0
FLASH 4437654 4437670 16 0.0
RAM 184768 184768 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 2950364 2950412 48 0.0
RAM 144040 144040 0 0.0
thermostat-no-ble arm64 unknown 9512 9512 0 0.0
FLASH 4040184 4040200 16 0.0
RAM 228552 228552 0 0.0
tv-app debug unknown 5712 5712 0 0.0
FLASH 5902981 5902997 16 0.0
RAM 590424 590424 0 0.0
tv-casting-app debug unknown 5288 5288 0 0.0
FLASH 11244045 11244061 16 0.0
RAM 710640 710640 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 907556 907556 0 0.0
RAM 142411 142411 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 901960 901960 0 0.0
RAM 124755 124755 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 846172 846172 0 0.0
RAM 141339 141339 0 0.0
nxp contact k32w0+release FLASH 585072 585072 0 0.0
RAM 70876 70876 0 0.0
mcxw71+release FLASH 600544 600544 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 611380 611380 0 0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685848 685848 0 0.0
RAM 48680 48680 0 0.0
lock mcxw71+release FLASH 749360 749360 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646868 1646868 0 0.0
RAM 211576 211576 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1553620 1553620 0 0.0
RAM 208392 208392 0 0.0
light cy8ckit_062s2_43012 FLASH 1439308 1439308 0 0.0
RAM 197144 197144 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467508 1467508 0 0.0
RAM 224704 224704 0 0.0
qpg lighting-app qpg6105+debug FLASH 662436 662436 0 0.0
RAM 105220 105220 0 0.0
lock-app qpg6105+debug FLASH 620232 620232 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 460008 460008 0 0.0
RAM 141568 141568 0 0.0
telink bridge-app tl7218x FLASH 665266 665266 0 0.0
RAM 90828 90828 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 621948 621948 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745458 745458 0 0.0
RAM 40496 40496 0 0.0
tl7218x FLASH 754014 754014 0 0.0
RAM 97632 97632 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680718 680718 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709280 709280 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600836 600836 0 0.0
RAM 138912 138912 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788968 788968 0 0.0
RAM 96488 96488 0 0.0
tizen all-clusters-app arm unknown 5104 5104 0 0.0
FLASH 1751824 1751848 24 0.0
RAM 93508 93508 0 0.0
chip-tool-ubsan arm unknown 11396 11396 0 0.0
FLASH 18683262 18683286 24 0.0
RAM 8181192 8181192 0 0.0
bzbarsky-apple
bzbarsky-apple requested changes on 2025-02-15
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
46 ~IntrusiveSingleLinkedList() { VerifyOrDie(!IsInList()); }
47
48 // IMPLEMENTATION DETAILS:
49
// Since `mNext == this` is used as a marker for "is in a list",
bzbarsky-apple42 days ago
Suggested change
// Since `mNext == this` is used as a marker for "is in a list",
// Since `mNext == this` is used as a marker for "is not in a list",
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
71 return *this;
72 }
73
74
/// Determines if this object is part of a linked list already or not.
bzbarsky-apple42 days ago
Suggested change
/// Determines if this object is part of a linked list already or not.
/// Determines whether this object is part of a linked list already.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
41template <typename SELF>
42class IntrusiveSingleLinkedList
43{
44
public:
bzbarsky-apple42 days ago

Seems like almost everything on this class should be protected, not public?

andy3141539 days ago

Only if I make friend classes. I am trying hard to avoid friend since historically the pattern of "protect the outside by using protected/private and friend" just made code harder to use.

I need the Registry to be able to control the linked list. Realistically we want the registry to own the storage, the fact that we use an intrusive list is just to make it cheaper to create pre-allocated RAM storage (instead of some std::list I now can use potentially static allocated storage per cluster instance).

andy3141530 days ago

This intrusiveness is now gone.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
85 return mNext;
86 }
87
88
/// Sets the "next" pointer when the SELF is assumed to be
89
/// part of a SINGLE linked list.
bzbarsky-apple42 days ago👍 1

So this assumes that value is also already part of a list (possibly of length 1)? Otherwise I don't quite understand this API.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
107
108} // namespace detail
109
110
/// Defines an active cluster on an endpoint.
bzbarsky-apple42 days ago

What does "active" mean here?

andy3141539 days ago

Rephrased. I have a hard time writing something actually meaningful beside the class name ...

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
113///
114/// Implementation note:
115/// - this class is highly coupled with ServerClusterInterfaceRegistry. The fact that it
116
/// derives from `detail::IntrusiveSingleLinkedList` is NOT a public API and is only done
bzbarsky-apple42 days ago

I have to ask: should this be protected inheritance with ServerClusterInterfaceRegistry marked as friend?

andy3141539 days ago

I did not do this on purpose: we had the hide away things and use friend throughout our codebase and it makes the code hard to maintain and test. AAI and CHI do not hide away their intrusive pointers either so this is no worse, except that this time things are documented.

I expect we may iterate here - I have already received feedback that this registry is for the convenience of the CodegenDataModel and maybe for non-codegen we could find a way to not pay this price.

andy3141530 days ago

Intrusive list is now gone.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
130 ///////////////////////////////////// Cluster Metadata Support //////////////////////////////////////////////////
131 [[nodiscard]] virtual ClusterId GetClusterId() const = 0;
132
133
// Every cluster must have a data version. Base class implementation to avoid
bzbarsky-apple42 days ago
Suggested change
// Every cluster must have a data version. Base class implementation to avoid
// Every cluster instance must have a data version. Base class implementation to avoid
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
130 ///////////////////////////////////// Cluster Metadata Support //////////////////////////////////////////////////
131 [[nodiscard]] virtual ClusterId GetClusterId() const = 0;
132
133
// Every cluster must have a data version. Base class implementation to avoid
bzbarsky-apple42 days ago

I don't understand what "Base class implementation" means here. This is a pure virtual with no implementation.

andy3141539 days ago

I originally had this as part of an implementation however review feedback asked me to make this pure virtual, so now my comments are all wrong. Will fix them.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
144 //
145 [[nodiscard]] virtual DataVersion GetDataVersion() const = 0;
146
147
/// Cluster flags can be overridden, however most clusters likely have a default of "nothing special".
148
///
149
/// Default implementation returns a 0/empty quality list.
bzbarsky-apple42 days ago

There is no default implementation here. This is a pure virtual.

andy3141539 days ago

I moved things as part of review comments and now everything is inside a StandardServerCluster ... replacing comments.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
151
152 ///////////////////////////////////// Attribute Support ////////////////////////////////////////////////////////
153
154
/// ReadAttribute MUST be done on a valid attribute path. `request.path` is expected to have `GetClusterId` as the cluster
bzbarsky-apple42 days ago

"valid" is a confusing term. Does that mean actually "valid" in spec terms (e.g. the ids in the path are valid values that could exist)? Or does it mean "existent" (spec term) as in "someone has checked that this path identifies an actual cluster instance, and that this cluster instance has the attribute identified by the attribute ID"?

I would strongly suggest avoiding all use of the word "valid" in API documentation, due to the multiple meanings it can have and using more precise terminology.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
155 /// id as well as an attribute that is included in a `Attributes` call.
156 ///
157 /// This MUST HANDLE the following global attributes:
158
/// - FeatureMap::Id - generally 0 as a default
bzbarsky-apple42 days ago

This "0" bit really depends on the cluster. I'm not sure why this is in the API documentation. Just say that this is the feature map for this cluster instance?

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
158 /// - FeatureMap::Id - generally 0 as a default
159 /// - ClusterRevision::Id - this is implementation defined
160 ///
161
/// This call WILL NOT be called for attributes that can be built out of cluster metadata.
bzbarsky-apple42 days ago
Suggested change
/// This call WILL NOT be called for attributes that can be built out of cluster metadata.
/// This function WILL NOT be called for attributes that can be built out of cluster metadata.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
167 virtual DataModel::ActionReturnStatus ReadAttribute(const DataModel::ReadAttributeRequest & request,
168 AttributeValueEncoder & encoder) = 0;
169
170
/// WriteAttribute MUST be done on a valid attribute path. `request.path` is expected to have `GetClusterId` as the cluster
bzbarsky-apple42 days ago👍 1

See comments above about not using "valid".

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
116/// derives from `detail::IntrusiveSingleLinkedList` is NOT a public API and is only done
117/// for `ServerClusterInterfaceRegistry` usage. Code may be updated to support different
118/// implementations for storing interface.
119
class ServerClusterInterface : public detail::IntrusiveSingleLinkedList<ServerClusterInterface>
bzbarsky-apple42 days ago

Followup, but if the intent is that you have specific cluster instances that you use with a specific provider, then why can't the provider that needs things to be a list declare a "you must inherit from this thing to be usable with me" superclass, and then cluster instances that are used with that provider would inherit from it. If the issue is that we need to recover a ServerClusterInterface() from a list item, that could be supported by a virtual "GetSelf()" kind of thing on the thing that's being inherited from....

This needs some thought, which is why it's a followup.

andy3141539 days ago

Similar feedback received from @mspang as well: to make this somehow configurable.

I found no direct way to cleanly do this, hence I would prefer followup. My goal would be that the SDK provides cluster implementations that are just usable by anymore as is, so that people do not implement their own. In those cases, I need these implementations to somehow be insertable in any provider and I am trying to avoid #define because that would effectively create different linked things. I am considering templates or other ways (maybe users inherit) ... but still TBD and hoping separatable concern.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.cpp
107 {
108 if (current->GetClusterId() == path.mClusterId)
109 {
110
// takes the item out of the current list and return it.
bzbarsky-apple42 days ago
Suggested change
// takes the item out of the current list and return it.
// take the item out of the current list and return it.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.cpp
137 return nullptr;
138}
139
140
void ServerClusterInterfaceRegistry::DestroySingleLinkedList(ServerClusterInterface * clusters)
bzbarsky-apple42 days ago👍 1

This is not destroying anything. It's just removing all items from the list. Should this be more of a "Clear" than a "Destroy"? Or "Unlink"?

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.cpp
156
157 if (mCachedClusterEndpointId == endpointId)
158 {
159
// all clusters on the given endpoints will be destroyed.
bzbarsky-apple42 days ago
Suggested change
// all clusters on the given endpoints will be destroyed.
// all clusters on the given endpoint will be unregistered.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.cpp
173 }
174 }
175
176
// not found, search dynamic. Special handling for first;
bzbarsky-apple42 days ago

Could have a bit less code duplication like so:

DynamicEndpointClusters ** currentSlot = &mDynamicEndpoints;
while (*currentSlot) {
    if ((*currentSlot)->endpointId == endpointId) {
        DynamicEndpointClusters * value = *currentSlot;
        *currentSlot = value->next;
        DestroySingleLinkedList(value->firstCluster);
        Platform::Delete(value);
        return;
    }

    currentSlot = &((*currentSlot)->next);
}

but admittedly this does take a bit more effort to understand....

andy3141539 days ago

Reduced some code duplication .... see if you like this one. It adds one extra if, however maybe the code size is comparable to your version (less indirection) and seems somewhat easier to read.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.h
24namespace chip {
25namespace app {
26
27
/// Maintains mapping clusters registered on specific endpoints.
bzbarsky-apple42 days ago
Suggested change
/// Maintains mapping clusters registered on specific endpoints.
/// Allows registering and retrieving ServerClusterInterface instances for specific cluster paths.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.h
30public:
31 ~ServerClusterInterfaceRegistry();
32
33
/// Associate a specific interface for the given endpoint.
bzbarsky-apple42 days ago
Suggested change
/// Associate a specific interface for the given endpoint.
/// Associate a specific interface with the given endpoint.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.h
32
33 /// Associate a specific interface for the given endpoint.
34 ///
35
/// There MUST be a single cluster registration for any given endpoint
bzbarsky-apple42 days ago

This statement is just false. There can be lots of cluster registrations for any given endpoint. What is this trying to say?

andy3141539 days ago

rephrased. I meant to say that one cannot register two distinct interfaces to handle the same endpoint/cluster path (if someone wants to have one implementation to handle one subset of attributes/commands and nother implementation to handle another subset ... that won't work). In practice this means that we cannot separate out AAI and CHI as 2 separate interfaces and they have to be combined into one when converting.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.h
36 /// and Register will error out if an existing cluster interface `cluster` already
37 /// exists on the given endpoint for the given clusterid.
38 ///
39
/// Registrations need a valid endpointid and cluster MUST return a valid clusterid.
bzbarsky-apple42 days ago
Suggested change
/// Registrations need a valid endpointid and cluster MUST return a valid clusterid.
/// Registrations need a valid endpoint id and cluster MUST return a valid cluster id.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.h
42 /// Remove an existing registration for a given endpoint/cluster path.
43 ///
44 /// Returns the previous registration if any exists (or nullptr if nothing
45
/// to register)
bzbarsky-apple42 days ago
Suggested change
/// to register)
/// to unregister)
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.h
45 /// to register)
46 ServerClusterInterface * Unregister(const ConcreteClusterPath & path);
47
48
/// Return the given registered interface or nullptr if one does not exist
bzbarsky-apple42 days ago
Suggested change
/// Return the given registered interface or nullptr if one does not exist
/// Return the interface registered for the given cluster path or nullptr if one does not exist
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.h
56 static ServerClusterInterfaceRegistry & Instance();
57
58private:
59
// Some pre-allocation. Minimal clusters have 2 endpoints: root/0 and
bzbarsky-apple42 days ago
Suggested change
// Some pre-allocation. Minimal clusters have 2 endpoints: root/0 and
// Some pre-allocation. Minimal devices have 2 endpoints: root/0 and
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.h
63 /// tracks clusters registered to a particular endpoint
64 struct EndpointClusters
65 {
66
// The endpoint ID for this registration. kInvalidEndpointId means
bzbarsky-apple42 days ago👍 1

I wish this documentation were consistent about "endpoint ID" vs "endpointid" vs "endpoint id" vs "endpointId". could we make it so, please?

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.h
79 };
80
81 // Serves as a pool of pre-allocated clusters to avoid HEAP
82
std::array<EndpointClusters, kPreallocatedEndpointClusters> mPreallocateEndpoints;
bzbarsky-apple42 days ago
Suggested change
std::array<EndpointClusters, kPreallocatedEndpointClusters> mPreallocateEndpoints;
std::array<EndpointClusters, kPreallocatedEndpointClusters> mPreallocatedEndpoints;
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.h
58private:
59 // Some pre-allocation. Minimal clusters have 2 endpoints: root/0 and
60 // some other endpoint for the actual device.
61
static constexpr size_t kPreallocatedEndpointClusters = 2;
bzbarsky-apple42 days ago

Followup: if we make this compile-time-configurable, fixed-function devices could just set this to their actual endpoint count and avoid ever having to deal with the heap bits...

andy3141539 days ago

Agree... also torn here: I am trying to avoid per-application settings (since this is what causes us to have copy & paste applications for examples) ... then again we have other global settings that are changed for various apps.

Leaving for followup for now and we can see later. I imagine a world where we have the ServerClusterInterfaceRegistry for codegen/ember only and in that case for code backed clusters I don't need this anymore.

andy3141529 days ago

Static/dynamic is now gone.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.h
84 // Dynamic allocated endpoint cluters, once static allocation is used up
85 DynamicEndpointClusters * mDynamicEndpoints = nullptr;
86
87
// a one-element cache to speed up finding per endpoint
bzbarsky-apple42 days ago
Suggested change
// a one-element cache to speed up finding per endpoint
// a one-element cache to speed up finding the cluster list for an endpoint.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.h
87 // a one-element cache to speed up finding per endpoint
88 EndpointClusters * mEndpointClustersCache = nullptr;
89
90
// a one-element cache to speed up finding clusters.
bzbarsky-apple42 days ago
Suggested change
// a one-element cache to speed up finding clusters.
// a one-element cache to speed up finding a cluster within an endpoint.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/StandardServerCluster.h
32/// - GetClusterId (since every implementation is for different clusters)
33///
34///
35
class StandardServerCluster : public ServerClusterInterface
bzbarsky-apple42 days ago

Is this really "Standard"? Or is it more of a "DefaultServerCluster"?

andy3141539 days ago

I had just picked a filler word to have a subclass. Default sounds good ... it is a with default implementations bit.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/StandardServerCluster.h
43 StandardServerCluster & operator=(const StandardServerCluster & other) = default;
44 StandardServerCluster & operator=(StandardServerCluster && other) = default;
45
46
void IncreaseDataVersion() { mDataVersion++; }
bzbarsky-apple42 days ago

Should be protected, I would think.

andy3141539 days ago (edited 30 days ago)

In theory yes, since clusters are supposed to manage their own verrsions. I would however suggest transitionally no (i.e. keep public):

  • testing is slightly easier (not as important)
  • DataModel currently wants a Temporary_ReportAttributeChanged(path) that is supposed to increase data version for a random path .... that should not be used over time anymore, however if I keep this public I have a much easier time keeping that "working as is".
andy3141529 days ago

In hindsight the clusters generally have to take the interface and not the subclass, so protected is probably fine. I will make the change.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/StandardServerCluster.h
57 /// Must only be implemented if support for any non-global attributes
58 /// is required.
59 ///
60
/// Default implementation just returns the above global attributes.
bzbarsky-apple42 days ago

This could use some discussion about how a subclass could/should implement this. For example, can it add all its non-global attributes to the builder and then call this superclass method to add the global ones? If it can, we should say that, because that seems like a good idea for subclasses to do (though of course they don't have to). If it can't, we should point that out and say what it should generally do instead.

andy3141539 days ago

I was torn here: we could provide this as it would be 100% reusable. However then I have to always return this list in RAM where as the current implementation allows for in-flash return. The global attributes contain 5 items and if we pack the content, they take 8 bytes each, so the overhead in flash would be 40 bytes per cluster in flash if we decide not to use RAM at all.

So my choice was:

  • let subclasses figure it out (like right now) and then we hard-code everything including extra 40 bytes overhead for every implemented cluster
  • provide convenience "append" methods

I opted to not provide the append since I can always add it later however once added I cannot remove.

andy3141530 days ago

I will make the default implementation provide a global getter in future PRs as that seems to save flash.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/StandardServerCluster.h
38 StandardServerCluster();
39 virtual ~StandardServerCluster() = default;
40
41
StandardServerCluster(const StandardServerCluster & other) = default;
42
StandardServerCluster(StandardServerCluster && other) = default;
43
StandardServerCluster & operator=(const StandardServerCluster & other) = default;
44
StandardServerCluster & operator=(StandardServerCluster && other) = default;
bzbarsky-apple42 days ago👍 1

Do we have use cases for copying cluster instances?

If we do: this defaulting would copy the data version, which is probably not the right behavior per spec, since distinct instances are all supposed to have randomly initialized data versions, no?

github-actions
github-actions39 days ago (edited 39 days ago)

PR #37541: Size comparison from 08535fd to 0785397

Full report (11 builds for cc13x4_26x4, cc32xx, qpg, stm32, tizen)
platform target config section 08535fd 0785397 change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815244 815244 0 0.0
RAM 120256 120256 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 824156 824156 0 0.0
RAM 125352 125352 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771024 771024 0 0.0
RAM 113724 113724 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755300 755300 0 0.0
RAM 113932 113932 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538730 538730 0 0.0
RAM 205112 205112 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572886 572886 0 0.0
RAM 205360 205360 0 0.0
qpg lighting-app qpg6105+debug FLASH 662132 662132 0 0.0
RAM 105116 105116 0 0.0
lock-app qpg6105+debug FLASH 620240 620240 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459776 459776 0 0.0
RAM 141472 141472 0 0.0
tizen all-clusters-app arm unknown 5076 5076 0 0.0
FLASH 1750404 1750428 24 0.0
RAM 93260 93260 0 0.0
chip-tool-ubsan arm unknown 11476 11476 0 0.0
FLASH 18960222 18960246 24 0.0
RAM 8296776 8296776 0 0.0
github-actions
github-actions39 days ago (edited 39 days ago)

PR #37541: Size comparison from 08535fd to b2b80a1

Full report (69 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 08535fd b2b80a1 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1095108 1095108 0 0.0
RAM 94802 94802 0 0.0
bl702 lighting-app bl702+eth FLASH 651554 651554 0 0.0
RAM 33509 33509 0 0.0
bl702+wifi FLASH 827718 827718 0 0.0
RAM 22233 22233 0 0.0
bl706+mfd+rpc+littlefs FLASH 1060880 1060880 0 0.0
RAM 32157 32157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892066 892066 0 0.0
RAM 26896 26896 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 974962 974962 0 0.0
RAM 24644 24644 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815244 815244 0 0.0
RAM 120256 120256 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 824156 824156 0 0.0
RAM 125352 125352 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771024 771024 0 0.0
RAM 113724 113724 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755300 755300 0 0.0
RAM 113932 113932 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538730 538730 0 0.0
RAM 205112 205112 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572886 572886 0 0.0
RAM 205360 205360 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 656373 656373 0 0.0
RAM 75324 75324 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 676233 676233 0 0.0
RAM 77964 77964 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 676233 676233 0 0.0
RAM 77964 77964 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 633157 633157 0 0.0
RAM 70392 70392 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616237 616237 0 0.0
RAM 71532 71532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635873 635873 0 0.0
RAM 74076 74076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635873 635873 0 0.0
RAM 74076 74076 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635733 635733 0 0.0
RAM 74540 74540 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 655449 655449 0 0.0
RAM 77084 77084 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 655449 655449 0 0.0
RAM 77084 77084 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 612081 612081 0 0.0
RAM 68628 68628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631941 631941 0 0.0
RAM 71268 71268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631941 631941 0 0.0
RAM 71268 71268 0 0.0
efr32 lock-app BRD4187C FLASH 937712 937712 0 0.0
RAM 159916 159916 0 0.0
BRD4338a FLASH 731696 731696 0 0.0
RAM 234772 234772 0 0.0
window-app BRD4187C FLASH 1030304 1030304 0 0.0
RAM 128020 128020 0 0.0
esp32 all-clusters-app c3devkit DRAM 97312 97312 0 0.0
FLASH 1581862 1581862 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 116100 116100 0 0.0
FLASH 1549830 1549830 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4720 4720 0 0.0
FLASH 2648521 2648569 48 0.0
RAM 111088 111088 0 0.0
all-clusters-app debug unknown 5528 5528 0 0.0
FLASH 5919896 5919944 48 0.0
RAM 513200 513200 0 0.0
all-clusters-minimal-app debug unknown 5424 5424 0 0.0
FLASH 5265026 5265074 48 0.0
RAM 221080 221080 0 0.0
bridge-app debug unknown 5440 5440 0 0.0
FLASH 4623704 4623720 16 0.0
RAM 199784 199784 0 0.0
chip-tool debug unknown 6096 6096 0 0.0
FLASH 13287779 13287827 48 0.0
RAM 602464 602464 0 0.0
chip-tool-ipv6only arm64 unknown 21944 21944 0 0.0
FLASH 11312192 11312224 32 0.0
RAM 654248 654248 0 0.0
fabric-admin debug unknown 5784 5784 0 0.0
FLASH 11554993 11555041 48 0.0
RAM 602248 602248 0 0.0
fabric-bridge-app debug unknown 4688 4688 0 0.0
FLASH 4449028 4449076 48 0.0
RAM 187016 187016 0 0.0
fabric-sync debug unknown 4944 4944 0 0.0
FLASH 5567637 5567653 16 0.0
RAM 469920 469920 0 0.0
lighting-app debug+rpc+ui unknown 6152 6152 0 0.0
FLASH 5513121 5513137 16 0.0
RAM 203952 203952 0 0.0
lock-app debug unknown 5392 5392 0 0.0
FLASH 4687138 4687154 16 0.0
RAM 191112 191112 0 0.0
ota-provider-app debug unknown 4728 4728 0 0.0
FLASH 4309350 4309366 16 0.0
RAM 179832 179832 0 0.0
ota-requestor-app debug unknown 4680 4680 0 0.0
FLASH 4439476 4439492 16 0.0
RAM 184320 184320 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 2947532 2947580 48 0.0
RAM 143640 143640 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4041032 4041048 16 0.0
RAM 228096 228096 0 0.0
tv-app debug unknown 5720 5720 0 0.0
FLASH 5906533 5906549 16 0.0
RAM 593320 593320 0 0.0
tv-casting-app debug unknown 5296 5296 0 0.0
FLASH 11458253 11458269 16 0.0
RAM 717632 717632 0 0.0
nxp contact k32w0+release FLASH 585152 585152 0 0.0
RAM 70876 70876 0 0.0
mcxw71+release FLASH 600632 600632 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 611140 611140 0 0.0
RAM 70164 70164 0 0.0
k32w1+release FLASH 685624 685624 0 0.0
RAM 48584 48584 0 0.0
lock mcxw71+release FLASH 749456 749456 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646092 1646092 0 0.0
RAM 211472 211472 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1552860 1552860 0 0.0
RAM 208288 208288 0 0.0
light cy8ckit_062s2_43012 FLASH 1438532 1438532 0 0.0
RAM 197040 197040 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467436 1467436 0 0.0
RAM 224704 224704 0 0.0
qpg lighting-app qpg6105+debug FLASH 662132 662132 0 0.0
RAM 105116 105116 0 0.0
lock-app qpg6105+debug FLASH 620240 620240 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459776 459776 0 0.0
RAM 141472 141472 0 0.0
telink bridge-app tl7218x FLASH 664938 664938 0 0.0
RAM 90728 90728 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 621986 621986 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745122 745122 0 0.0
RAM 40396 40396 0 0.0
tl7218x FLASH 753684 753684 0 0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680754 680754 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709316 709316 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600496 600496 0 0.0
RAM 138812 138812 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788638 788638 0 0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5076 5076 0 0.0
FLASH 1750404 1750428 24 0.0
RAM 93260 93260 0 0.0
chip-tool-ubsan arm unknown 11476 11476 0 0.0
FLASH 18960222 18960246 24 0.0
RAM 8296776 8296776 0 0.0
github-actions
github-actions39 days ago (edited 39 days ago)

PR #37541: Size comparison from 5621ff6 to c65e9a3

Full report (11 builds for cc13x4_26x4, cc32xx, qpg, stm32, tizen)
platform target config section 5621ff6 c65e9a3 change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815244 815244 0 0.0
RAM 120256 120256 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 824156 824156 0 0.0
RAM 125352 125352 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771024 771024 0 0.0
RAM 113724 113724 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755300 755300 0 0.0
RAM 113932 113932 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538730 538730 0 0.0
RAM 205112 205112 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572886 572886 0 0.0
RAM 205360 205360 0 0.0
qpg lighting-app qpg6105+debug FLASH 662132 662132 0 0.0
RAM 105116 105116 0 0.0
lock-app qpg6105+debug FLASH 620240 620240 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459776 459776 0 0.0
RAM 141472 141472 0 0.0
tizen all-clusters-app arm unknown 5076 5076 0 0.0
FLASH 1750404 1750428 24 0.0
RAM 93260 93260 0 0.0
chip-tool-ubsan arm unknown 11476 11476 0 0.0
FLASH 18960222 18960246 24 0.0
RAM 8296776 8296776 0 0.0
github-actions
github-actions39 days ago (edited 38 days ago)

PR #37541: Size comparison from 5621ff6 to 33aaf5c

Full report (69 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 5621ff6 33aaf5c change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1095108 1095108 0 0.0
RAM 94802 94802 0 0.0
bl702 lighting-app bl702+eth FLASH 651554 651554 0 0.0
RAM 33509 33509 0 0.0
bl702+wifi FLASH 827718 827718 0 0.0
RAM 22233 22233 0 0.0
bl706+mfd+rpc+littlefs FLASH 1060880 1060880 0 0.0
RAM 32157 32157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892066 892066 0 0.0
RAM 26896 26896 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 974962 974962 0 0.0
RAM 24644 24644 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815244 815244 0 0.0
RAM 120256 120256 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 824156 824156 0 0.0
RAM 125352 125352 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771024 771024 0 0.0
RAM 113724 113724 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755300 755300 0 0.0
RAM 113932 113932 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538730 538730 0 0.0
RAM 205112 205112 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572886 572886 0 0.0
RAM 205360 205360 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 656373 656373 0 0.0
RAM 75324 75324 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 676233 676233 0 0.0
RAM 77964 77964 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 676233 676233 0 0.0
RAM 77964 77964 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 633157 633157 0 0.0
RAM 70392 70392 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616237 616237 0 0.0
RAM 71532 71532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635873 635873 0 0.0
RAM 74076 74076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635873 635873 0 0.0
RAM 74076 74076 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635733 635733 0 0.0
RAM 74540 74540 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 655449 655449 0 0.0
RAM 77084 77084 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 655449 655449 0 0.0
RAM 77084 77084 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 612081 612081 0 0.0
RAM 68628 68628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631941 631941 0 0.0
RAM 71268 71268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631941 631941 0 0.0
RAM 71268 71268 0 0.0
efr32 lock-app BRD4187C FLASH 937712 937712 0 0.0
RAM 159916 159916 0 0.0
BRD4338a FLASH 731696 731712 16 0.0
RAM 234772 234772 0 0.0
window-app BRD4187C FLASH 1030304 1030304 0 0.0
RAM 128020 128020 0 0.0
esp32 all-clusters-app c3devkit DRAM 97312 97312 0 0.0
FLASH 1581862 1581862 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 116100 116100 0 0.0
FLASH 1549830 1549830 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4720 4720 0 0.0
FLASH 2648521 2648569 48 0.0
RAM 111088 111088 0 0.0
all-clusters-app debug unknown 5528 5528 0 0.0
FLASH 5919896 5919944 48 0.0
RAM 513200 513200 0 0.0
all-clusters-minimal-app debug unknown 5424 5424 0 0.0
FLASH 5265026 5265074 48 0.0
RAM 221080 221080 0 0.0
bridge-app debug unknown 5440 5440 0 0.0
FLASH 4623704 4623720 16 0.0
RAM 199784 199784 0 0.0
chip-tool debug unknown 6096 6096 0 0.0
FLASH 13287779 13287827 48 0.0
RAM 602464 602464 0 0.0
chip-tool-ipv6only arm64 unknown 21944 21944 0 0.0
FLASH 11312192 11312224 32 0.0
RAM 654248 654248 0 0.0
fabric-admin debug unknown 5784 5784 0 0.0
FLASH 11554993 11555041 48 0.0
RAM 602248 602248 0 0.0
fabric-bridge-app debug unknown 4688 4688 0 0.0
FLASH 4449028 4449076 48 0.0
RAM 187016 187016 0 0.0
fabric-sync debug unknown 4944 4944 0 0.0
FLASH 5567637 5567653 16 0.0
RAM 469920 469920 0 0.0
lighting-app debug+rpc+ui unknown 6152 6152 0 0.0
FLASH 5513121 5513137 16 0.0
RAM 203952 203952 0 0.0
lock-app debug unknown 5392 5392 0 0.0
FLASH 4687138 4687154 16 0.0
RAM 191112 191112 0 0.0
ota-provider-app debug unknown 4728 4728 0 0.0
FLASH 4309350 4309366 16 0.0
RAM 179832 179832 0 0.0
ota-requestor-app debug unknown 4680 4680 0 0.0
FLASH 4439476 4439492 16 0.0
RAM 184320 184320 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 2947532 2947580 48 0.0
RAM 143640 143640 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4041032 4041048 16 0.0
RAM 228096 228096 0 0.0
tv-app debug unknown 5720 5720 0 0.0
FLASH 5906533 5906549 16 0.0
RAM 593320 593320 0 0.0
tv-casting-app debug unknown 5296 5296 0 0.0
FLASH 11458253 11458269 16 0.0
RAM 717632 717632 0 0.0
nxp contact k32w0+release FLASH 585152 585152 0 0.0
RAM 70876 70876 0 0.0
mcxw71+release FLASH 600632 600632 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 611140 611140 0 0.0
RAM 70164 70164 0 0.0
k32w1+release FLASH 685624 685624 0 0.0
RAM 48584 48584 0 0.0
lock mcxw71+release FLASH 749456 749456 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646092 1646092 0 0.0
RAM 211472 211472 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1552860 1552860 0 0.0
RAM 208288 208288 0 0.0
light cy8ckit_062s2_43012 FLASH 1438532 1438532 0 0.0
RAM 197040 197040 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467436 1467436 0 0.0
RAM 224704 224704 0 0.0
qpg lighting-app qpg6105+debug FLASH 662132 662132 0 0.0
RAM 105116 105116 0 0.0
lock-app qpg6105+debug FLASH 620240 620240 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459776 459776 0 0.0
RAM 141472 141472 0 0.0
telink bridge-app tl7218x FLASH 664938 664938 0 0.0
RAM 90728 90728 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 621986 621986 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745122 745122 0 0.0
RAM 40396 40396 0 0.0
tl7218x FLASH 753684 753684 0 0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680754 680754 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709316 709316 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600496 600496 0 0.0
RAM 138812 138812 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788638 788638 0 0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5076 5076 0 0.0
FLASH 1750404 1750428 24 0.0
RAM 93260 93260 0 0.0
chip-tool-ubsan arm unknown 11476 11476 0 0.0
FLASH 18960222 18960246 24 0.0
RAM 8296776 8296776 0 0.0
github-actions
github-actions38 days ago (edited 38 days ago)

PR #37541: Size comparison from 00c6f4e to 265ed70

Full report (72 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 00c6f4e 265ed70 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1095108 1095108 0 0.0
RAM 94802 94802 0 0.0
bl702 lighting-app bl702+eth FLASH 651554 651554 0 0.0
RAM 33509 33509 0 0.0
bl702+wifi FLASH 827718 827718 0 0.0
RAM 22233 22233 0 0.0
bl706+mfd+rpc+littlefs FLASH 1060880 1060880 0 0.0
RAM 32157 32157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892066 892066 0 0.0
RAM 26896 26896 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 974962 974962 0 0.0
RAM 24644 24644 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815244 815244 0 0.0
RAM 120256 120256 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 824156 824156 0 0.0
RAM 125352 125352 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771024 771024 0 0.0
RAM 113724 113724 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755300 755300 0 0.0
RAM 113932 113932 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538730 538730 0 0.0
RAM 205112 205112 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572886 572886 0 0.0
RAM 205360 205360 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 656373 656373 0 0.0
RAM 75324 75324 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 676233 676233 0 0.0
RAM 77964 77964 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 676233 676233 0 0.0
RAM 77964 77964 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 633157 633157 0 0.0
RAM 70392 70392 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616237 616237 0 0.0
RAM 71532 71532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635873 635873 0 0.0
RAM 74076 74076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635873 635873 0 0.0
RAM 74076 74076 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635733 635733 0 0.0
RAM 74540 74540 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 655449 655449 0 0.0
RAM 77084 77084 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 655449 655449 0 0.0
RAM 77084 77084 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 612081 612081 0 0.0
RAM 68628 68628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631941 631941 0 0.0
RAM 71268 71268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631941 631941 0 0.0
RAM 71268 71268 0 0.0
efr32 lock-app BRD4187C FLASH 937712 937712 0 0.0
RAM 159916 159916 0 0.0
BRD4338a FLASH 731712 731712 0 0.0
RAM 234772 234772 0 0.0
window-app BRD4187C FLASH 1030304 1030304 0 0.0
RAM 128020 128020 0 0.0
esp32 all-clusters-app c3devkit DRAM 97312 97312 0 0.0
FLASH 1581862 1581862 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 116100 116100 0 0.0
FLASH 1549830 1549830 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4720 4720 0 0.0
FLASH 2648521 2648569 48 0.0
RAM 111088 111088 0 0.0
all-clusters-app debug unknown 5528 5528 0 0.0
FLASH 5919896 5919944 48 0.0
RAM 513200 513200 0 0.0
all-clusters-minimal-app debug unknown 5424 5424 0 0.0
FLASH 5265026 5265074 48 0.0
RAM 221080 221080 0 0.0
bridge-app debug unknown 5440 5440 0 0.0
FLASH 4623704 4623720 16 0.0
RAM 199784 199784 0 0.0
chip-tool debug unknown 6096 6096 0 0.0
FLASH 13287779 13287827 48 0.0
RAM 602464 602464 0 0.0
chip-tool-ipv6only arm64 unknown 21944 21944 0 0.0
FLASH 11312192 11312224 32 0.0
RAM 654248 654248 0 0.0
fabric-admin debug unknown 5784 5784 0 0.0
FLASH 11554993 11555041 48 0.0
RAM 602248 602248 0 0.0
fabric-bridge-app debug unknown 4688 4688 0 0.0
FLASH 4449024 4449072 48 0.0
RAM 187016 187016 0 0.0
fabric-sync debug unknown 4944 4944 0 0.0
FLASH 5567621 5567637 16 0.0
RAM 469920 469920 0 0.0
lighting-app debug+rpc+ui unknown 6152 6152 0 0.0
FLASH 5513121 5513137 16 0.0
RAM 203952 203952 0 0.0
lock-app debug unknown 5392 5392 0 0.0
FLASH 4687138 4687154 16 0.0
RAM 191112 191112 0 0.0
ota-provider-app debug unknown 4728 4728 0 0.0
FLASH 4309350 4309366 16 0.0
RAM 179832 179832 0 0.0
ota-requestor-app debug unknown 4680 4680 0 0.0
FLASH 4439476 4439492 16 0.0
RAM 184320 184320 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 2947532 2947580 48 0.0
RAM 143640 143640 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4041032 4041048 16 0.0
RAM 228096 228096 0 0.0
tv-app debug unknown 5720 5720 0 0.0
FLASH 5906533 5906549 16 0.0
RAM 593320 593320 0 0.0
tv-casting-app debug unknown 5296 5296 0 0.0
FLASH 11458253 11458269 16 0.0
RAM 717632 717632 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 907328 907328 0 0.0
RAM 142315 142315 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 901660 901660 0 0.0
RAM 124663 124663 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 845948 845948 0 0.0
RAM 141243 141243 0 0.0
nxp contact k32w0+release FLASH 585152 585152 0 0.0
RAM 70876 70876 0 0.0
mcxw71+release FLASH 600632 600632 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 611140 611140 0 0.0
RAM 70164 70164 0 0.0
k32w1+release FLASH 685624 685624 0 0.0
RAM 48584 48584 0 0.0
lock mcxw71+release FLASH 749456 749456 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646092 1646092 0 0.0
RAM 211472 211472 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1552860 1552860 0 0.0
RAM 208288 208288 0 0.0
light cy8ckit_062s2_43012 FLASH 1438532 1438532 0 0.0
RAM 197040 197040 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467436 1467436 0 0.0
RAM 224704 224704 0 0.0
qpg lighting-app qpg6105+debug FLASH 662132 662132 0 0.0
RAM 105116 105116 0 0.0
lock-app qpg6105+debug FLASH 620240 620240 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459776 459776 0 0.0
RAM 141472 141472 0 0.0
telink bridge-app tl7218x FLASH 664938 664938 0 0.0
RAM 90728 90728 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 621986 621986 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745122 745122 0 0.0
RAM 40396 40396 0 0.0
tl7218x FLASH 753684 753684 0 0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680754 680754 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709316 709316 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600496 600496 0 0.0
RAM 138812 138812 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788638 788638 0 0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5076 5076 0 0.0
FLASH 1750404 1750428 24 0.0
RAM 93260 93260 0 0.0
chip-tool-ubsan arm unknown 11476 11476 0 0.0
FLASH 18960222 18960246 24 0.0
RAM 8296776 8296776 0 0.0
github-actions
github-actions32 days ago (edited 32 days ago)

PR #37541: Size comparison from 64ae4d8 to b7f8e79

Full report (73 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 64ae4d8 b7f8e79 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1096628 1096628 0 0.0
RAM 94842 94842 0 0.0
bl702 lighting-app bl702+eth FLASH 651606 651606 0 0.0
RAM 33509 33509 0 0.0
bl702+wifi FLASH 828878 828878 0 0.0
RAM 22233 22233 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061274 1061274 0 0.0
RAM 32157 32157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892118 892118 0 0.0
RAM 26896 26896 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975014 975014 0 0.0
RAM 24644 24644 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815300 815300 0 0.0
RAM 120256 120256 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 824220 824220 0 0.0
RAM 125352 125352 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771080 771080 0 0.0
RAM 113724 113724 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755364 755364 0 0.0
RAM 113932 113932 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538842 538842 0 0.0
RAM 205112 205112 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572998 572998 0 0.0
RAM 205360 205360 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 656429 656429 0 0.0
RAM 75324 75324 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 676289 676289 0 0.0
RAM 77964 77964 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 676289 676289 0 0.0
RAM 77964 77964 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 633213 633213 0 0.0
RAM 70392 70392 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616293 616293 0 0.0
RAM 71532 71532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635929 635929 0 0.0
RAM 74076 74076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635929 635929 0 0.0
RAM 74076 74076 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635789 635789 0 0.0
RAM 74540 74540 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 655513 655513 0 0.0
RAM 77084 77084 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 655513 655513 0 0.0
RAM 77084 77084 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 612137 612137 0 0.0
RAM 68628 68628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631997 631997 0 0.0
RAM 71268 71268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631997 631997 0 0.0
RAM 71268 71268 0 0.0
efr32 lock-app BRD4187C FLASH 939536 939536 0 0.0
RAM 159920 159920 0 0.0
BRD4338a FLASH 732536 732536 0 0.0
RAM 234828 234828 0 0.0
window-app BRD4187C FLASH 1032000 1032000 0 0.0
RAM 128024 128024 0 0.0
esp32 all-clusters-app c3devkit DRAM 97312 97312 0 0.0
FLASH 1582004 1582004 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 116108 116108 0 0.0
FLASH 1550014 1550014 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4720 4720 0 0.0
FLASH 2649887 2649903 16 0.0
RAM 111088 111088 0 0.0
all-clusters-app debug unknown 5528 5528 0 0.0
FLASH 5921360 5921408 48 0.0
RAM 513712 513712 0 0.0
all-clusters-minimal-app debug unknown 5424 5424 0 0.0
FLASH 5266394 5266442 48 0.0
RAM 221112 221112 0 0.0
bridge-app debug unknown 5440 5440 0 0.0
FLASH 4625036 4625052 16 0.0
RAM 199816 199816 0 0.0
camera-app debug unknown 5424 5424 0 0.0
FLASH 4671816 4671832 16 0.0
RAM 194592 194592 0 0.0
chip-tool debug unknown 6096 6096 0 0.0
FLASH 13302351 13302399 48 0.0
RAM 603392 603392 0 0.0
chip-tool-ipv6only arm64 unknown 21976 21976 0 0.0
FLASH 11495416 11495432 16 0.0
RAM 656112 656112 0 0.0
fabric-admin debug unknown 5784 5784 0 0.0
FLASH 11567249 11567297 48 0.0
RAM 603176 603176 0 0.0
fabric-bridge-app debug unknown 4688 4688 0 0.0
FLASH 4452254 4452270 16 0.0
RAM 187016 187016 0 0.0
fabric-sync debug unknown 4944 4944 0 0.0
FLASH 5569205 5569253 48 0.0
RAM 470400 470400 0 0.0
lighting-app debug+rpc+ui unknown 6152 6152 0 0.0
FLASH 5515489 5515505 16 0.0
RAM 203952 203952 0 0.0
lock-app debug unknown 5392 5392 0 0.0
FLASH 4688504 4688520 16 0.0
RAM 191144 191144 0 0.0
ota-provider-app debug unknown 4728 4728 0 0.0
FLASH 4310684 4310700 16 0.0
RAM 179832 179832 0 0.0
ota-requestor-app debug unknown 4680 4680 0 0.0
FLASH 4440810 4440826 16 0.0
RAM 184320 184320 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 2949196 2949244 48 0.0
RAM 143672 143672 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4138392 4138408 16 0.0
RAM 229016 229016 0 0.0
tv-app debug unknown 5720 5720 0 0.0
FLASH 5908117 5908133 16 0.0
RAM 593832 593832 0 0.0
tv-casting-app debug unknown 5296 5296 0 0.0
FLASH 11472829 11472845 16 0.0
RAM 718656 718656 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 907708 907708 0 0.0
RAM 142323 142323 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 901788 901788 0 0.0
RAM 124663 124663 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 846312 846312 0 0.0
RAM 141251 141251 0 0.0
nxp contact k32w0+release FLASH 585256 585256 0 0.0
RAM 70876 70876 0 0.0
mcxw71+release FLASH 600712 600712 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 611196 611196 0 0.0
RAM 70164 70164 0 0.0
k32w1+release FLASH 685680 685680 0 0.0
RAM 48584 48584 0 0.0
lock mcxw71+release FLASH 749536 749536 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646188 1646188 0 0.0
RAM 211472 211472 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1552956 1552956 0 0.0
RAM 208288 208288 0 0.0
light cy8ckit_062s2_43012 FLASH 1438644 1438644 0 0.0
RAM 197040 197040 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467516 1467516 0 0.0
RAM 224704 224704 0 0.0
qpg lighting-app qpg6105+debug FLASH 662188 662188 0 0.0
RAM 105116 105116 0 0.0
lock-app qpg6105+debug FLASH 620304 620304 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459832 459832 0 0.0
RAM 141472 141472 0 0.0
telink bridge-app tl7218x FLASH 665034 665034 0 0.0
RAM 90728 90728 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 622078 622078 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745218 745218 0 0.0
RAM 40396 40396 0 0.0
tl7218x FLASH 753780 753780 0 0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680850 680850 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709412 709412 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600592 600592 0 0.0
RAM 138812 138812 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788820 788820 0 0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5076 5076 0 0.0
FLASH 1750852 1750876 24 0.0
RAM 93260 93260 0 0.0
chip-tool-ubsan arm unknown 11492 11492 0 0.0
FLASH 18983694 18983718 24 0.0
RAM 8306240 8306240 0 0.0
github-actions
github-actions32 days ago (edited 32 days ago)

PR #37541: Size comparison from 64ae4d8 to 75c7879

Full report (11 builds for cc13x4_26x4, cc32xx, qpg, stm32, tizen)
platform target config section 64ae4d8 75c7879 change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815300 815300 0 0.0
RAM 120256 120256 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 824220 824220 0 0.0
RAM 125352 125352 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771080 771080 0 0.0
RAM 113724 113724 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755364 755364 0 0.0
RAM 113932 113932 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538842 538842 0 0.0
RAM 205112 205112 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572998 572998 0 0.0
RAM 205360 205360 0 0.0
qpg lighting-app qpg6105+debug FLASH 662188 662188 0 0.0
RAM 105116 105116 0 0.0
lock-app qpg6105+debug FLASH 620304 620304 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459832 459832 0 0.0
RAM 141472 141472 0 0.0
tizen all-clusters-app arm unknown 5076 5076 0 0.0
FLASH 1750852 1750876 24 0.0
RAM 93260 93260 0 0.0
chip-tool-ubsan arm unknown 11492 11492 0 0.0
FLASH 18983694 18983718 24 0.0
RAM 8306240 8306240 0 0.0
github-actions
github-actions32 days ago (edited 32 days ago)

PR #37541: Size comparison from 64ae4d8 to 28a21f7

Full report (73 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 64ae4d8 28a21f7 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1096628 1096628 0 0.0
RAM 94842 94842 0 0.0
bl702 lighting-app bl702+eth FLASH 651606 651606 0 0.0
RAM 33509 33509 0 0.0
bl702+wifi FLASH 828878 828878 0 0.0
RAM 22233 22233 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061274 1061274 0 0.0
RAM 32157 32157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892118 892118 0 0.0
RAM 26896 26896 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975014 975014 0 0.0
RAM 24644 24644 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 815300 815300 0 0.0
RAM 120256 120256 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 824220 824220 0 0.0
RAM 125352 125352 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 771080 771080 0 0.0
RAM 113724 113724 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 755364 755364 0 0.0
RAM 113932 113932 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 538842 538842 0 0.0
RAM 205112 205112 0 0.0
lock CC3235SF_LAUNCHXL FLASH 572998 572998 0 0.0
RAM 205360 205360 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 656429 656429 0 0.0
RAM 75324 75324 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 676289 676289 0 0.0
RAM 77964 77964 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 676289 676289 0 0.0
RAM 77964 77964 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 633213 633213 0 0.0
RAM 70392 70392 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 616293 616293 0 0.0
RAM 71532 71532 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 635929 635929 0 0.0
RAM 74076 74076 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 635929 635929 0 0.0
RAM 74076 74076 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 635789 635789 0 0.0
RAM 74540 74540 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 655513 655513 0 0.0
RAM 77084 77084 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 655513 655513 0 0.0
RAM 77084 77084 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 612137 612137 0 0.0
RAM 68628 68628 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 631997 631997 0 0.0
RAM 71268 71268 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 631997 631997 0 0.0
RAM 71268 71268 0 0.0
efr32 lock-app BRD4187C FLASH 939536 939536 0 0.0
RAM 159920 159920 0 0.0
BRD4338a FLASH 732536 732536 0 0.0
RAM 234828 234828 0 0.0
window-app BRD4187C FLASH 1032000 1032000 0 0.0
RAM 128024 128024 0 0.0
esp32 all-clusters-app c3devkit DRAM 97312 97312 0 0.0
FLASH 1582004 1582004 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 116108 116108 0 0.0
FLASH 1550014 1550014 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4720 4720 0 0.0
FLASH 2649887 2649903 16 0.0
RAM 111088 111088 0 0.0
all-clusters-app debug unknown 5528 5528 0 0.0
FLASH 5921360 5921408 48 0.0
RAM 513712 513712 0 0.0
all-clusters-minimal-app debug unknown 5424 5424 0 0.0
FLASH 5266394 5266442 48 0.0
RAM 221112 221112 0 0.0
bridge-app debug unknown 5440 5440 0 0.0
FLASH 4625036 4625052 16 0.0
RAM 199816 199816 0 0.0
camera-app debug unknown 5424 5424 0 0.0
FLASH 4671816 4671832 16 0.0
RAM 194592 194592 0 0.0
chip-tool debug unknown 6096 6096 0 0.0
FLASH 13302351 13302399 48 0.0
RAM 603392 603392 0 0.0
chip-tool-ipv6only arm64 unknown 21976 21976 0 0.0
FLASH 11495416 11495432 16 0.0
RAM 656112 656112 0 0.0
fabric-admin debug unknown 5784 5784 0 0.0
FLASH 11567249 11567297 48 0.0
RAM 603176 603176 0 0.0
fabric-bridge-app debug unknown 4688 4688 0 0.0
FLASH 4452254 4452270 16 0.0
RAM 187016 187016 0 0.0
fabric-sync debug unknown 4944 4944 0 0.0
FLASH 5569205 5569253 48 0.0
RAM 470400 470400 0 0.0
lighting-app debug+rpc+ui unknown 6152 6152 0 0.0
FLASH 5515489 5515505 16 0.0
RAM 203952 203952 0 0.0
lock-app debug unknown 5392 5392 0 0.0
FLASH 4688504 4688520 16 0.0
RAM 191144 191144 0 0.0
ota-provider-app debug unknown 4728 4728 0 0.0
FLASH 4310684 4310700 16 0.0
RAM 179832 179832 0 0.0
ota-requestor-app debug unknown 4680 4680 0 0.0
FLASH 4440810 4440826 16 0.0
RAM 184320 184320 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 2949196 2949244 48 0.0
RAM 143672 143672 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4138392 4138408 16 0.0
RAM 229016 229016 0 0.0
tv-app debug unknown 5720 5720 0 0.0
FLASH 5908117 5908133 16 0.0
RAM 593832 593832 0 0.0
tv-casting-app debug unknown 5296 5296 0 0.0
FLASH 11472829 11472845 16 0.0
RAM 718656 718656 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 907708 907708 0 0.0
RAM 142323 142323 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 901788 901788 0 0.0
RAM 124663 124663 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 846312 846312 0 0.0
RAM 141251 141251 0 0.0
nxp contact k32w0+release FLASH 585256 585256 0 0.0
RAM 70876 70876 0 0.0
mcxw71+release FLASH 600712 600712 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 611196 611196 0 0.0
RAM 70164 70164 0 0.0
k32w1+release FLASH 685680 685680 0 0.0
RAM 48584 48584 0 0.0
lock mcxw71+release FLASH 749536 749536 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1646188 1646188 0 0.0
RAM 211472 211472 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1552956 1552956 0 0.0
RAM 208288 208288 0 0.0
light cy8ckit_062s2_43012 FLASH 1438644 1438644 0 0.0
RAM 197040 197040 0 0.0
lock cy8ckit_062s2_43012 FLASH 1467516 1467516 0 0.0
RAM 224704 224704 0 0.0
qpg lighting-app qpg6105+debug FLASH 662188 662188 0 0.0
RAM 105116 105116 0 0.0
lock-app qpg6105+debug FLASH 620304 620304 0 0.0
RAM 99664 99664 0 0.0
stm32 light STM32WB5MM-DK FLASH 459832 459832 0 0.0
RAM 141472 141472 0 0.0
telink bridge-app tl7218x FLASH 665034 665034 0 0.0
RAM 90728 90728 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 622078 622078 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745218 745218 0 0.0
RAM 40396 40396 0 0.0
tl7218x FLASH 753780 753780 0 0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 680850 680850 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709412 709412 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600592 600592 0 0.0
RAM 138812 138812 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788820 788820 0 0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5076 5076 0 0.0
FLASH 1750852 1750876 24 0.0
RAM 93260 93260 0 0.0
chip-tool-ubsan arm unknown 11492 11492 0 0.0
FLASH 18983694 18983718 24 0.0
RAM 8306240 8306240 0 0.0
tcarmelveilleux
tcarmelveilleux commented on 2025-02-26
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
139 //
140 // SPEC - 7.10.3. Cluster Data Version
141 // A cluster data version is a metadata increment-only counter value, maintained for each cluster instance.
142
// [...]
143
// A cluster data version SHALL increment or be set (wrap) to zero
144
// if incrementing would exceed its maximum value. A cluster data version
145
// SHALL be maintained for each cluster instance.
146
// [...]
147
// A cluster data version SHALL be incremented if any attribute data changes.
148
//
149
[[nodiscard]] virtual DataVersion GetDataVersion() const = 0;
150
151
[[nodiscard]] virtual BitFlags<DataModel::ClusterQualityFlags> GetClusterFlags() const = 0;
152
153
///////////////////////////////////// Attribute Support ////////////////////////////////////////////////////////
154
155
/// ReadAttribute MUST be done on an "existent" attribute path: only on attributes that are
156
/// returned in an `Attributes` call for this cluster.
157
///
158
/// `request.path` is expected to have `GetClusterId` as the cluster id as well as an attribute that is
159
/// included in a `Attributes` call.
160
///
161
/// This MUST HANDLE the following global attributes:
162
/// - FeatureMap::Id
163
/// - ClusterRevision::Id
164
///
165
/// This function WILL NOT be called for attributes that can be built out of cluster metadata.
166
/// Specifically this WILL NOT be called (and does not need to implement handling for) the
167
/// following attribute IDs:
168
/// - AcceptedCommandList::Id
169
/// - AttributeList::Id
170
/// - GeneratedCommandList::Id
171
virtual DataModel::ActionReturnStatus ReadAttribute(const DataModel::ReadAttributeRequest & request,
172
AttributeValueEncoder & encoder) = 0;
173
174
/// WriteAttribute MUST be done on an "existent" attribute path: only on attributes that are
175
/// returned in an `Attributes` call for this cluster.
176
///
177
/// `request.path` is expected to have `GetClusterId` as the cluster id as well as an attribute that is
178
/// included in a `Attributes` call.
179
virtual DataModel::ActionReturnStatus WriteAttribute(const DataModel::WriteAttributeRequest & request,
180
AttributeValueDecoder & decoder) = 0;
181
182
/// Attribute list MUST contain global attributes.
183
///
184
/// Specifically these attributes MUST always exist in the list for all clusters:
185
/// - ClusterRevision::Id
186
/// - FeatureMap::Id
187
/// - AcceptedCommandList::Id
188
/// - AttributeList::Id
189
/// - GeneratedCommandList::Id
190
/// See SPEC 7.13 Global Elements: `Global Attributes` table
191
///
192
virtual CHIP_ERROR Attributes(const ConcreteClusterPath & path,
193
DataModel::ListBuilder<DataModel::AttributeEntry> & builder) = 0;
194
195
///////////////////////////////////// Command Support /////////////////////////////////////////////////////////
196
197
virtual std::optional<DataModel::ActionReturnStatus>
tcarmelveilleux31 days ago

Please document the args.

andy3141530 days ago

Copied over and adapted the DataModel::Provider documentation.

tcarmelveilleux
tcarmelveilleux commented on 2025-02-26
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.cpp
40 }
41}
42
43
ServerClusterInterfaceRegistry sRegistry;
tcarmelveilleux31 days ago

This should not be a singleton. This should belong to the data model provider that wants to register.

andy3141530 days ago (edited 30 days ago)

Moved it away from a singleton: plan to have the datamodel provider itself then be the registry.

tcarmelveilleux
tcarmelveilleux commented on 2025-02-26
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterfaceRegistry.h
90 /// Unregister all registrations for the given endpoint.
91 void UnregisterAllFromEndpoint(EndpointId endpointId);
92
93
/// Access to an application global registry of server cluster interfaces
94
/// that are registered within the application.
95
static ServerClusterInterfaceRegistry & Instance();
tcarmelveilleux31 days ago

Some other singleton should be the one to return this non-singleton, especially to allow moving away from having singletons at all in the process. This singleton single-handedly now makes it impossible to host 2 device data models in 1 process, for no reason.

andy3141531 days ago

This would assume that this is our main way of consuming these interfaces.

However I am claiming this is only the "ember consumption point" and ember will be singleton.

I plan for the code-backed provider to be something else, in particular that something else needs to manage endpoint metadata and client clusters anyway, so I specifically do not plan to re-use this registry. This registry is for ember only.

github-actions
github-actions30 days ago (edited 30 days ago)

PR #37541: Size comparison from 73fe30c to 149a91b

Full report (73 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 73fe30c 149a91b change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1096892 1096892 0 0.0
RAM 94842 94842 0 0.0
bl702 lighting-app bl702+eth FLASH 651870 651870 0 0.0
RAM 33509 33509 0 0.0
bl702+wifi FLASH 829142 829142 0 0.0
RAM 22233 22233 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061538 1061538 0 0.0
RAM 32157 32157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892382 892382 0 0.0
RAM 26896 26896 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975278 975278 0 0.0
RAM 24644 24644 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 817152 817152 0 0.0
RAM 120272 120272 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 826072 826072 0 0.0
RAM 125368 125368 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 772956 772956 0 0.0
RAM 113740 113740 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 757240 757240 0 0.0
RAM 113948 113948 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 540646 540646 0 0.0
RAM 205128 205128 0 0.0
lock CC3235SF_LAUNCHXL FLASH 574794 574794 0 0.0
RAM 205376 205376 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 658861 658853 -8 -0.0
RAM 75412 75412 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 678713 678713 0 0.0
RAM 78052 78052 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 678713 678713 0 0.0
RAM 78052 78052 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 635645 635645 0 0.0
RAM 70480 70480 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 619101 619101 0 0.0
RAM 71652 71652 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 638737 638737 0 0.0
RAM 74196 74196 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 638737 638737 0 0.0
RAM 74196 74196 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 638589 638589 0 0.0
RAM 74660 74660 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 658305 658305 0 0.0
RAM 77204 77204 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 658305 658305 0 0.0
RAM 77204 77204 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614937 614937 0 0.0
RAM 68748 68748 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634789 634789 0 0.0
RAM 71388 71388 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634789 634789 0 0.0
RAM 71388 71388 0 0.0
efr32 lock-app BRD4187C FLASH 939672 939672 0 0.0
RAM 159920 159920 0 0.0
BRD4338a FLASH 732656 732656 0 0.0
RAM 234828 234828 0 0.0
window-app BRD4187C FLASH 1032104 1032104 0 0.0
RAM 128024 128024 0 0.0
esp32 all-clusters-app c3devkit DRAM 98656 98656 0 0.0
FLASH 1589616 1589616 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 117436 117436 0 0.0
FLASH 1556626 1556626 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4728 4728 0 0.0
FLASH 2650809 2650825 16 0.0
RAM 111088 111088 0 0.0
all-clusters-app debug unknown 5536 5536 0 0.0
FLASH 5962582 5962598 16 0.0
RAM 514832 514832 0 0.0
all-clusters-minimal-app debug unknown 5432 5432 0 0.0
FLASH 5297294 5297310 16 0.0
RAM 221272 221272 0 0.0
bridge-app debug unknown 5448 5448 0 0.0
FLASH 4649642 4649690 48 0.0
RAM 200144 200144 0 0.0
camera-app debug unknown 5432 5432 0 0.0
FLASH 4672770 4672754 -16 -0.0
RAM 194592 194592 0 0.0
chip-tool debug unknown 6096 6096 0 0.0
FLASH 13303265 13303313 48 0.0
RAM 603392 603392 0 0.0
chip-tool-ipv6only arm64 unknown 21976 21976 0 0.0
FLASH 11496136 11496168 32 0.0
RAM 656112 656112 0 0.0
fabric-admin debug unknown 5784 5784 0 0.0
FLASH 11568059 11568107 48 0.0
RAM 603176 603176 0 0.0
fabric-bridge-app debug unknown 4696 4696 0 0.0
FLASH 4453208 4453224 16 0.0
RAM 187016 187016 0 0.0
fabric-sync debug unknown 4952 4952 0 0.0
FLASH 5570197 5570245 48 0.0
RAM 470400 470400 0 0.0
lighting-app debug+rpc+ui unknown 6160 6160 0 0.0
FLASH 5516481 5516497 16 0.0
RAM 203952 203952 0 0.0
lock-app debug unknown 5400 5400 0 0.0
FLASH 4689458 4689474 16 0.0
RAM 191144 191144 0 0.0
ota-provider-app debug unknown 4736 4736 0 0.0
FLASH 4311670 4311686 16 0.0
RAM 179832 179832 0 0.0
ota-requestor-app debug unknown 4688 4688 0 0.0
FLASH 4441990 4442038 48 0.0
RAM 184320 184320 0 0.0
shell debug unknown 4216 4216 0 0.0
FLASH 2979724 2979772 48 0.0
RAM 144344 144344 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4139160 4139176 16 0.0
RAM 229016 229016 0 0.0
tv-app debug unknown 5728 5728 0 0.0
FLASH 5909045 5909061 16 0.0
RAM 593832 593832 0 0.0
tv-casting-app debug unknown 5304 5304 0 0.0
FLASH 11473757 11473773 16 0.0
RAM 718656 718656 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 911760 911760 0 0.0
RAM 142859 142859 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 902608 902608 0 0.0
RAM 125195 125195 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 850424 850424 0 0.0
RAM 141271 141271 0 0.0
nxp contact k32w0+release FLASH 587368 587368 0 0.0
RAM 70980 70980 0 0.0
mcxw71+release FLASH 601192 601192 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 613100 613100 0 0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685824 685824 0 0.0
RAM 48584 48584 0 0.0
lock mcxw71+release FLASH 750032 750032 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1655684 1655684 0 0.0
RAM 212264 212264 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1562380 1562380 0 0.0
RAM 208560 208560 0 0.0
light cy8ckit_062s2_43012 FLASH 1441180 1441180 0 0.0
RAM 197296 197296 0 0.0
lock cy8ckit_062s2_43012 FLASH 1470068 1470068 0 0.0
RAM 224960 224960 0 0.0
qpg lighting-app qpg6105+debug FLASH 663772 663764 -8 -0.0
RAM 105156 105156 0 0.0
lock-app qpg6105+debug FLASH 622240 622240 0 0.0
RAM 99768 99768 0 0.0
stm32 light STM32WB5MM-DK FLASH 459840 459840 0 0.0
RAM 141472 141472 0 0.0
telink bridge-app tl7218x FLASH 669192 669192 0 0.0
RAM 90752 90752 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 622078 622078 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745386 745386 0 0.0
RAM 40396 40396 0 0.0
tl7218x FLASH 753948 753948 0 0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 681018 681018 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709580 709580 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600760 600760 0 0.0
RAM 138812 138812 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788988 788988 0 0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5116 5116 0 0.0
FLASH 1766136 1766164 28 0.0
RAM 93844 93844 0 0.0
chip-tool-ubsan arm unknown 11492 11492 0 0.0
FLASH 18983958 18983986 28 0.0
RAM 8306328 8306328 0 0.0
github-actions
github-actions30 days ago (edited 30 days ago)

PR #37541: Size comparison from 73fe30c to bd5a80b

Increases above 0.2%:

platform target config section 73fe30c bd5a80b change % change
linux thermostat-no-ble arm64 RAM 229016 229832 816 0.4
Full report (57 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 73fe30c bd5a80b change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1096892 1096892 0 0.0
RAM 94842 94842 0 0.0
bl702 lighting-app bl702+eth FLASH 651870 651870 0 0.0
RAM 33509 33509 0 0.0
bl702+wifi FLASH 829142 829142 0 0.0
RAM 22233 22233 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061538 1061538 0 0.0
RAM 32157 32157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892382 892382 0 0.0
RAM 26896 26896 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975278 975278 0 0.0
RAM 24644 24644 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 817152 817152 0 0.0
RAM 120272 120272 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 826072 826072 0 0.0
RAM 125368 125368 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 772956 772956 0 0.0
RAM 113740 113740 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 757240 757240 0 0.0
RAM 113948 113948 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 540646 540646 0 0.0
RAM 205128 205128 0 0.0
lock CC3235SF_LAUNCHXL FLASH 574794 574794 0 0.0
RAM 205376 205376 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 658861 658853 -8 -0.0
RAM 75412 75412 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 678713 678713 0 0.0
RAM 78052 78052 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 678713 678713 0 0.0
RAM 78052 78052 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 635645 635645 0 0.0
RAM 70480 70480 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 619101 619101 0 0.0
RAM 71652 71652 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 638737 638737 0 0.0
RAM 74196 74196 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 638737 638737 0 0.0
RAM 74196 74196 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 638589 638589 0 0.0
RAM 74660 74660 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 658305 658305 0 0.0
RAM 77204 77204 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 658305 658305 0 0.0
RAM 77204 77204 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614937 614937 0 0.0
RAM 68748 68748 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634789 634789 0 0.0
RAM 71388 71388 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634789 634789 0 0.0
RAM 71388 71388 0 0.0
efr32 lock-app BRD4187C FLASH 939672 939672 0 0.0
RAM 159920 159920 0 0.0
BRD4338a FLASH 732656 732656 0 0.0
RAM 234828 234828 0 0.0
window-app BRD4187C FLASH 1032104 1032104 0 0.0
RAM 128024 128024 0 0.0
esp32 all-clusters-app c3devkit DRAM 98656 98656 0 0.0
FLASH 1589616 1589616 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 117436 117436 0 0.0
FLASH 1556626 1556626 0 0.0
IRAM 117039 117039 0 0.0
linux chip-tool-ipv6only arm64 unknown 21976 21976 0 0.0
FLASH 11496136 11497880 1744 0.0
RAM 656112 656128 16 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4139160 4141672 2512 0.1
RAM 229016 229832 816 0.4
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 911760 911760 0 0.0
RAM 142859 142859 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 902608 902608 0 0.0
RAM 125195 125195 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 850424 850424 0 0.0
RAM 141271 141271 0 0.0
nxp contact k32w0+release FLASH 587368 587368 0 0.0
RAM 70980 70980 0 0.0
mcxw71+release FLASH 601192 601192 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 613100 613100 0 0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685824 685824 0 0.0
RAM 48584 48584 0 0.0
lock mcxw71+release FLASH 750032 750032 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1655684 1655684 0 0.0
RAM 212264 212264 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1562380 1562380 0 0.0
RAM 208560 208560 0 0.0
light cy8ckit_062s2_43012 FLASH 1441180 1441180 0 0.0
RAM 197296 197296 0 0.0
lock cy8ckit_062s2_43012 FLASH 1470068 1470068 0 0.0
RAM 224960 224960 0 0.0
qpg lighting-app qpg6105+debug FLASH 663772 663764 -8 -0.0
RAM 105156 105156 0 0.0
lock-app qpg6105+debug FLASH 622240 622240 0 0.0
RAM 99768 99768 0 0.0
stm32 light STM32WB5MM-DK FLASH 459840 459840 0 0.0
RAM 141472 141472 0 0.0
telink bridge-app tl7218x FLASH 669192 669192 0 0.0
RAM 90752 90752 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 622078 622078 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745386 745386 0 0.0
RAM 40396 40396 0 0.0
tl7218x FLASH 753948 753948 0 0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 681018 681018 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709580 709580 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600760 600760 0 0.0
RAM 138812 138812 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788988 788988 0 0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5116 5116 0 0.0
FLASH 1766136 1766164 28 0.0
RAM 93844 93844 0 0.0
chip-tool-ubsan arm unknown 11492 11492 0 0.0
FLASH 18983958 18983986 28 0.0
RAM 8306328 8306328 0 0.0
github-actions
github-actions30 days ago (edited 29 days ago)

PR #37541: Size comparison from 73fe30c to b148b82

Increases above 0.2%:

platform target config section 73fe30c b148b82 change % change
linux air-purifier-app debug unknown 4728 4752 24 0.5
RAM 111088 112272 1184 1.1
all-clusters-app debug unknown 5536 5560 24 0.4
RAM 514832 516536 1704 0.3
all-clusters-minimal-app debug unknown 5432 5456 24 0.4
RAM 221272 222456 1184 0.5
bridge-app debug unknown 5448 5472 24 0.4
RAM 200144 201328 1184 0.6
camera-app debug unknown 5432 5456 24 0.4
RAM 194592 195776 1184 0.6
chip-tool debug unknown 6096 6112 16 0.3
fabric-admin debug unknown 5784 5800 16 0.3
fabric-bridge-app debug unknown 4696 4720 24 0.5
RAM 187016 188168 1152 0.6
fabric-sync debug unknown 4952 4976 24 0.5
RAM 470400 471584 1184 0.3
lighting-app debug+rpc+ui unknown 6160 6184 24 0.4
RAM 203952 205136 1184 0.6
lock-app debug unknown 5400 5424 24 0.4
RAM 191144 192328 1184 0.6
ota-provider-app debug unknown 4736 4760 24 0.5
RAM 179832 180984 1152 0.6
ota-requestor-app debug unknown 4688 4712 24 0.5
RAM 184320 185472 1152 0.6
shell debug unknown 4216 4240 24 0.6
RAM 144344 145688 1344 0.9
thermostat-no-ble arm64 RAM 229016 229832 816 0.4
tv-app debug unknown 5728 5752 24 0.4
tv-casting-app debug unknown 5304 5320 16 0.3
tizen all-clusters-app arm unknown 5116 5144 28 0.5
FLASH 1766136 1770608 4472 0.3
RAM 93844 94144 300 0.3
Full report (73 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 73fe30c b148b82 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1096892 1096892 0 0.0
RAM 94842 94842 0 0.0
bl702 lighting-app bl702+eth FLASH 651870 651870 0 0.0
RAM 33509 33509 0 0.0
bl702+wifi FLASH 829142 829142 0 0.0
RAM 22233 22233 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061538 1061538 0 0.0
RAM 32157 32157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892382 892382 0 0.0
RAM 26896 26896 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975278 975278 0 0.0
RAM 24644 24644 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 817152 817152 0 0.0
RAM 120272 120272 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 826072 826072 0 0.0
RAM 125368 125368 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 772956 772956 0 0.0
RAM 113740 113740 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 757240 757240 0 0.0
RAM 113948 113948 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 540646 540646 0 0.0
RAM 205128 205128 0 0.0
lock CC3235SF_LAUNCHXL FLASH 574794 574794 0 0.0
RAM 205376 205376 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 658861 658853 -8 -0.0
RAM 75412 75412 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 678713 678713 0 0.0
RAM 78052 78052 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 678713 678713 0 0.0
RAM 78052 78052 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 635645 635645 0 0.0
RAM 70480 70480 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 619101 619101 0 0.0
RAM 71652 71652 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 638737 638737 0 0.0
RAM 74196 74196 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 638737 638737 0 0.0
RAM 74196 74196 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 638589 638589 0 0.0
RAM 74660 74660 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 658305 658305 0 0.0
RAM 77204 77204 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 658305 658305 0 0.0
RAM 77204 77204 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614937 614937 0 0.0
RAM 68748 68748 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634789 634789 0 0.0
RAM 71388 71388 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634789 634789 0 0.0
RAM 71388 71388 0 0.0
efr32 lock-app BRD4187C FLASH 939672 939672 0 0.0
RAM 159920 159920 0 0.0
BRD4338a FLASH 732656 732656 0 0.0
RAM 234828 234828 0 0.0
window-app BRD4187C FLASH 1032104 1032104 0 0.0
RAM 128024 128024 0 0.0
esp32 all-clusters-app c3devkit DRAM 98656 98736 80 0.1
FLASH 1589616 1591682 2066 0.1
IRAM 83820 83820 0 0.0
m5stack DRAM 117436 117516 80 0.1
FLASH 1556626 1558478 1852 0.1
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4728 4752 24 0.5
FLASH 2650809 2653253 2444 0.1
RAM 111088 112272 1184 1.1
all-clusters-app debug unknown 5536 5560 24 0.4
FLASH 5962582 5973672 11090 0.2
RAM 514832 516536 1704 0.3
all-clusters-minimal-app debug unknown 5432 5456 24 0.4
FLASH 5297294 5299738 2444 0.0
RAM 221272 222456 1184 0.5
bridge-app debug unknown 5448 5472 24 0.4
FLASH 4649642 4652118 2476 0.1
RAM 200144 201328 1184 0.6
camera-app debug unknown 5432 5456 24 0.4
FLASH 4672770 4675190 2420 0.1
RAM 194592 195776 1184 0.6
chip-tool debug unknown 6096 6112 16 0.3
FLASH 13303265 1330499 1734 0.0
RAM 603392 603424 32 0.0
chip-tool-ipv6only arm64 unknown 21976 21976 0 0.0
FLASH 11496136 11497880 1744 0.0
RAM 656112 656128 16 0.0
fabric-admin debug unknown 5784 5800 16 0.3
FLASH 11568059 11569793 1734 0.0
RAM 603176 603208 32 0.0
fabric-bridge-app debug unknown 4696 4720 24 0.5
FLASH 4453208 4455652 2444 0.1
RAM 187016 188168 1152 0.6
fabric-sync debug unknown 4952 4976 24 0.5
FLASH 5570197 5572677 2480 0.0
RAM 470400 471584 1184 0.3
lighting-app debug+rpc+ui unknown 6160 6184 24 0.4
FLASH 5516481 5518929 2448 0.0
RAM 203952 205136 1184 0.6
lock-app debug unknown 5400 5424 24 0.4
FLASH 4689458 4691904 2446 0.1
RAM 191144 192328 1184 0.6
ota-provider-app debug unknown 4736 4760 24 0.5
FLASH 4311670 4314114 2444 0.1
RAM 179832 180984 1152 0.6
ota-requestor-app debug unknown 4688 4712 24 0.5
FLASH 4441990 4444466 2476 0.1
RAM 184320 185472 1152 0.6
shell debug unknown 4216 4240 24 0.6
FLASH 2979724 2982316 2592 0.1
RAM 144344 145688 1344 0.9
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4139160 4141672 2512 0.1
RAM 229016 229832 816 0.4
tv-app debug unknown 5728 5752 24 0.4
FLASH 5909045 5911493 2448 0.0
RAM 593832 595016 1184 0.2
tv-casting-app debug unknown 5304 5320 16 0.3
FLASH 11473757 11475453 1696 0.0
RAM 718656 718656 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 911760 913576 1816 0.2
RAM 142859 142909 50 0.0
nrf7002dk_nrf5340_cpuapp FLASH 902608 904304 1696 0.2
RAM 125195 125245 50 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 850424 850424 0 0.0
RAM 141271 141271 0 0.0
nxp contact k32w0+release FLASH 587368 587368 0 0.0
RAM 70980 70980 0 0.0
mcxw71+release FLASH 601192 601192 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 613100 613100 0 0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685824 685824 0 0.0
RAM 48584 48584 0 0.0
lock mcxw71+release FLASH 750032 750032 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1655684 1658116 2432 0.1
RAM 212264 212344 80 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1562380 1562380 0 0.0
RAM 208560 208560 0 0.0
light cy8ckit_062s2_43012 FLASH 1441180 1441180 0 0.0
RAM 197296 197296 0 0.0
lock cy8ckit_062s2_43012 FLASH 1470068 1470068 0 0.0
RAM 224960 224960 0 0.0
qpg lighting-app qpg6105+debug FLASH 663772 663764 -8 -0.0
RAM 105156 105156 0 0.0
lock-app qpg6105+debug FLASH 622240 622240 0 0.0
RAM 99768 99768 0 0.0
stm32 light STM32WB5MM-DK FLASH 459840 459840 0 0.0
RAM 141472 141472 0 0.0
telink bridge-app tl7218x FLASH 669192 669192 0 0.0
RAM 90752 90752 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 622078 622078 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-shell-factory-data tl3218x FLASH 745386 745386 0 0.0
RAM 40396 40396 0 0.0
tl7218x FLASH 753948 753948 0 0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 681018 681018 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709580 709580 0 0.0
RAM 73400 73400 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 600760 600760 0 0.0
RAM 138812 138812 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 788988 788988 0 0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5116 5144 28 0.5
FLASH 1766136 1770608 4472 0.3
RAM 93844 94144 300 0.3
chip-tool-ubsan arm unknown 11492 11492 0 0.0
FLASH 18983958 18983986 28 0.0
RAM 8306328 8306328 0 0.0
mergify mergify added conflict
mergify mergify removed conflict
github-actions
github-actions29 days ago (edited 29 days ago)

PR #37541: Size comparison from ab3d5ae to 091b2c1

Full report (74 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section ab3d5ae 091b2c1 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1096830 1096830 0 0.0
RAM 94842 94842 0 0.0
bl702 lighting-app bl702+eth FLASH 651804 651804 0 0.0
RAM 33509 33509 0 0.0
bl702+wifi FLASH 829076 829076 0 0.0
RAM 22233 22233 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061472 1061472 0 0.0
RAM 32157 32157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892316 892316 0 0.0
RAM 26896 26896 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975212 975212 0 0.0
RAM 24644 24644 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 817184 817176 -8 -0.0
RAM 120272 120272 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 826104 826104 0 0.0
RAM 125368 125368 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 772988 772996 8 0.0
RAM 113740 113740 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 757264 757272 8 0.0
RAM 113948 113948 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 540726 540726 0 0.0
RAM 205128 205128 0 0.0
lock CC3235SF_LAUNCHXL FLASH 574850 574850 0 0.0
RAM 205376 205376 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 658901 658893 -8 -0.0
RAM 75412 75412 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 678753 678753 0 0.0
RAM 78052 78052 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 678753 678753 0 0.0
RAM 78052 78052 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 635685 635685 0 0.0
RAM 70480 70480 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 619141 619141 0 0.0
RAM 71652 71652 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 638777 638777 0 0.0
RAM 74196 74196 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 638777 638777 0 0.0
RAM 74196 74196 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 638629 638629 0 0.0
RAM 74660 74660 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 658345 658345 0 0.0
RAM 77204 77204 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 658345 658345 0 0.0
RAM 77204 77204 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 614969 614969 0 0.0
RAM 68748 68748 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634821 634821 0 0.0
RAM 71388 71388 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634821 634821 0 0.0
RAM 71388 71388 0 0.0
efr32 lock-app BRD4187C FLASH 939712 939712 0 0.0
RAM 159920 159920 0 0.0
BRD4338a FLASH 732712 732712 0 0.0
RAM 234828 234828 0 0.0
window-app BRD4187C FLASH 1032176 1032176 0 0.0
RAM 128024 128024 0 0.0
esp32 all-clusters-app c3devkit DRAM 98736 98736 0 0.0
FLASH 1591742 1591742 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 117516 117516 0 0.0
FLASH 1558578 1558578 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4752 4752 0 0.0
FLASH 2653503 2653519 16 0.0
RAM 112304 112304 0 0.0
all-clusters-app debug unknown 5560 5560 0 0.0
FLASH 5973922 5973938 16 0.0
RAM 516568 516568 0 0.0
all-clusters-minimal-app debug unknown 5456 5456 0 0.0
FLASH 5299924 5299940 16 0.0
RAM 222488 222488 0 0.0
bridge-app debug unknown 5472 5472 0 0.0
FLASH 4652272 4652320 48 0.0
RAM 201344 201344 0 0.0
camera-app debug unknown 5456 5456 0 0.0
FLASH 4675408 4675392 -16 -0.0
RAM 195792 195792 0 0.0
chip-tool debug unknown 6112 6112 0 0.0
FLASH 13305153 13305201 48 0.0
RAM 603456 603456 0 0.0
chip-tool-ipv6only arm64 unknown 21976 21976 0 0.0
FLASH 11498072 11498088 16 0.0
RAM 656136 656136 0 0.0
fabric-admin debug unknown 5800 5800 0 0.0
FLASH 11569947 11569995 48 0.0
RAM 603240 603240 0 0.0
fabric-bridge-app debug unknown 4720 4720 0 0.0
FLASH 4455838 4455854 16 0.0
RAM 188168 188168 0 0.0
fabric-sync debug unknown 4976 4976 0 0.0
FLASH 5572821 5572869 48 0.0
RAM 471600 471600 0 0.0
lighting-app debug+rpc+ui unknown 6184 6184 0 0.0
FLASH 5519105 5519121 16 0.0
RAM 205168 205168 0 0.0
lock-app debug unknown 5424 5424 0 0.0
FLASH 4692090 4692106 16 0.0
RAM 192344 192344 0 0.0
ota-provider-app debug unknown 4760 4760 0 0.0
FLASH 4314300 4314316 16 0.0
RAM 181000 181000 0 0.0
ota-requestor-app debug unknown 4712 4712 0 0.0
FLASH 4444620 4444668 48 0.0
RAM 185488 185488 0 0.0
shell debug unknown 4240 4240 0 0.0
FLASH 2982524 2982572 48 0.0
RAM 145688 145688 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4141848 4141864 16 0.0
RAM 229840 229840 0 0.0
tv-app debug unknown 5752 5752 0 0.0
FLASH 5911669 5911685 16 0.0
RAM 595032 595032 0 0.0
tv-casting-app debug unknown 5320 5320 0 0.0
FLASH 11475645 11475661 16 0.0
RAM 718672 718672 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 913644 913644 0 0.0
RAM 142909 142909 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 904396 904396 0 0.0
RAM 125245 125245 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 850456 850456 0 0.0
RAM 141271 141271 0 0.0
nxp contact k32w0+release FLASH 587408 587408 0 0.0
RAM 70980 70980 0 0.0
mcxw71+release FLASH 601224 601224 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 613140 613140 0 0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685856 685856 0 0.0
RAM 48584 48584 0 0.0
lock mcxw71+release FLASH 750064 750064 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1658188 1658204 16 0.0
RAM 212344 212344 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1562436 1562436 0 0.0
RAM 208560 208560 0 0.0
light cy8ckit_062s2_43012 FLASH 1441236 1441236 0 0.0
RAM 197296 197296 0 0.0
lock cy8ckit_062s2_43012 FLASH 1470124 1470124 0 0.0
RAM 224960 224960 0 0.0
qpg lighting-app qpg6105+debug FLASH 663804 663804 0 0.0
RAM 105156 105156 0 0.0
lock-app qpg6105+debug FLASH 622272 622272 0 0.0
RAM 99768 99768 0 0.0
stm32 light STM32WB5MM-DK FLASH 459872 459872 0 0.0
RAM 141472 141472 0 0.0
telink bridge-app tl7218x FLASH 669244 669244 0 0.0
RAM 90752 90752 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 622106 622106 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 760892 760892 0 0.0
RAM 40420 40420 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 754000 754000 0 0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 681050 681050 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709608 709608 0 0.0
RAM 73400 73400 0 0.0
light-switch-app-ota-shell-factory-data tl3218x_retention FLASH 702158 702158 0 0.0
RAM 37664 37664 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 601724 601724 0 0.0
RAM 137360 137360 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 789016 789016 0 0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5144 5144 0 0.0
FLASH 1770724 1770752 28 0.0
RAM 94152 94152 0 0.0
chip-tool-ubsan arm unknown 11492 11492 0 0.0
FLASH 18984798 18984822 24 0.0
RAM 8306648 8306648 0 0.0
bzbarsky-apple
bzbarsky-apple approved these changes on 2025-02-28
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
33
34/// Handles cluster interactions for a specific cluster id.
35///
36
/// A `ServerClusterInterface` is generally associated with a single endpointId and represents
bzbarsky-apple29 days ago
Suggested change
/// A `ServerClusterInterface` is generally associated with a single endpointId and represents
/// A `ServerClusterInterface` instance is associated with a single endpointId and represents

No "generally" about it: if it has a dataversion, it's one cluster instance.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
45 ///////////////////////////////////// Cluster Metadata Support //////////////////////////////////////////////////
46 [[nodiscard]] virtual ClusterId GetClusterId() const = 0;
47
48
/// Gets the data version for this cluster.
bzbarsky-apple29 days ago
Suggested change
/// Gets the data version for this cluster.
/// Gets the data version for this cluster instance.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
63 ///////////////////////////////////// Attribute Support ////////////////////////////////////////////////////////
64
65 /// Indicates the start/end of a series of list operations. This function will be called either before the first
66
/// Write operation or after the last one of a series of consecutive attribute data of the same attribute.
bzbarsky-apple29 days ago
Suggested change
/// Write operation or after the last one of a series of consecutive attribute data of the same attribute.
/// Write operation or after the last one of a series of consecutive attribute data values received for the same attribute.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
73
74 /// Reads the value of an existing attribute.
75 ///
76
/// ReadAttribute MUST be done on an "existent" attribute path: only on attributes that are
77
/// returned in an `Attributes` call for this cluster.
bzbarsky-apple29 days ago
Suggested change
/// ReadAttribute MUST be done on an "existent" attribute path: only on attributes that are
/// returned in an `Attributes` call for this cluster.
/// ReadAttribute MUST be done on an "existent" attribute path: only on attributes that are
/// returned in an `Attributes` call for this cluster. ReadAttribute is not expected to perform
/// that verification; the caller is responsible for it.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
77 /// returned in an `Attributes` call for this cluster.
78 ///
79 /// `request.path` is expected to have `GetClusterId` as the cluster id as well as an attribute that is
80
/// included in a `Attributes` call.
bzbarsky-apple29 days ago
Suggested change
/// included in a `Attributes` call.
/// included in an `Attributes` call.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
95 /// Writes a value to an existing attribute.
96 ///
97 /// WriteAttribute MUST be done on an "existent" attribute path: only on attributes that are
98
/// returned in an `Attributes` call for this cluster.
bzbarsky-apple29 days ago
Suggested change
/// returned in an `Attributes` call for this cluster.
/// returned in an `Attributes` call for this cluster. WriteAttribute is not expected to perform
/// that verification; the caller is responsible for it.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/ServerClusterInterface.h
bzbarsky-apple29 days ago

We should document where the TLVReader is positioned, but please do that in a followup, to avoid holding this up.

Conversation is marked as resolved
Show resolved
src/app/server-cluster/tests/TestDefaultServerCluster.cpp
94
95 ReadOnlyBuffer<AttributeEntry> data = attributes.TakeBuffer();
96
97
// 5 global attributes are currently supported. Ensure they are makred
bzbarsky-apple29 days ago
Suggested change
// 5 global attributes are currently supported. Ensure they are makred
// 5 global attributes are currently supported. Ensure they are returned.
Conversation is marked as resolved
Show resolved
src/data-model-providers/codegen/ServerClusterInterfaceRegistry.cpp
bzbarsky-apple29 days ago

This seems like it should be a separate PR: none of this stuff is used as far as I can tell (i.e. the codegen data model provider does not know about this registry), and it's hard to evaluate how this part should work and what exactly should happen here without that hookup.

For now I did not review this code or the header, on the assumption that they will move out into a separate PR. If that does not happen, please let me know.

Conversation is marked as resolved
Show resolved
src/lib/core/CHIPError.h
841 * @def CHIP_ERROR_IN_USE
842 *
843 * @brief
844
* A value is already used. Generally indicates an unavailable resrouce.
bzbarsky-apple29 days ago
Suggested change
* A value is already used. Generally indicates an unavailable resrouce.
* A value is already used. Generally indicates an unavailable resource.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/DefaultServerCluster.h
50 /// Must only be implemented if support for any non-global attributes
51 /// is required.
52 ///
53
/// Default implementation just returns the above global attributes.
bzbarsky-apple29 days ago
Suggested change
/// Default implementation just returns the above global attributes.
/// Default implementation just returns the global attributes required by the API contract.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/DefaultServerCluster.h
57
58 /// Must only be implemented if commands are supported by the cluster
59 ///
60
/// Default implementation errors out with an UnspportedCommand error.
bzbarsky-apple29 days ago
Suggested change
/// Default implementation errors out with an UnspportedCommand error.
/// Default implementation errors out with an UnsupportedCommand error.
Conversation is marked as resolved
Show resolved
src/app/server-cluster/DefaultServerCluster.h
68 CHIP_ERROR AcceptedCommands(const ConcreteClusterPath & path,
69 DataModel::ListBuilder<DataModel::AcceptedCommandEntry> & builder) override;
70
71
/// Must only be implemented if commands are supported by the cluster that return values
bzbarsky-apple29 days ago
Suggested change
/// Must only be implemented if commands are supported by the cluster that return values
/// Must only be implemented if commands that return values are supported by the cluster.
github-actions
github-actions26 days ago (edited 26 days ago)

PR #37541: Size comparison from ab3d5ae to b495b5b

Full report (3 builds for cc32xx, stm32)
platform target config section ab3d5ae b495b5b change % change
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 540726 540774 48 0.0
RAM 205128 205128 0 0.0
lock CC3235SF_LAUNCHXL FLASH 574850 574890 40 0.0
RAM 205376 205376 0 0.0
stm32 light STM32WB5MM-DK FLASH 459872 459920 48 0.0
RAM 141472 141472 0 0.0
andy31415 andy31415 force pushed from 25a2112b to f36dfded 26 days ago
andy31415 Server cluster interface
f301851d
andy31415 andy31415 force pushed from f36dfded to f301851d 26 days ago
tcarmelveilleux
tcarmelveilleux approved these changes on 2025-03-03
pullapprove pullapprove removed review - pending
pullapprove pullapprove added review - approved
github-actions
github-actions26 days ago (edited 26 days ago)

PR #37541: Size comparison from 4e3f1cd to f301851

Full report (74 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 4e3f1cd f301851 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1096866 1096866 0 0.0
RAM 94842 94842 0 0.0
bl702 lighting-app bl702+eth FLASH 651842 651842 0 0.0
RAM 33509 33509 0 0.0
bl702+wifi FLASH 829114 829114 0 0.0
RAM 22233 22233 0 0.0
bl706+mfd+rpc+littlefs FLASH 1061508 1061508 0 0.0
RAM 32157 32157 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 892352 892352 0 0.0
RAM 26896 26896 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 975248 975248 0 0.0
RAM 24644 24644 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 817232 817232 0 0.0
RAM 120272 120272 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 826152 826152 0 0.0
RAM 125368 125368 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 773036 773036 0 0.0
RAM 113740 113740 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 757312 757312 0 0.0
RAM 113948 113948 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 540774 540774 0 0.0
RAM 205128 205128 0 0.0
lock CC3235SF_LAUNCHXL FLASH 574890 574890 0 0.0
RAM 205376 205376 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 658941 658941 0 0.0
RAM 75412 75412 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 678801 678801 0 0.0
RAM 78052 78052 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 678801 678801 0 0.0
RAM 78052 78052 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 635725 635725 0 0.0
RAM 70480 70480 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 619181 619181 0 0.0
RAM 71652 71652 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 638817 638817 0 0.0
RAM 74196 74196 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 638817 638817 0 0.0
RAM 74196 74196 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 638669 638669 0 0.0
RAM 74660 74660 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 658393 658393 0 0.0
RAM 77204 77204 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 658393 658393 0 0.0
RAM 77204 77204 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 615009 615009 0 0.0
RAM 68748 68748 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 634869 634869 0 0.0
RAM 71388 71388 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 634869 634869 0 0.0
RAM 71388 71388 0 0.0
efr32 lock-app BRD4187C FLASH 939760 939760 0 0.0
RAM 159920 159920 0 0.0
BRD4338a FLASH 732744 732744 0 0.0
RAM 234828 234828 0 0.0
window-app BRD4187C FLASH 1032200 1032200 0 0.0
RAM 128024 128024 0 0.0
esp32 all-clusters-app c3devkit DRAM 98736 98736 0 0.0
FLASH 1591774 1591774 0 0.0
IRAM 83820 83820 0 0.0
m5stack DRAM 117516 117516 0 0.0
FLASH 1558614 1558614 0 0.0
IRAM 117039 117039 0 0.0
linux air-purifier-app debug unknown 4752 4752 0 0.0
FLASH 2653563 2653579 16 0.0
RAM 112304 112304 0 0.0
all-clusters-app debug unknown 5560 5560 0 0.0
FLASH 5973952 5974000 48 0.0
RAM 516568 516568 0 0.0
all-clusters-minimal-app debug unknown 5456 5456 0 0.0
FLASH 5299954 5300002 48 0.0
RAM 222488 222488 0 0.0
bridge-app debug unknown 5472 5472 0 0.0
FLASH 4652302 4652350 48 0.0
RAM 201344 201344 0 0.0
camera-app debug unknown 5456 5456 0 0.0
FLASH 4675470 4675486 16 0.0
RAM 195792 195792 0 0.0
chip-tool debug unknown 6112 6112 0 0.0
FLASH 13305215 13305263 48 0.0
RAM 603456 603456 0 0.0
chip-tool-ipv6only arm64 unknown 21976 21976 0 0.0
FLASH 11498104 11498120 16 0.0
RAM 656136 656136 0 0.0
fabric-admin debug unknown 5800 5800 0 0.0
FLASH 11569977 11570025 48 0.0
RAM 603240 603240 0 0.0
fabric-bridge-app debug unknown 4720 4720 0 0.0
FLASH 4455900 4455916 16 0.0
RAM 188168 188168 0 0.0
fabric-sync debug unknown 4976 4976 0 0.0
FLASH 5572853 5572901 48 0.0
RAM 471600 471600 0 0.0
lighting-app debug+rpc+ui unknown 6184 6184 0 0.0
FLASH 5519121 5519137 16 0.0
RAM 205168 205168 0 0.0
lock-app debug unknown 5424 5424 0 0.0
FLASH 4692152 4692168 16 0.0
RAM 192344 192344 0 0.0
ota-provider-app debug unknown 4760 4760 0 0.0
FLASH 4314330 4314346 16 0.0
RAM 181000 181000 0 0.0
ota-requestor-app debug unknown 4712 4712 0 0.0
FLASH 4444682 4444698 16 0.0
RAM 185488 185488 0 0.0
shell debug unknown 4240 4240 0 0.0
FLASH 2982556 2982604 48 0.0
RAM 145688 145688 0 0.0
thermostat-no-ble arm64 unknown 9448 9448 0 0.0
FLASH 4141896 4141928 32 0.0
RAM 229840 229840 0 0.0
tv-app debug unknown 5752 5752 0 0.0
FLASH 5911733 5911749 16 0.0
RAM 595032 595032 0 0.0
tv-casting-app debug unknown 5320 5320 0 0.0
FLASH 11475709 11475725 16 0.0
RAM 718672 718672 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 913684 913684 0 0.0
RAM 142909 142909 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 904428 904428 0 0.0
RAM 125245 125245 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 850464 850464 0 0.0
RAM 141271 141271 0 0.0
nxp contact k32w0+release FLASH 587456 587456 0 0.0
RAM 70980 70980 0 0.0
mcxw71+release FLASH 601272 601272 0 0.0
RAM 63096 63096 0 0.0
light k32w0+release FLASH 613188 613188 0 0.0
RAM 70268 70268 0 0.0
k32w1+release FLASH 685896 685896 0 0.0
RAM 48584 48584 0 0.0
lock mcxw71+release FLASH 750112 750112 0 0.0
RAM 67500 67500 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1658236 1658236 0 0.0
RAM 212344 212344 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1562476 1562476 0 0.0
RAM 208560 208560 0 0.0
light cy8ckit_062s2_43012 FLASH 1441276 1441276 0 0.0
RAM 197296 197296 0 0.0
lock cy8ckit_062s2_43012 FLASH 1470164 1470164 0 0.0
RAM 224960 224960 0 0.0
qpg lighting-app qpg6105+debug FLASH 663852 663852 0 0.0
RAM 105156 105156 0 0.0
lock-app qpg6105+debug FLASH 622312 622312 0 0.0
RAM 99768 99768 0 0.0
stm32 light STM32WB5MM-DK FLASH 459920 459920 0 0.0
RAM 141472 141472 0 0.0
telink bridge-app tl7218x FLASH 669270 669270 0 0.0
RAM 90752 90752 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 622132 622132 0 0.0
RAM 31488 31488 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 760918 760918 0 0.0
RAM 40420 40420 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 754026 754026 0 0.0
RAM 97540 97540 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 681076 681076 0 0.0
RAM 52192 52192 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 709634 709634 0 0.0
RAM 73400 73400 0 0.0
light-switch-app-ota-shell-factory-data tl3218x_retention FLASH 702184 702184 0 0.0
RAM 37664 37664 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 601750 601750 0 0.0
RAM 137360 137360 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 789042 789042 0 0.0
RAM 96388 96388 0 0.0
tizen all-clusters-app arm unknown 5144 5144 0 0.0
FLASH 1770756 1770780 24 0.0
RAM 94152 94152 0 0.0
chip-tool-ubsan arm unknown 11492 11492 0 0.0
FLASH 18984862 18984886 24 0.0
RAM 8306668 8306668 0 0.0
mergify mergify merged ba8b5394 into master 26 days ago

Login to write a write a comment.

Login via GitHub

Assignees
No one assigned
Labels
Milestone