Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[TI] implement CC13X2 CC26X2 OTA feature with ext flash #14441

Merged
merged 7 commits into from
Feb 8, 2022

Conversation

srickardti
Copy link
Contributor

Problem

  • The CC13X2_26X2 platform does not have an OTA Image Processor implementation
  • The lock-app example does not contain OTA requestor clusters

Change overview

  • add OTA clusters to lock app example
  • Implement OTA platform code for cc13x2x7_26x2x7
  • update cc13x2x7_26x2x7 lock app example to initialize the OTA driver
  • update cc13x2x7_26x2x7 applications to an OTA enabled linkerscript
  • create merge tool for the OTA image and the BIM pre-built hexfile

NOTE: Further documentation of OTA process with the TI hardware is required.

Testing

  • Functionally tested with a RasPi 4B and the chip-tool

@github-actions
Copy link

github-actions bot commented Jan 31, 2022

PR #14441: Size comparison from 39115b9 to ca995b0

Increases above 0.2%:

platform target config section 39115b9 ca995b0 change % change
linux chip-tool-ipv6only arm64 (read only) 6960580 6985972 25392 0.4
(read/write) 282561 288945 6384 2.3
.data.rel.ro 178032 184384 6352 3.6
p6 lock-app default .data 2360 2368 8 0.3
qpg lock-app qpg6105+debug .data 992 996 4 0.4
Increases (10 builds for cyw30739, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 39115b9 ca995b0 change % change
cyw30739 light cyw930739m2evb_01 (read/write) 575578 575582 4 0.0
.app_xip_area 482800 482804 4 0.0
lock-app CYW30739 (read/write) 533606 534722 1116 0.2
.app_xip_area 442404 443488 1084 0.2
.bss 73988 74020 32 0.0
k32w lock k32w061+release (read/write) 661352 662336 984 0.1
.bss 75532 75556 24 0.0
.data 1892 1896 4 0.2
.text 578128 579084 956 0.2
linux chip-tool-ipv6only arm64 (read only) 6960580 6985972 25392 0.4
(read/write) 282561 288945 6384 2.3
.data.rel.ro 178032 184384 6352 3.6
.got 45056 45072 16 0.0
.rodata 386556 387068 512 0.1
.text 5989156 6002436 13280 0.2
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2300744 2301600 856 0.0
.bss 178040 178072 32 0.0
.data 5544 5552 8 0.1
.text 1263344 1264200 856 0.1
nrfconnect lock-app nrf52840dk_nrf52840 (read/write) 911623 912551 928 0.1
bss 116888 116920 32 0.0
rodata 104100 104260 160 0.2
text 613248 613980 732 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 821670 822598 928 0.1
bss 113704 113736 32 0.0
rodata 97304 97464 160 0.2
text 530212 530944 732 0.1
p6 lock-app default (read/write) 2303664 2304760 1096 0.0
.bss 103068 103092 24 0.0
.data 2360 2368 8 0.3
.text 1261928 1263024 1096 0.1
qpg lock-app qpg6105+debug (read only) 515760 516704 944 0.2
.bss 86944 86976 32 0.0
.data 992 996 4 0.4
.text 510440 511384 944 0.2
telink lighting-app tlsr9518adk80d (read/write) 843346 843362 16 0.0
text 591218 591236 18 0.0
Decreases (6 builds for efr32, mbed, p6, qpg)
platform target config section 39115b9 ca995b0 change % change
efr32 lighting-app BRD4161A+rpc (read only) 828872 828856 -16 -0.0
.text 828864 828848 -16 -0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read/write) 2382072 2382064 -8 -0.0
.text 1344672 1344664 -8 -0.0
lighting-app CY8CPROTO_062_4343W+release (read/write) 2336640 2336632 -8 -0.0
.text 1299240 1299232 -8 -0.0
p6 all-clusters-app default (read/write) 2442632 2442616 -16 -0.0
.text 1400896 1400880 -16 -0.0
qpg lighting-app qpg6105+debug (read only) 569652 569648 -4 -0.0
.text 564332 564328 -4 -0.0
lock-app qpg6105+debug (read/write) 146940 146936 -4 -0.0
Full report (31 builds for cyw30739, efr32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 39115b9 ca995b0 change % change
cyw30739 light cyw930739m2evb_01 (read/write) 575578 575582 4 0.0
.app_xip_area 482800 482804 4 0.0
.bss 75524 75524 0 0.0
.data 596 596 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
lock-app CYW30739 (read/write) 533606 534722 1116 0.2
.app_xip_area 442404 443488 1084 0.2
.bss 73988 74020 32 0.0
.data 560 560 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
efr32 lighting-app BRD4161A (read only) 841496 841496 0 0.0
(read/write) 125056 125056 0 0.0
.bss 123160 123160 0 0.0
.data 1892 1892 0 0.0
.text 841488 841488 0 0.0
BRD4161A+rpc (read only) 828872 828856 -16 -0.0
(read/write) 141712 141712 0 0.0
.bss 139720 139720 0 0.0
.data 1992 1992 0 0.0
.text 828864 828848 -16 -0.0
window-app BRD4161A (read only) 814108 814108 0 0.0
(read/write) 123684 123684 0 0.0
.bss 121836 121836 0 0.0
.data 1848 1848 0 0.0
.text 814100 814100 0 0.0
k32w light k32w061+release (read/write) 660276 660276 0 0.0
.bss 75212 75212 0 0.0
.data 1852 1852 0 0.0
.text 577412 577412 0 0.0
lock k32w061+release (read/write) 661352 662336 984 0.1
.bss 75532 75556 24 0.0
.data 1892 1896 4 0.2
.text 578128 579084 956 0.2
linux chip-tool-ipv6only arm64 (read only) 6960580 6985972 25392 0.4
(read/write) 282561 288945 6384 2.3
.bss 54593 54593 0 0.0
.data 1128 1128 0 0.0
.data.rel.ro 178032 184384 6352 3.6
.dynamic 560 560 0 0.0
.got 45056 45072 16 0.0
.init 24 24 0 0.0
.init_array 184 184 0 0.0
.rodata 386556 387068 512 0.1
.text 5989156 6002436 13280 0.2
thermostat-no-ble arm64 (read only) 2079596 2079596 0 0.0
(read/write) 148433 148433 0 0.0
.bss 66177 66177 0 0.0
.data 952 952 0 0.0
.data.rel.ro 74200 74200 0 0.0
.dynamic 560 560 0 0.0
.got 4136 4136 0 0.0
.init 24 24 0 0.0
.init_array 336 336 0 0.0
.rodata 130252 130252 0 0.0
.text 1732144 1732144 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2382072 2382064 -8 -0.0
.bss 187884 187884 0 0.0
.data 5288 5288 0 0.0
.text 1344672 1344664 -8 -0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2336640 2336632 -8 -0.0
.bss 178160 178160 0 0.0
.data 5568 5568 0 0.0
.text 1299240 1299232 -8 -0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2300744 2301600 856 0.0
.bss 178040 178072 32 0.0
.data 5544 5552 8 0.1
.text 1263344 1264200 856 0.1
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139712 1139712 0 0.0
.bss 11756 11756 0 0.0
.data 4368 4368 0 0.0
.text 103096 103096 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2291348 2291348 0 0.0
.bss 175316 175316 0 0.0
.data 5368 5368 0 0.0
.text 1253920 1253920 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 978979 978979 0 0.0
bss 118528 118528 0 0.0
rodata 115464 115464 0 0.0
text 667216 667216 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 964555 964555 0 0.0
bss 115572 115572 0 0.0
rodata 106936 106936 0 0.0
text 663660 663660 0 0.0
nrf52840dongle_nrf52840 (read/write) 995063 995063 0 0.0
bss 119700 119700 0 0.0
rodata 114296 114296 0 0.0
text 672608 672608 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 888178 888178 0 0.0
bss 115316 115316 0 0.0
rodata 108740 108740 0 0.0
text 583400 583400 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 911623 912551 928 0.1
bss 116888 116920 32 0.0
rodata 104100 104260 160 0.2
text 613248 613980 732 0.1
nrf5340dk_nrf5340_cpuapp (read/write) 821670 822598 928 0.1
bss 113704 113736 32 0.0
rodata 97304 97464 160 0.2
text 530212 530944 732 0.1
pigweed-app nrf52840dk_nrf52840 (read/write) 541779 541779 0 0.0
bss 52588 52588 0 0.0
rodata 50048 50048 0 0.0
text 376940 376940 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 914495 914495 0 0.0
bss 116644 116644 0 0.0
rodata 104612 104612 0 0.0
text 615772 615772 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 909671 909671 0 0.0
bss 116652 116652 0 0.0
rodata 103716 103716 0 0.0
text 611820 611820 0 0.0
shell nrf52840dk_nrf52840 (read/write) 798379 798379 0 0.0
bss 109776 109776 0 0.0
rodata 78352 78352 0 0.0
text 533752 533752 0 0.0
p6 all-clusters-app default (read/write) 2442632 2442616 -16 -0.0
.bss 116028 116028 0 0.0
.data 2576 2576 0 0.0
.text 1400896 1400880 -16 -0.0
light-app default (read/write) 2338192 2338192 0 0.0
.bss 103348 103348 0 0.0
.data 2400 2400 0 0.0
.text 1296456 1296456 0 0.0
lock-app default (read/write) 2303664 2304760 1096 0.0
.bss 103068 103092 24 0.0
.data 2360 2368 8 0.3
.text 1261928 1263024 1096 0.1
qpg lighting-app qpg6105+debug (read only) 569652 569648 -4 -0.0
(read/write) 146940 146940 0 0.0
.bss 87504 87504 0 0.0
.data 1056 1056 0 0.0
.text 564332 564328 -4 -0.0
lock-app qpg6105+debug (read only) 515760 516704 944 0.2
(read/write) 146940 146936 -4 -0.0
.bss 86944 86976 32 0.0
.data 992 996 4 0.4
.text 510440 511384 944 0.2
persistent-storage-app qpg6105+debug (read only) 107140 107140 0 0.0
(read/write) 146940 146940 0 0.0
.bss 38504 38504 0 0.0
.data 288 288 0 0.0
.text 101820 101820 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 843346 843362 16 0.0
bss 85552 85552 0 0.0
noinit 37160 37160 0 0.0
text 591218 591236 18 0.0

@github-actions
Copy link

github-actions bot commented Jan 31, 2022

PR #14441: Size comparison from 39115b9 to 837dfff

Increases above 0.2%:

platform target config section 39115b9 837dfff change % change
linux chip-tool-ipv6only arm64 (read only) 6960580 6985972 25392 0.4
(read/write) 282561 288945 6384 2.3
.data.rel.ro 178032 184384 6352 3.6
p6 lock-app default .data 2360 2368 8 0.3
qpg lock-app qpg6105+debug .data 992 996 4 0.4
Increases (9 builds for cyw30739, esp32, k32w, linux, mbed, p6, qpg, telink)
platform target config section 39115b9 837dfff change % change
cyw30739 light cyw930739m2evb_01 (read/write) 575578 575582 4 0.0
.app_xip_area 482800 482804 4 0.0
lock-app CYW30739 (read/write) 533606 534722 1116 0.2
.app_xip_area 442404 443488 1084 0.2
.bss 73988 74020 32 0.0
esp32 all-clusters-app c3devkit (read only) 932512 932520 8 0.0
.flash.text 932512 932520 8 0.0
k32w lock k32w061+release (read/write) 661352 662336 984 0.1
.bss 75532 75556 24 0.0
.data 1892 1896 4 0.2
.text 578128 579084 956 0.2
linux chip-tool-ipv6only arm64 (read only) 6960580 6985972 25392 0.4
(read/write) 282561 288945 6384 2.3
.data.rel.ro 178032 184384 6352 3.6
.got 45056 45072 16 0.0
.rodata 386556 387068 512 0.1
.text 5989156 6002436 13280 0.2
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2300744 2301600 856 0.0
.bss 178040 178072 32 0.0
.data 5544 5552 8 0.1
.text 1263344 1264200 856 0.1
p6 lock-app default (read/write) 2303664 2304760 1096 0.0
.bss 103068 103092 24 0.0
.data 2360 2368 8 0.3
.text 1261928 1263024 1096 0.1
qpg lock-app qpg6105+debug (read only) 515760 516704 944 0.2
.bss 86944 86976 32 0.0
.data 992 996 4 0.4
.text 510440 511384 944 0.2
telink lighting-app tlsr9518adk80d (read/write) 843346 843362 16 0.0
text 591218 591236 18 0.0
Decreases (7 builds for efr32, esp32, mbed, p6, qpg)
platform target config section 39115b9 837dfff change % change
efr32 lighting-app BRD4161A+rpc (read only) 828872 828856 -16 -0.0
.text 828864 828848 -16 -0.0
esp32 all-clusters-app m5stack (read only) 980495 980491 -4 -0.0
.flash.text 975111 975107 -4 -0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read/write) 2382072 2382064 -8 -0.0
.text 1344672 1344664 -8 -0.0
lighting-app CY8CPROTO_062_4343W+release (read/write) 2336640 2336632 -8 -0.0
.text 1299240 1299232 -8 -0.0
p6 all-clusters-app default (read/write) 2442632 2442616 -16 -0.0
.text 1400896 1400880 -16 -0.0
qpg lighting-app qpg6105+debug (read only) 569652 569648 -4 -0.0
.text 564332 564328 -4 -0.0
lock-app qpg6105+debug (read/write) 146940 146936 -4 -0.0
Full report (23 builds for cyw30739, efr32, esp32, k32w, linux, mbed, p6, qpg, telink)
platform target config section 39115b9 837dfff change % change
cyw30739 light cyw930739m2evb_01 (read/write) 575578 575582 4 0.0
.app_xip_area 482800 482804 4 0.0
.bss 75524 75524 0 0.0
.data 596 596 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
lock-app CYW30739 (read/write) 533606 534722 1116 0.2
.app_xip_area 442404 443488 1084 0.2
.bss 73988 74020 32 0.0
.data 560 560 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
efr32 lighting-app BRD4161A (read only) 841496 841496 0 0.0
(read/write) 125056 125056 0 0.0
.bss 123160 123160 0 0.0
.data 1892 1892 0 0.0
.text 841488 841488 0 0.0
BRD4161A+rpc (read only) 828872 828856 -16 -0.0
(read/write) 141712 141712 0 0.0
.bss 139720 139720 0 0.0
.data 1992 1992 0 0.0
.text 828864 828848 -16 -0.0
window-app BRD4161A (read only) 814108 814108 0 0.0
(read/write) 123684 123684 0 0.0
.bss 121836 121836 0 0.0
.data 1848 1848 0 0.0
.text 814100 814100 0 0.0
esp32 all-clusters-app c3devkit (read only) 932512 932520 8 0.0
(read/write) 1397882 1397882 0 0.0
.dram0.bss 68968 68968 0 0.0
.dram0.data 14268 14268 0 0.0
.flash.rodata 195744 195744 0 0.0
.flash.text 932512 932520 8 0.0
.iram0.text 62056 62056 0 0.0
m5stack (read only) 980495 980491 -4 -0.0
(read/write) 462248 462248 0 0.0
.dram0.bss 73728 73728 0 0.0
.dram0.data 34024 34024 0 0.0
.flash.rodata 222368 222368 0 0.0
.flash.text 975111 975107 -4 -0.0
.iram0.text 123399 123399 0 0.0
k32w light k32w061+release (read/write) 660276 660276 0 0.0
.bss 75212 75212 0 0.0
.data 1852 1852 0 0.0
.text 577412 577412 0 0.0
lock k32w061+release (read/write) 661352 662336 984 0.1
.bss 75532 75556 24 0.0
.data 1892 1896 4 0.2
.text 578128 579084 956 0.2
linux chip-tool-ipv6only arm64 (read only) 6960580 6985972 25392 0.4
(read/write) 282561 288945 6384 2.3
.bss 54593 54593 0 0.0
.data 1128 1128 0 0.0
.data.rel.ro 178032 184384 6352 3.6
.dynamic 560 560 0 0.0
.got 45056 45072 16 0.0
.init 24 24 0 0.0
.init_array 184 184 0 0.0
.rodata 386556 387068 512 0.1
.text 5989156 6002436 13280 0.2
thermostat-no-ble arm64 (read only) 2079596 2079596 0 0.0
(read/write) 148433 148433 0 0.0
.bss 66177 66177 0 0.0
.data 952 952 0 0.0
.data.rel.ro 74200 74200 0 0.0
.dynamic 560 560 0 0.0
.got 4136 4136 0 0.0
.init 24 24 0 0.0
.init_array 336 336 0 0.0
.rodata 130252 130252 0 0.0
.text 1732144 1732144 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2382072 2382064 -8 -0.0
.bss 187884 187884 0 0.0
.data 5288 5288 0 0.0
.text 1344672 1344664 -8 -0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2336640 2336632 -8 -0.0
.bss 178160 178160 0 0.0
.data 5568 5568 0 0.0
.text 1299240 1299232 -8 -0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2300744 2301600 856 0.0
.bss 178040 178072 32 0.0
.data 5544 5552 8 0.1
.text 1263344 1264200 856 0.1
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139712 1139712 0 0.0
.bss 11756 11756 0 0.0
.data 4368 4368 0 0.0
.text 103096 103096 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2291348 2291348 0 0.0
.bss 175316 175316 0 0.0
.data 5368 5368 0 0.0
.text 1253920 1253920 0 0.0
p6 all-clusters-app default (read/write) 2442632 2442616 -16 -0.0
.bss 116028 116028 0 0.0
.data 2576 2576 0 0.0
.text 1400896 1400880 -16 -0.0
light-app default (read/write) 2338192 2338192 0 0.0
.bss 103348 103348 0 0.0
.data 2400 2400 0 0.0
.text 1296456 1296456 0 0.0
lock-app default (read/write) 2303664 2304760 1096 0.0
.bss 103068 103092 24 0.0
.data 2360 2368 8 0.3
.text 1261928 1263024 1096 0.1
qpg lighting-app qpg6105+debug (read only) 569652 569648 -4 -0.0
(read/write) 146940 146940 0 0.0
.bss 87504 87504 0 0.0
.data 1056 1056 0 0.0
.text 564332 564328 -4 -0.0
lock-app qpg6105+debug (read only) 515760 516704 944 0.2
(read/write) 146940 146936 -4 -0.0
.bss 86944 86976 32 0.0
.data 992 996 4 0.4
.text 510440 511384 944 0.2
persistent-storage-app qpg6105+debug (read only) 107140 107140 0 0.0
(read/write) 146940 146940 0 0.0
.bss 38504 38504 0 0.0
.data 288 288 0 0.0
.text 101820 101820 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 843346 843362 16 0.0
bss 85552 85552 0 0.0
noinit 37160 37160 0 0.0
text 591218 591236 18 0.0

@github-actions
Copy link

github-actions bot commented Jan 31, 2022

PR #14441: Size comparison from 39115b9 to d6fc75f

Increases above 0.2%:

platform target config section 39115b9 d6fc75f change % change
cyw30739 lock-app CYW30739 (read/write) 533606 536642 3036 0.6
.app_xip_area 442404 445408 3004 0.7
k32w lock k32w061+release (read/write) 661352 664244 2892 0.4
.text 578128 580992 2864 0.5
linux chip-tool debug (read only) 7005157 7032029 26872 0.4
(read/write) 180232 186568 6336 3.5
.data.rel.ro 136928 143248 6320 4.6
.text 6249029 6263925 14896 0.2
chip-tool-ipv6only arm64 (read only) 6960580 6985972 25392 0.4
(read/write) 282561 288945 6384 2.3
.data.rel.ro 178032 184384 6352 3.6
qpg lock-app qpg6105+debug (read only) 515760 518620 2860 0.6
.data 992 996 4 0.4
.text 510440 513300 2860 0.6
Increases (11 builds for cyw30739, k32w, linux, qpg, telink)
platform target config section 39115b9 d6fc75f change % change
cyw30739 light cyw930739m2evb_01 (read/write) 575578 575582 4 0.0
.app_xip_area 482800 482804 4 0.0
lock-app CYW30739 (read/write) 533606 536642 3036 0.6
.app_xip_area 442404 445408 3004 0.7
.bss 73988 74020 32 0.0
k32w lock k32w061+release (read/write) 661352 664244 2892 0.4
.bss 75532 75556 24 0.0
.data 1892 1896 4 0.2
.text 578128 580992 2864 0.5
linux all-clusters-app debug (read only) 2289209 2289225 16 0.0
.rodata 202741 202757 16 0.0
bridge-app debug+rpc (read only) 1625749 1625781 32 0.0
.rodata 137268 137300 32 0.0
chip-tool debug (read only) 7005157 7032029 26872 0.4
(read/write) 180232 186568 6336 3.5
.data.rel.ro 136928 143248 6320 4.6
.got 4736 4744 8 0.2
.rodata 403368 403893 525 0.1
.text 6249029 6263925 14896 0.2
chip-tool-ipv6only arm64 (read only) 6960580 6985972 25392 0.4
(read/write) 282561 288945 6384 2.3
.data.rel.ro 178032 184384 6352 3.6
.got 45056 45072 16 0.0
.rodata 386556 387068 512 0.1
.text 5989156 6002436 13280 0.2
door-lock-app debug (read only) 1846673 1846705 32 0.0
.rodata 170524 170556 32 0.0
ota-requestor-app debug (read only) 1634505 1634521 16 0.0
.rodata 143487 143503 16 0.0
qpg lock-app qpg6105+debug (read only) 515760 518620 2860 0.6
.bss 86944 86976 32 0.0
.data 992 996 4 0.4
.text 510440 513300 2860 0.6
telink lighting-app tlsr9518adk80d (read/write) 843346 843362 16 0.0
text 591218 591236 18 0.0
Decreases (5 builds for efr32, linux, qpg)
platform target config section 39115b9 d6fc75f change % change
efr32 lighting-app BRD4161A+rpc (read only) 828872 828856 -16 -0.0
.text 828864 828848 -16 -0.0
linux ota-provider-app debug (read only) 1625777 1625761 -16 -0.0
.rodata 147246 147230 -16 -0.0
tv-app debug (read only) 2400681 2400673 -8 -0.0
.rodata 190932 190924 -8 -0.0
qpg lighting-app qpg6105+debug (read only) 569652 569648 -4 -0.0
.text 564332 564328 -4 -0.0
lock-app qpg6105+debug (read/write) 146940 146936 -4 -0.0
Full report (22 builds for cyw30739, efr32, k32w, linux, qpg, telink)
platform target config section 39115b9 d6fc75f change % change
cyw30739 light cyw930739m2evb_01 (read/write) 575578 575582 4 0.0
.app_xip_area 482800 482804 4 0.0
.bss 75524 75524 0 0.0
.data 596 596 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
lock-app CYW30739 (read/write) 533606 536642 3036 0.6
.app_xip_area 442404 445408 3004 0.7
.bss 73988 74020 32 0.0
.data 560 560 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
efr32 lighting-app BRD4161A (read only) 841496 841496 0 0.0
(read/write) 125056 125056 0 0.0
.bss 123160 123160 0 0.0
.data 1892 1892 0 0.0
.text 841488 841488 0 0.0
BRD4161A+rpc (read only) 828872 828856 -16 -0.0
(read/write) 141712 141712 0 0.0
.bss 139720 139720 0 0.0
.data 1992 1992 0 0.0
.text 828864 828848 -16 -0.0
window-app BRD4161A (read only) 814108 814108 0 0.0
(read/write) 123684 123684 0 0.0
.bss 121836 121836 0 0.0
.data 1848 1848 0 0.0
.text 814100 814100 0 0.0
k32w light k32w061+release (read/write) 660276 660276 0 0.0
.bss 75212 75212 0 0.0
.data 1852 1852 0 0.0
.text 577412 577412 0 0.0
lock k32w061+release (read/write) 661352 664244 2892 0.4
.bss 75532 75556 24 0.0
.data 1892 1896 4 0.2
.text 578128 580992 2864 0.5
linux all-clusters-app debug (read only) 2289209 2289225 16 0.0
(read/write) 145400 145400 0 0.0
.bss 61696 61696 0 0.0
.data 1200 1200 0 0.0
.data.rel.ro 76824 76824 0 0.0
.dynamic 592 592 0 0.0
.got 4128 4128 0 0.0
.init 27 27 0 0.0
.init_array 912 912 0 0.0
.rodata 202741 202757 16 0.0
.text 1925810 1925810 0 0.0
bridge-app debug+rpc (read only) 1625749 1625781 32 0.0
(read/write) 87808 87808 0 0.0
.bss 43776 43776 0 0.0
.data 1794 1794 0 0.0
.data.rel.ro 37104 37104 0 0.0
.dynamic 592 592 0 0.0
.got 3968 3968 0 0.0
.init 27 27 0 0.0
.init_array 536 536 0 0.0
.rodata 137268 137300 32 0.0
.text 1373653 1373653 0 0.0
chip-tool debug (read only) 7005157 7032029 26872 0.4
(read/write) 180232 186568 6336 3.5
.bss 36264 36264 0 0.0
.data 1088 1088 0 0.0
.data.rel.ro 136928 143248 6320 4.6
.dynamic 608 608 0 0.0
.got 4736 4744 8 0.2
.init 27 27 0 0.0
.init_array 600 600 0 0.0
.rodata 403368 403893 525 0.1
.text 6249029 6263925 14896 0.2
chip-tool-ipv6only arm64 (read only) 6960580 6985972 25392 0.4
(read/write) 282561 288945 6384 2.3
.bss 54593 54593 0 0.0
.data 1128 1128 0 0.0
.data.rel.ro 178032 184384 6352 3.6
.dynamic 560 560 0 0.0
.got 45056 45072 16 0.0
.init 24 24 0 0.0
.init_array 184 184 0 0.0
.rodata 386556 387068 512 0.1
.text 5989156 6002436 13280 0.2
door-lock-app debug (read only) 1846673 1846705 32 0.0
(read/write) 117720 117720 0 0.0
.bss 49856 49856 0 0.0
.data 962 962 0 0.0
.data.rel.ro 61504 61504 0 0.0
.dynamic 592 592 0 0.0
.got 4104 4104 0 0.0
.init 27 27 0 0.0
.init_array 656 656 0 0.0
.rodata 170524 170556 32 0.0
.text 1528370 1528370 0 0.0
lighting-app debug+rpc (read only) 1946521 1946521 0 0.0
(read/write) 122712 122712 0 0.0
.bss 50808 50808 0 0.0
.data 1392 1392 0 0.0
.data.rel.ro 65024 65024 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 696 696 0 0.0
.rodata 160305 160305 0 0.0
.text 1632418 1632418 0 0.0
ota-provider-app debug (read only) 1625777 1625761 -16 -0.0
(read/write) 87456 87456 0 0.0
.bss 48736 48736 0 0.0
.data 1064 1064 0 0.0
.data.rel.ro 32168 32168 0 0.0
.dynamic 608 608 0 0.0
.got 4240 4240 0 0.0
.init 27 27 0 0.0
.init_array 600 600 0 0.0
.rodata 147246 147230 -16 -0.0
.text 1361426 1361426 0 0.0
ota-requestor-app debug (read only) 1634505 1634521 16 0.0
(read/write) 90504 90504 0 0.0
.bss 50048 50048 0 0.0
.data 1096 1096 0 0.0
.data.rel.ro 34088 34088 0 0.0
.dynamic 592 592 0 0.0
.got 4032 4032 0 0.0
.init 27 27 0 0.0
.init_array 608 608 0 0.0
.rodata 143487 143503 16 0.0
.text 1374994 1374994 0 0.0
shell debug (read only) 2263833 2263833 0 0.0
(read/write) 147176 147176 0 0.0
.bss 69408 69408 0 0.0
.data 768 768 0 0.0
.data.rel.ro 71328 71328 0 0.0
.dynamic 592 592 0 0.0
.got 4160 4160 0 0.0
.init 27 27 0 0.0
.init_array 896 896 0 0.0
.rodata 203506 203506 0 0.0
.text 1905602 1905602 0 0.0
thermostat-no-ble arm64 (read only) 2079596 2079596 0 0.0
(read/write) 148433 148433 0 0.0
.bss 66177 66177 0 0.0
.data 952 952 0 0.0
.data.rel.ro 74200 74200 0 0.0
.dynamic 560 560 0 0.0
.got 4136 4136 0 0.0
.init 24 24 0 0.0
.init_array 336 336 0 0.0
.rodata 130252 130252 0 0.0
.text 1732144 1732144 0 0.0
tv-app debug (read only) 2400681 2400673 -8 -0.0
(read/write) 317992 317992 0 0.0
.bss 237312 237312 0 0.0
.data 2944 2944 0 0.0
.data.rel.ro 71752 71752 0 0.0
.dynamic 592 592 0 0.0
.got 4520 4520 0 0.0
.init 27 27 0 0.0
.init_array 864 864 0 0.0
.rodata 190932 190924 -8 -0.0
.text 2039250 2039250 0 0.0
qpg lighting-app qpg6105+debug (read only) 569652 569648 -4 -0.0
(read/write) 146940 146940 0 0.0
.bss 87504 87504 0 0.0
.data 1056 1056 0 0.0
.text 564332 564328 -4 -0.0
lock-app qpg6105+debug (read only) 515760 518620 2860 0.6
(read/write) 146940 146936 -4 -0.0
.bss 86944 86976 32 0.0
.data 992 996 4 0.4
.text 510440 513300 2860 0.6
persistent-storage-app qpg6105+debug (read only) 107140 107140 0 0.0
(read/write) 146940 146940 0 0.0
.bss 38504 38504 0 0.0
.data 288 288 0 0.0
.text 101820 101820 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 843346 843362 16 0.0
bss 85552 85552 0 0.0
noinit 37160 37160 0 0.0
text 591218 591236 18 0.0

@bzbarsky-apple bzbarsky-apple dismissed their stale review February 1, 2022 04:41

SetBlock issue addressed.

@srickardti
Copy link
Contributor Author

NotifyUpdateApplied was a recent add and I've been communicating with everyone that it should be called by each platform developer once running the new software image. The Requestor will use Configuration Manager as the source of truth so that's where it needs to make sure the software version is updated.

I'd be willing to add this, but I'm not quite sure where to do it. The only reference I can find is the Linux implementation, and I'm not sure how that can be applied here.

The values in the configuration manager will be preserved across the reset and subsequent image update. That means the device can connect back to the Thread network and will have the Fabric info, but the OTA requestor does not seem to persist any of the OTA data. Specifically the provider node and endpoint id and the version sent with the OTA protocol is not persisted through the configuration manager.

This seems like a pretty common case for embedded devices that have to reset to apply new firmware or even non-embedded devices that would want to restart their daemon processes to apply an update. There might be a cleaner way to implement this within the OTA requestor itself, but again I'm not sure where the best place would be.

@carol-apple
Copy link
Contributor

NotifyUpdateApplied was a recent add and I've been communicating with everyone that it should be called by each platform developer once running the new software image. The Requestor will use Configuration Manager as the source of truth so that's where it needs to make sure the software version is updated.

I'd be willing to add this, but I'm not quite sure where to do it. The only reference I can find is the Linux implementation, and I'm not sure how that can be applied here.

Yeah, the Linux OTA Requestor does not persist any data as of yet.

The values in the configuration manager will be preserved across the reset and subsequent image update. That means the device can connect back to the Thread network and will have the Fabric info, but the OTA requestor does not seem to persist any of the OTA data. Specifically the provider node and endpoint id and the version sent with the OTA protocol is not persisted through the configuration manager.

I am currently working on supporting DefaultOTAProviders attribute. This attribute will contain provider node ID, fabric index, and endpoint. Once this attribute has been supported, we will add persisting that attribute.

With that said, software version should still come from Configuration Manager but for Linux, this is not something that can be set (in Configuration Manager). I'll let @shubhamdp comment on how ESP32 plans on updating software version.

This seems like a pretty common case for embedded devices that have to reset to apply new firmware or even non-embedded devices that would want to restart their daemon processes to apply an update. There might be a cleaner way to implement this within the OTA requestor itself, but again I'm not sure where the best place would be.

@shubhamdp
Copy link
Contributor

@srickardti, AFAIK, Configuration manger reads software version by reading CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION macro. Basically you'll need a way to define this macro. In PR #14693 I have tried making the software version configurable, which can be set from application.

@tima-q
Copy link
Contributor

tima-q commented Feb 7, 2022

@srickardti - are you pushing this PR forward ? We're looking to add OTA to our lock-app example as well, and this PR already contains the common changes.
@carol-apple The changes around the 'NotifyUpdateApplied' API - can that be captured in a follow-up PR ? If I understand correctly it's actually a generic function for all platforms, to be hooked to the Software version being different then what's inside the Configuration Manager ? So the flow can be the same for all ?

  • Init
  • Check version in define/const <> Configuration Mem contents
    -- if different, trigger NotifyUpdateApplied
  • all cases - write const to Configuration Mem

@srickardti
Copy link
Contributor Author

@tima-q I'm just keeping this PR up-to-date with the mainline, waiting for 3 reviewers to get it pulled in

@github-actions
Copy link

github-actions bot commented Feb 7, 2022

PR #14441: Size comparison from 26fa3fa to 6a9ca35

Increases above 0.2%:

platform target config section 26fa3fa 6a9ca35 change % change
cyw30739 lock cyw930739m2evb_01 (read/write) 552402 555470 3068 0.6
.app_xip_area 459816 462860 3044 0.7
k32w lock k32w061+release (read/write) 680500 683416 2916 0.4
.text 595880 598768 2888 0.5
mbed lock-app CY8CPROTO_062_4343W+release .text 1275448 1279488 4040 0.3
nrfconnect lock-app nrf52840dk_nrf52840 (read/write) 937067 939911 2844 0.3
rodata 106472 107300 828 0.8
text 632436 634448 2012 0.3
nrf5340dk_nrf5340_cpuapp (read/write) 844562 847434 2872 0.3
rodata 99644 100468 824 0.8
text 548236 550248 2012 0.4
p6 lock-app default .data 2392 2400 8 0.3
.text 1277848 1281512 3664 0.3
qpg lock-app qpg6105+debug (read only) 532012 534908 2896 0.5
.data 1024 1028 4 0.4
.text 526692 529588 2896 0.5
Increases (38 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 26fa3fa 6a9ca35 change % change
cyw30739 light cyw930739m2evb_01 (read/write) 594498 594518 20 0.0
.app_xip_area 500352 500372 20 0.0
lock cyw930739m2evb_01 (read/write) 552402 555470 3068 0.6
.app_xip_area 459816 462860 3044 0.7
.bss 75340 75364 24 0.0
ota-requestor cyw930739m2evb_01 (read/write) 576442 576462 20 0.0
.app_xip_area 474536 474556 20 0.0
efr32 lighting-app BRD4161A (read only) 865852 865884 32 0.0
.text 865844 865876 32 0.0
BRD4161A+rpc (read only) 853324 853356 32 0.0
.text 853316 853348 32 0.0
window-app BRD4161A (read only) 838072 838104 32 0.0
.text 838064 838096 32 0.0
esp32 all-clusters-app c3devkit (read only) 937362 937480 118 0.0
.flash.rodata 198320 198352 32 0.0
.flash.text 937362 937480 118 0.0
m5stack (read only) 985219 985307 88 0.0
.flash.rodata 224920 224952 32 0.0
.flash.text 979835 979923 88 0.0
k32w light k32w061+release (read/write) 678632 678648 16 0.0
.text 594380 594396 16 0.0
lock k32w061+release (read/write) 680500 683416 2916 0.4
.bss 76896 76920 24 0.0
.data 1924 1928 4 0.2
.text 595880 598768 2888 0.5
linux all-clusters-app debug (read/write) 140032 140096 64 0.0
.bss 54656 54720 64 0.1
bridge-app debug+rpc (read only) 1704069 1704197 128 0.0
.text 1447445 1447573 128 0.0
chip-tool debug (read only) 7324117 7324245 128 0.0
.text 6543157 6543285 128 0.0
chip-tool-ipv6only arm64 (read only) 7263236 7263300 64 0.0
.text 6264212 6264276 64 0.0
door-lock-app debug (read only) 1908081 1908209 128 0.0
.text 1586962 1587090 128 0.0
lighting-app debug+rpc (read only) 2002913 2003041 128 0.0
.text 1685586 1685714 128 0.0
ota-provider-app debug (read only) 1711721 1711865 144 0.0
.text 1441986 1442130 144 0.0
ota-requestor-app debug (read only) 1701137 1701265 128 0.0
.text 1439570 1439698 128 0.0
shell debug (read/write) 141552 141616 64 0.0
.bss 62016 62080 64 0.1
thermostat-no-ble arm64 (read/write) 140561 140625 64 0.0
.bss 57601 57665 64 0.1
.rodata 131716 131860 144 0.1
tv-app debug (read/write) 139736 139800 64 0.0
.bss 57216 57280 64 0.1
mbed all-clusters-app CY8CPROTO_062_4343W+release (read/write) 2389664 2389760 96 0.0
.text 1352264 1352360 96 0.0
lock-app CY8CPROTO_062_4343W+release (read/write) 2312848 2316888 4040 0.2
.bss 180824 180848 24 0.0
.text 1275448 1279488 4040 0.3
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 1004811 1004827 16 0.0
text 686516 686540 24 0.0
nrf52840dk_nrf52840+rpc (read/write) 976287 976319 32 0.0
text 671164 671188 24 0.0
nrf52840dongle_nrf52840 (read/write) 1021631 1021647 16 0.0
text 692088 692112 24 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 911490 911506 16 0.0
text 601544 601568 24 0.0
lock-app nrf52840dk_nrf52840 (read/write) 937067 939911 2844 0.3
bss 119616 119648 32 0.0
rodata 106472 107300 828 0.8
text 632436 634448 2012 0.3
nrf5340dk_nrf5340_cpuapp (read/write) 844562 847434 2872 0.3
bss 116212 116240 28 0.0
rodata 99644 100468 824 0.8
text 548236 550248 2012 0.4
pump-app nrf52840dk_nrf52840 (read/write) 939299 939331 32 0.0
text 634680 634704 24 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 934639 934671 32 0.0
text 630716 630740 24 0.0
shell nrf52840dk_nrf52840 (read/write) 803327 803343 16 0.0
text 535988 536004 16 0.0
p6 all-clusters-app default (read/write) 2450968 2450984 16 0.0
.text 1409232 1409248 16 0.0
light-app default (read/write) 2354400 2354432 32 0.0
.text 1312664 1312696 32 0.0
lock-app default (read/write) 2319584 2323248 3664 0.2
.bss 105848 105880 32 0.0
.data 2392 2400 8 0.3
.text 1277848 1281512 3664 0.3
qpg lighting-app qpg6105+debug (read only) 585936 585960 24 0.0
.text 580616 580640 24 0.0
lock-app qpg6105+debug (read only) 532012 534908 2896 0.5
.bss 88304 88328 24 0.0
.data 1024 1028 4 0.4
.text 526692 529588 2896 0.5
telink lighting-app tlsr9518adk80d text 607666 607738 72 0.0
Decreases (10 builds for esp32, linux, mbed, p6, qpg, telink)
platform target config section 26fa3fa 6a9ca35 change % change
esp32 all-clusters-app c3devkit (read/write) 1401562 1400986 -576 -0.0
.dram0.bss 70064 69448 -616 -0.9
m5stack (read/write) 465904 465320 -584 -0.1
.dram0.bss 74816 74200 -616 -0.8
linux all-clusters-app debug (read only) 2327697 2327057 -640 -0.0
.text 1960594 1959954 -640 -0.0
shell debug (read only) 2301561 2300921 -640 -0.0
.text 1939362 1938722 -640 -0.0
thermostat-no-ble arm64 (read only) 2130196 2129316 -880 -0.0
.text 1780528 1779504 -1024 -0.1
tv-app debug (read only) 2525945 2525305 -640 -0.0
.text 2156914 2156274 -640 -0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release .bss 188972 188356 -616 -0.3
p6 all-clusters-app default .bss 117128 116512 -616 -0.5
qpg lock-app qpg6105+debug (read/write) 146940 146936 -4 -0.0
telink lighting-app tlsr9518adk80d (read/write) 866374 865822 -552 -0.1
bss 89208 88592 -616 -0.7
Full report (43 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 26fa3fa 6a9ca35 change % change
cyw30739 light cyw930739m2evb_01 (read/write) 594498 594518 20 0.0
.app_xip_area 500352 500372 20 0.0
.bss 76868 76868 0 0.0
.data 624 624 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
lock cyw930739m2evb_01 (read/write) 552402 555470 3068 0.6
.app_xip_area 459816 462860 3044 0.7
.bss 75340 75364 24 0.0
.data 588 588 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
ota-requestor cyw930739m2evb_01 (read/write) 576442 576462 20 0.0
.app_xip_area 474536 474556 20 0.0
.bss 84332 84332 0 0.0
.data 532 532 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read only) 865852 865884 32 0.0
(read/write) 126620 126620 0 0.0
.bss 124696 124696 0 0.0
.data 1924 1924 0 0.0
.text 865844 865876 32 0.0
BRD4161A+rpc (read only) 853324 853356 32 0.0
(read/write) 143280 143280 0 0.0
.bss 141256 141256 0 0.0
.data 2024 2024 0 0.0
.text 853316 853348 32 0.0
window-app BRD4161A (read only) 838072 838104 32 0.0
(read/write) 125264 125264 0 0.0
.bss 123384 123384 0 0.0
.data 1880 1880 0 0.0
.text 838064 838096 32 0.0
esp32 all-clusters-app c3devkit (read only) 937362 937480 118 0.0
(read/write) 1401562 1400986 -576 -0.0
.dram0.bss 70064 69448 -616 -0.9
.dram0.data 14276 14276 0 0.0
.flash.rodata 198320 198352 32 0.0
.flash.text 937362 937480 118 0.0
.iram0.text 62056 62056 0 0.0
m5stack (read only) 985219 985307 88 0.0
(read/write) 465904 465320 -584 -0.1
.dram0.bss 74816 74200 -616 -0.8
.dram0.data 34040 34040 0 0.0
.flash.rodata 224920 224952 32 0.0
.flash.text 979835 979923 88 0.0
.iram0.text 123399 123399 0 0.0
k32w light k32w061+release (read/write) 678632 678648 16 0.0
.bss 76568 76568 0 0.0
.data 1884 1884 0 0.0
.text 594380 594396 16 0.0
lock k32w061+release (read/write) 680500 683416 2916 0.4
.bss 76896 76920 24 0.0
.data 1924 1928 4 0.2
.text 595880 598768 2888 0.5
linux all-clusters-app debug (read only) 2327697 2327057 -640 -0.0
(read/write) 140032 140096 64 0.0
.bss 54656 54720 64 0.1
.data 1200 1200 0 0.0
.data.rel.ro 78504 78504 0 0.0
.dynamic 592 592 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 920 920 0 0.0
.rodata 204901 204901 0 0.0
.text 1960594 1959954 -640 -0.0
bridge-app debug+rpc (read only) 1704069 1704197 128 0.0
(read/write) 84296 84296 0 0.0
.bss 39088 39088 0 0.0
.data 1970 1970 0 0.0
.data.rel.ro 38088 38088 0 0.0
.dynamic 592 592 0 0.0
.got 3976 3976 0 0.0
.init 27 27 0 0.0
.init_array 560 560 0 0.0
.rodata 140172 140172 0 0.0
.text 1447445 1447573 128 0.0
chip-tool debug (read only) 7324117 7324245 128 0.0
(read/write) 184816 184816 0 0.0
.bss 32360 32360 0 0.0
.data 1152 1152 0 0.0
.data.rel.ro 145312 145312 0 0.0
.dynamic 608 608 0 0.0
.got 4760 4760 0 0.0
.init 27 27 0 0.0
.init_array 608 608 0 0.0
.rodata 410421 410421 0 0.0
.text 6543157 6543285 128 0.0
chip-tool-ipv6only arm64 (read only) 7263236 7263300 64 0.0
(read/write) 288385 288385 0 0.0
.bss 50641 50641 0 0.0
.data 1176 1176 0 0.0
.data.rel.ro 186872 186872 0 0.0
.dynamic 560 560 0 0.0
.got 45904 45904 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 393132 393132 0 0.0
.text 6264212 6264276 64 0.0
door-lock-app debug (read only) 1908081 1908209 128 0.0
(read/write) 110584 110584 0 0.0
.bss 42128 42128 0 0.0
.data 946 946 0 0.0
.data.rel.ro 62096 62096 0 0.0
.dynamic 592 592 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 672 672 0 0.0
.rodata 172722 172722 0 0.0
.text 1586962 1587090 128 0.0
lighting-app debug+rpc (read only) 2002913 2003041 128 0.0
(read/write) 115624 115624 0 0.0
.bss 43128 43128 0 0.0
.data 1368 1368 0 0.0
.data.rel.ro 65640 65640 0 0.0
.dynamic 608 608 0 0.0
.got 4144 4144 0 0.0
.init 27 27 0 0.0
.init_array 712 712 0 0.0
.rodata 162801 162801 0 0.0
.text 1685586 1685714 128 0.0
ota-provider-app debug (read only) 1711721 1711865 144 0.0
(read/write) 81336 81336 0 0.0
.bss 41120 41120 0 0.0
.data 1160 1160 0 0.0
.data.rel.ro 33528 33528 0 0.0
.dynamic 608 608 0 0.0
.got 4240 4240 0 0.0
.init 27 27 0 0.0
.init_array 624 624 0 0.0
.rodata 151174 151174 0 0.0
.text 1441986 1442130 144 0.0
ota-requestor-app debug (read only) 1701137 1701265 128 0.0
(read/write) 83288 83288 0 0.0
.bss 42272 42272 0 0.0
.data 1128 1128 0 0.0
.data.rel.ro 34584 34584 0 0.0
.dynamic 592 592 0 0.0
.got 4040 4040 0 0.0
.init 27 27 0 0.0
.init_array 624 624 0 0.0
.rodata 144791 144791 0 0.0
.text 1439570 1439698 128 0.0
shell debug (read only) 2301561 2300921 -640 -0.0
(read/write) 141552 141616 64 0.0
.bss 62016 62080 64 0.1
.data 800 800 0 0.0
.data.rel.ro 73040 73040 0 0.0
.dynamic 592 592 0 0.0
.got 4168 4168 0 0.0
.init 27 27 0 0.0
.init_array 904 904 0 0.0
.rodata 205778 205778 0 0.0
.text 1939362 1938722 -640 -0.0
thermostat-no-ble arm64 (read only) 2130196 2129316 -880 -0.0
(read/write) 140561 140625 64 0.0
.bss 57601 57665 64 0.1
.data 968 968 0 0.0
.data.rel.ro 74872 74872 0 0.0
.dynamic 560 560 0 0.0
.got 4152 4152 0 0.0
.init 24 24 0 0.0
.init_array 328 328 0 0.0
.rodata 131716 131860 144 0.1
.text 1780528 1779504 -1024 -0.1
tv-app debug (read only) 2525945 2525305 -640 -0.0
(read/write) 139736 139800 64 0.0
.bss 57216 57280 64 0.1
.data 3168 3168 0 0.0
.data.rel.ro 73336 73336 0 0.0
.dynamic 592 592 0 0.0
.got 4528 4528 0 0.0
.init 27 27 0 0.0
.init_array 880 880 0 0.0
.rodata 195444 195444 0 0.0
.text 2156914 2156274 -640 -0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2389664 2389760 96 0.0
.bss 188972 188356 -616 -0.3
.data 5296 5296 0 0.0
.text 1352264 1352360 96 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2348928 2348928 0 0.0
.bss 180936 180936 0 0.0
.data 5600 5600 0 0.0
.text 1311528 1311528 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2312848 2316888 4040 0.2
.bss 180824 180848 24 0.0
.data 5584 5584 0 0.0
.text 1275448 1279488 4040 0.3
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139712 1139712 0 0.0
.bss 11756 11756 0 0.0
.data 4368 4368 0 0.0
.text 103096 103096 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2302884 2302884 0 0.0
.bss 178100 178100 0 0.0
.data 5400 5400 0 0.0
.text 1265456 1265456 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 1004811 1004827 16 0.0
bss 121280 121280 0 0.0
rodata 118072 118072 0 0.0
text 686516 686540 24 0.0
nrf52840dk_nrf52840+rpc (read/write) 976287 976319 32 0.0
bss 117136 117136 0 0.0
rodata 109532 109532 0 0.0
text 671164 671188 24 0.0
nrf52840dongle_nrf52840 (read/write) 1021631 1021647 16 0.0
bss 122644 122644 0 0.0
rodata 116960 116960 0 0.0
text 692088 692112 24 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 911490 911506 16 0.0
bss 117840 117840 0 0.0
rodata 111332 111332 0 0.0
text 601544 601568 24 0.0
lock-app nrf52840dk_nrf52840 (read/write) 937067 939911 2844 0.3
bss 119616 119648 32 0.0
rodata 106472 107300 828 0.8
text 632436 634448 2012 0.3
nrf5340dk_nrf5340_cpuapp (read/write) 844562 847434 2872 0.3
bss 116212 116240 28 0.0
rodata 99644 100468 824 0.8
text 548236 550248 2012 0.4
pigweed-app nrf52840dk_nrf52840 (read/write) 541779 541779 0 0.0
bss 52588 52588 0 0.0
rodata 50048 50048 0 0.0
text 376940 376940 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 939299 939331 32 0.0
bss 119368 119368 0 0.0
rodata 106656 106656 0 0.0
text 634680 634704 24 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 934639 934671 32 0.0
bss 119372 119372 0 0.0
rodata 105948 105948 0 0.0
text 630716 630740 24 0.0
shell nrf52840dk_nrf52840 (read/write) 803327 803343 16 0.0
bss 111232 111232 0 0.0
rodata 78532 78532 0 0.0
text 535988 536004 16 0.0
p6 all-clusters-app default (read/write) 2450968 2450984 16 0.0
.bss 117128 116512 -616 -0.5
.data 2584 2584 0 0.0
.text 1409232 1409248 16 0.0
light-app default (read/write) 2354400 2354432 32 0.0
.bss 106128 106128 0 0.0
.data 2432 2432 0 0.0
.text 1312664 1312696 32 0.0
lock-app default (read/write) 2319584 2323248 3664 0.2
.bss 105848 105880 32 0.0
.data 2392 2400 8 0.3
.text 1277848 1281512 3664 0.3
qpg lighting-app qpg6105+debug (read only) 585936 585960 24 0.0
(read/write) 146940 146940 0 0.0
.bss 88856 88856 0 0.0
.data 1088 1088 0 0.0
.text 580616 580640 24 0.0
lock-app qpg6105+debug (read only) 532012 534908 2896 0.5
(read/write) 146940 146936 -4 -0.0
.bss 88304 88328 24 0.0
.data 1024 1028 4 0.4
.text 526692 529588 2896 0.5
persistent-storage-app qpg6105+debug (read only) 99548 99548 0 0.0
(read/write) 146940 146940 0 0.0
.bss 24004 24004 0 0.0
.data 176 176 0 0.0
.text 94228 94228 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 866374 865822 -552 -0.1
bss 89208 88592 -616 -0.7
noinit 37160 37160 0 0.0
text 607666 607738 72 0.0

@woody-apple
Copy link
Contributor

Fast tracking, this has been in review for a long time.

@woody-apple
Copy link
Contributor

/rebase

 * add OTA clusters to doorlock example
 * Implement OTA platform code for cc13x2x7_26x2x7
 * update cc13x2x7_26x2x7 doorlock example to initialize the OTA driver
 * update cc13x2x7_26x2x7 applications to an OTA enabled linkerscript
 * create merge tool for the OTA image and the BIM pre-built hexfile
@github-actions
Copy link

github-actions bot commented Feb 8, 2022

PR #14441: Size comparison from 2f785f4 to 07e6fac

Increases above 0.2%:

platform target config section 2f785f4 07e6fac change % change
cyw30739 lock cyw930739m2evb_01 (read/write) 552390 555442 3052 0.6
.app_xip_area 459804 462832 3028 0.7
k32w lock k32w061+release (read/write) 680488 683388 2900 0.4
.text 595868 598740 2872 0.5
mbed lock-app CY8CPROTO_062_4343W+release .text 1275440 1279480 4040 0.3
nrfconnect lock-app nrf52840dk_nrf52840 (read/write) 937091 939903 2812 0.3
rodata 106528 107356 828 0.8
text 632404 634388 1984 0.3
nrf5340dk_nrf5340_cpuapp (read/write) 844586 847426 2840 0.3
rodata 99700 100524 824 0.8
text 548204 550188 1984 0.4
p6 lock-app default .data 2392 2400 8 0.3
.text 1290744 1294376 3632 0.3
qpg lock-app qpg6105+debug (read only) 531884 534764 2880 0.5
.data 1024 1028 4 0.4
.text 526564 529444 2880 0.5
Increases (7 builds for cyw30739, k32w, mbed, nrfconnect, p6, qpg)
platform target config section 2f785f4 07e6fac change % change
cyw30739 lock cyw930739m2evb_01 (read/write) 552390 555442 3052 0.6
.app_xip_area 459804 462832 3028 0.7
.bss 75340 75364 24 0.0
k32w lock k32w061+release (read/write) 680488 683388 2900 0.4
.bss 76896 76920 24 0.0
.data 1924 1928 4 0.2
.text 595868 598740 2872 0.5
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2312840 2316880 4040 0.2
.bss 180824 180848 24 0.0
.text 1275440 1279480 4040 0.3
nrfconnect lock-app nrf52840dk_nrf52840 (read/write) 937091 939903 2812 0.3
bss 119616 119648 32 0.0
rodata 106528 107356 828 0.8
text 632404 634388 1984 0.3
nrf5340dk_nrf5340_cpuapp (read/write) 844586 847426 2840 0.3
bss 116212 116240 28 0.0
rodata 99700 100524 824 0.8
text 548204 550188 1984 0.4
p6 lock-app default (read/write) 2332480 2336112 3632 0.2
.bss 107304 107336 32 0.0
.data 2392 2400 8 0.3
.text 1290744 1294376 3632 0.3
qpg lock-app qpg6105+debug (read only) 531884 534764 2880 0.5
.bss 88304 88328 24 0.0
.data 1024 1028 4 0.4
.text 526564 529444 2880 0.5
Decreases (1 build for qpg)
platform target config section 2f785f4 07e6fac change % change
qpg lock-app qpg6105+debug (read/write) 146940 146936 -4 -0.0
Full report (43 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 2f785f4 07e6fac change % change
cyw30739 light cyw930739m2evb_01 (read/write) 594490 594490 0 0.0
.app_xip_area 500344 500344 0 0.0
.bss 76868 76868 0 0.0
.data 624 624 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
lock cyw930739m2evb_01 (read/write) 552390 555442 3052 0.6
.app_xip_area 459804 462832 3028 0.7
.bss 75340 75364 24 0.0
.data 588 588 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
ota-requestor cyw930739m2evb_01 (read/write) 576398 576398 0 0.0
.app_xip_area 474492 474492 0 0.0
.bss 84332 84332 0 0.0
.data 532 532 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read only) 865876 865876 0 0.0
(read/write) 126620 126620 0 0.0
.bss 124696 124696 0 0.0
.data 1924 1924 0 0.0
.text 865868 865868 0 0.0
BRD4161A+rpc (read only) 853332 853332 0 0.0
(read/write) 143280 143280 0 0.0
.bss 141256 141256 0 0.0
.data 2024 2024 0 0.0
.text 853324 853324 0 0.0
window-app BRD4161A (read only) 838080 838080 0 0.0
(read/write) 125264 125264 0 0.0
.bss 123384 123384 0 0.0
.data 1880 1880 0 0.0
.text 838072 838072 0 0.0
esp32 all-clusters-app c3devkit (read only) 937984 937984 0 0.0
(read/write) 1401162 1401162 0 0.0
.dram0.bss 69448 69448 0 0.0
.dram0.data 14276 14276 0 0.0
.flash.rodata 198528 198528 0 0.0
.flash.text 937984 937984 0 0.0
.iram0.text 62056 62056 0 0.0
m5stack (read only) 986303 986303 0 0.0
(read/write) 466200 466200 0 0.0
.dram0.bss 74592 74592 0 0.0
.dram0.data 34040 34040 0 0.0
.flash.rodata 225440 225440 0 0.0
.flash.text 980919 980919 0 0.0
.iram0.text 123399 123399 0 0.0
k32w light k32w061+release (read/write) 678572 678572 0 0.0
.bss 76568 76568 0 0.0
.data 1884 1884 0 0.0
.text 594320 594320 0 0.0
lock k32w061+release (read/write) 680488 683388 2900 0.4
.bss 76896 76920 24 0.0
.data 1924 1928 4 0.2
.text 595868 598740 2872 0.5
linux all-clusters-app debug (read only) 2327673 2327673 0 0.0
(read/write) 140096 140096 0 0.0
.bss 54688 54688 0 0.0
.data 1200 1200 0 0.0
.data.rel.ro 78536 78536 0 0.0
.dynamic 592 592 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 920 920 0 0.0
.rodata 205061 205061 0 0.0
.text 1960290 1960290 0 0.0
bridge-app debug+rpc (read only) 1704373 1704373 0 0.0
(read/write) 84328 84328 0 0.0
.bss 39088 39088 0 0.0
.data 1970 1970 0 0.0
.data.rel.ro 38120 38120 0 0.0
.dynamic 592 592 0 0.0
.got 3976 3976 0 0.0
.init 27 27 0 0.0
.init_array 560 560 0 0.0
.rodata 140204 140204 0 0.0
.text 1447621 1447621 0 0.0
chip-tool debug (read only) 7481925 7481925 0 0.0
(read/write) 198072 198072 0 0.0
.bss 32360 32360 0 0.0
.data 1152 1152 0 0.0
.data.rel.ro 158536 158536 0 0.0
.dynamic 608 608 0 0.0
.got 4784 4784 0 0.0
.init 27 27 0 0.0
.init_array 616 616 0 0.0
.rodata 416437 416437 0 0.0
.text 6663061 6663061 0 0.0
chip-tool-ipv6only arm64 (read only) 7402804 7402804 0 0.0
(read/write) 302401 302401 0 0.0
.bss 50641 50641 0 0.0
.data 1176 1176 0 0.0
.data.rel.ro 200208 200208 0 0.0
.dynamic 560 560 0 0.0
.got 46584 46584 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 399148 399148 0 0.0
.text 6363828 6363828 0 0.0
door-lock-app debug (read only) 1908777 1908777 0 0.0
(read/write) 110584 110584 0 0.0
.bss 42096 42096 0 0.0
.data 946 946 0 0.0
.data.rel.ro 62128 62128 0 0.0
.dynamic 592 592 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 672 672 0 0.0
.rodata 172818 172818 0 0.0
.text 1587442 1587442 0 0.0
lighting-app debug+rpc (read only) 2003609 2003609 0 0.0
(read/write) 115632 115632 0 0.0
.bss 43104 43104 0 0.0
.data 1368 1368 0 0.0
.data.rel.ro 65672 65672 0 0.0
.dynamic 608 608 0 0.0
.got 4144 4144 0 0.0
.init 27 27 0 0.0
.init_array 712 712 0 0.0
.rodata 162897 162897 0 0.0
.text 1686066 1686066 0 0.0
ota-provider-app debug (read only) 1712241 1712241 0 0.0
(read/write) 81368 81368 0 0.0
.bss 41120 41120 0 0.0
.data 1160 1160 0 0.0
.data.rel.ro 33560 33560 0 0.0
.dynamic 608 608 0 0.0
.got 4240 4240 0 0.0
.init 27 27 0 0.0
.init_array 624 624 0 0.0
.rodata 151238 151238 0 0.0
.text 1442322 1442322 0 0.0
ota-requestor-app debug (read only) 1701673 1701673 0 0.0
(read/write) 83320 83320 0 0.0
.bss 42272 42272 0 0.0
.data 1128 1128 0 0.0
.data.rel.ro 34616 34616 0 0.0
.dynamic 592 592 0 0.0
.got 4040 4040 0 0.0
.init 27 27 0 0.0
.init_array 624 624 0 0.0
.rodata 144887 144887 0 0.0
.text 1439890 1439890 0 0.0
shell debug (read only) 2301113 2301113 0 0.0
(read/write) 141648 141648 0 0.0
.bss 62080 62080 0 0.0
.data 800 800 0 0.0
.data.rel.ro 73072 73072 0 0.0
.dynamic 592 592 0 0.0
.got 4168 4168 0 0.0
.init 27 27 0 0.0
.init_array 904 904 0 0.0
.rodata 205810 205810 0 0.0
.text 1938786 1938786 0 0.0
thermostat-no-ble arm64 (read only) 2129932 2129932 0 0.0
(read/write) 140673 140673 0 0.0
.bss 57665 57665 0 0.0
.data 984 984 0 0.0
.data.rel.ro 74904 74904 0 0.0
.dynamic 560 560 0 0.0
.got 4152 4152 0 0.0
.init 24 24 0 0.0
.init_array 328 328 0 0.0
.rodata 131964 131964 0 0.0
.text 1779904 1779904 0 0.0
tv-app debug (read only) 2525897 2525897 0 0.0
(read/write) 139832 139832 0 0.0
.bss 57280 57280 0 0.0
.data 3168 3168 0 0.0
.data.rel.ro 73368 73368 0 0.0
.dynamic 592 592 0 0.0
.got 4528 4528 0 0.0
.init 27 27 0 0.0
.init_array 880 880 0 0.0
.rodata 195564 195564 0 0.0
.text 2156626 2156626 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2389752 2389752 0 0.0
.bss 188356 188356 0 0.0
.data 5296 5296 0 0.0
.text 1352352 1352352 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2348920 2348920 0 0.0
.bss 180936 180936 0 0.0
.data 5600 5600 0 0.0
.text 1311520 1311520 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2312840 2316880 4040 0.2
.bss 180824 180848 24 0.0
.data 5584 5584 0 0.0
.text 1275440 1279480 4040 0.3
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139648 1139648 0 0.0
.bss 11756 11756 0 0.0
.data 4368 4368 0 0.0
.text 103032 103032 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2302812 2302812 0 0.0
.bss 178100 178100 0 0.0
.data 5400 5400 0 0.0
.text 1265384 1265384 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 1004835 1004835 0 0.0
bss 121280 121280 0 0.0
rodata 118128 118128 0 0.0
text 686484 686484 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 976311 976311 0 0.0
bss 117136 117136 0 0.0
rodata 109588 109588 0 0.0
text 671124 671124 0 0.0
nrf52840dongle_nrf52840 (read/write) 1021639 1021639 0 0.0
bss 122644 122644 0 0.0
rodata 117016 117016 0 0.0
text 692052 692052 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 911494 911494 0 0.0
bss 117840 117840 0 0.0
rodata 111384 111384 0 0.0
text 601508 601508 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 937091 939903 2812 0.3
bss 119616 119648 32 0.0
rodata 106528 107356 828 0.8
text 632404 634388 1984 0.3
nrf5340dk_nrf5340_cpuapp (read/write) 844586 847426 2840 0.3
bss 116212 116240 28 0.0
rodata 99700 100524 824 0.8
text 548204 550188 1984 0.4
pigweed-app nrf52840dk_nrf52840 (read/write) 541747 541747 0 0.0
bss 52588 52588 0 0.0
rodata 50048 50048 0 0.0
text 376920 376920 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 939323 939323 0 0.0
bss 119368 119368 0 0.0
rodata 106712 106712 0 0.0
text 634648 634648 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 934663 934663 0 0.0
bss 119372 119372 0 0.0
rodata 106004 106004 0 0.0
text 630680 630680 0 0.0
shell nrf52840dk_nrf52840 (read/write) 803151 803151 0 0.0
bss 111232 111232 0 0.0
rodata 78532 78532 0 0.0
text 535824 535824 0 0.0
p6 all-clusters-app default (read/write) 2463848 2463848 0 0.0
.bss 117976 117976 0 0.0
.data 2584 2584 0 0.0
.text 1422112 1422112 0 0.0
light-app default (read/write) 2367296 2367296 0 0.0
.bss 107600 107600 0 0.0
.data 2432 2432 0 0.0
.text 1325560 1325560 0 0.0
lock-app default (read/write) 2332480 2336112 3632 0.2
.bss 107304 107336 32 0.0
.data 2392 2400 8 0.3
.text 1290744 1294376 3632 0.3
qpg lighting-app qpg6105+debug (read only) 585808 585808 0 0.0
(read/write) 146936 146936 0 0.0
.bss 88856 88856 0 0.0
.data 1084 1084 0 0.0
.text 580488 580488 0 0.0
lock-app qpg6105+debug (read only) 531884 534764 2880 0.5
(read/write) 146940 146936 -4 -0.0
.bss 88304 88328 24 0.0
.data 1024 1028 4 0.4
.text 526564 529444 2880 0.5
persistent-storage-app qpg6105+debug (read only) 99520 99520 0 0.0
(read/write) 146940 146940 0 0.0
.bss 24004 24004 0 0.0
.data 176 176 0 0.0
.text 94200 94200 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 865822 865822 0 0.0
bss 88592 88592 0 0.0
noinit 37160 37160 0 0.0
text 607684 607684 0 0.0

@andy31415 andy31415 merged commit b080024 into project-chip:master Feb 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants