$ make size-components
Total sizes:
DRAM .data size: 18748 bytes
DRAM .bss size: 42456 bytes
Used static DRAM: 61204 bytes ( 53996 available, 53.1% used)
Used static IRAM: 131000 bytes ( 72 available, 99.9% used)
Flash code: 1909566 bytes
Flash rodata: 791724 bytes
Total image size:~2851038 bytes (.bin may be padded larger)
Per-archive contributions to ELF file:
Archive File DRAM .data & .bss IRAM Flash code & rodata Total
libbt.a 521 3954 599 341306 147939 494319
libovms_webserver.a 0 185 0 99722 219428 319335
libstdc++.a 149 5640 0 119785 70474 196048
libduktape.a 0 0 0 120709 55997 176706
liblwip.a 19 3992 0 141697 19853 165561
libc-psram-workaround.a 1988 66 18361 111481 9316 141212
libvehicle_renaulttwizy. 0 10 0 90328 40188 130526
libnet80211.a 1977 8892 3322 97052 10288 121531
libmain.a 7 1177 0 93298 24608 119090
libesp32.a 2725 485 18932 24982 29492 76616
libwolfssl.a 0 16 0 57399 16504 73919
libpp.a 855 6339 13019 40872 7311 68396
libdriver.a 111 214 3253 37267 25758 66603
libbtdm_app.a 347 4629 15135 30068 2872 53051
libmongoose.a 16 221 0 36567 8803 45607
libvehicle_kiasoulev.a 0 1 0 31588 6762 38351
libovms_server_v2.a 0 14 0 31981 4541 36536
libphy.a 1334 868 4572 29060 0 35834
libmdns.a 0 1865 0 26947 370 29182
libsimcom.a 0 1 0 18537 6773 25311
libfreertos.a 4156 776 18116 0 2092 25140
libwpa.a 0 682 0 20266 2304 23252
libfatfs.a 12 47 0 20023 3036 23118
libwolfssh.a 0 12 0 19516 2446 21974
libvehicle.a 0 52 0 16196 5624 21872
libm-psram-workaround.a 4 0 0 19196 697 19897
libesp32wifi.a 0 1 0 13807 4949 18757
libcanopen.a 0 24 0 13437 5260 18721
libspinodma.a 0 12 6842 5593 5072 17519
libcan.a 0 36 0 13175 3482 16693
libconsole_ssh.a 2 8 0 12770 3704 16484
libovms_ota.a 0 8 0 9407 5594 15009
libnvs_flash.a 0 32 0 10763 2625 13420
libretools.a 12 6 0 10184 2291 12493
libgcc.a 4 20 104 10670 888 11686
libspi_flash.a 36 323 7188 1626 1866 11039
libesp32bluetooth.a 44 274 0 5886 4746 10950
libobd2ecu.a 0 1 0 8603 2197 10801
libheap.a 1205 8 5325 2424 976 9938
libovms_server_v3.a 0 13 0 8043 1836 9892
libwpa_supplicant.a 0 0 0 9812 4 9816
libvfsedit.a 924 0 0 6983 1751 9658
libsoc.a 657 8 7010 0 1247 8922
libsdmmc.a 0 0 0 5855 2667 8522
libvehicle_teslaroadster 0 1 0 7010 1486 8497
libwear_levelling.a 0 68 0 5917 1477 7462
libvehicle_nissanleaf.a 8 85 0 5893 1391 7377
libovms_location.a 4 36 0 5838 563 6441
libsdcard.a 0 9 16 3549 1369 4943
libcoexist.a 1277 94 3332 0 137 4840
libcrypto.a 0 64 0 3998 167 4229
libvehicle_voltampera.a 0 1 0 3041 1159 4201
libmbedtls.a 0 0 0 3677 320 3997
libvehicle_demo.a 0 1 0 3352 526 3879
libbootloader_support.a 0 4 0 2308 1424 3736
libtcpip_adapter.a 0 124 0 3220 306 3650
libvfs.a 40 63 0 3060 395 3558
libmicrorl.a 4 0 0 2896 576 3476
libpcp.a 0 56 0 3050 286 3392
libapp_update.a 0 80 0 2184 785 3049
librtc.a 0 4 2777 0 0 2781
libnewlib.a 152 252 806 611 133 1954
libpthread.a 16 12 178 1090 650 1946
libmcp2515.a 0 0 0 1526 317 1843
libvehicle_teslamodels.a 0 1 0 1276 519 1796
libesp32can.a 0 4 0 1725 52 1781
libovms_mdns.a 0 8 0 1495 213 1716
liblog.a 8 268 478 810 16 1580
libvehicle_obdii.a 0 1 0 782 647 1430
libcxx.a 12 16 0 751 453 1232
libcore.a 0 5 0 753 398 1156
libmax7317.a 0 1 0 444 470 915
libvehicle_none.a 0 1 0 261 489 751
libvehicle_track.a 0 1 0 261 482 744
libhal.a 0 0 515 0 32 547
libext12v.a 0 0 0 282 141 423
libovms_server.a 0 1 0 188 125 314
libstrverscmp.a 0 0 0 212 48 260
libesp32adc.a 0 0 0 112 20 132
libesp32system.a 0 0 0 96 20 116
libwpa2.a 0 1 0 0 0 1
libwps.a 0 1 0 0 0 1
libethernet.a 0 0 0 0 0 0
OVMS# module memoryFree 8-bit 82928/229892, 32-bit 32/36, SPIRAM 4079896/4194252
$ make size-componentsTotal sizes:DRAM .data size: 18008 bytesDRAM .bss size: 42384 bytesUsed static DRAM: 60392 bytes ( 54808 available, 52.4% used)Used static IRAM: 119508 bytes ( 11564 available, 91.2% used)Flash code: 1633934 bytesFlash rodata: 740056 bytesTotal image size:~2511506 bytes (.bin may be padded larger)Per-archive contributions to ELF file:Archive File DRAM .data & .bss IRAM Flash code & rodata Totallibbt.a 521 3954 542 307054 141815 453886libovms_webserver.a 0 185 0 53102 218036 271323libstdc++.a 149 5640 0 121351 70409 197549libduktape.a 0 0 0 120301 56061 176362liblwip.a 19 3992 0 121557 18181 143749libc-psram-workaround.a 1988 66 18361 111005 9283 140703libnet80211.a 1977 8892 3322 97053 10358 121602libvehicle_renaulttwizy. 0 10 0 56564 38599 95173libmain.a 7 1177 0 69798 22656 93638libpp.a 855 6339 13019 40848 7311 68372libwolfssl.a 0 16 0 51488 15797 67301libbtdm_app.a 347 4629 15135 30200 2848 53159libesp32.a 1936 485 14396 13092 15591 45500libdriver.a 111 214 2811 25454 13732 42322libmongoose.a 16 221 0 33204 8145 41586libphy.a 1334 868 4568 29048 0 35818libvehicle_kiasoulev.a 0 1 0 21612 6446 28059libwpa.a 0 682 0 20266 2320 23268libfreertos.a 4156 776 15731 0 2031 22694libovms_server_v2.a 0 14 0 18129 4224 22367libmdns.a 0 1865 0 19772 337 21974libfatfs.a 12 47 0 18123 2973 21155libm-psram-workaround.a 4 0 0 19188 698 19890libsimcom.a 0 1 0 13380 6443 19824libwolfssh.a 0 12 0 17089 1929 19030libcanopen.a 0 24 0 12095 4470 16589libcan.a 0 36 0 10637 4621 15294libvehicle.a 0 52 0 9853 5113 15018libesp32wifi.a 0 1 0 9707 4625 14333libconsole_ssh.a 2 8 0 9286 3382 12678libspinodma.a 0 12 5850 4146 2590 12598libovms_ota.a 0 8 0 6511 5421 11940libgcc.a 4 20 104 10682 888 11698libnvs_flash.a 0 32 0 8656 2716 11404libesp32bluetooth.a 44 274 0 5584 4573 10475libretools.a 12 6 0 8285 2134 10437libvfsedit.a 924 0 0 7055 1873 9852libwpa_supplicant.a 0 0 0 9577 4 9581libspi_flash.a 36 323 5998 1477 1073 8907libheap.a 1160 8 4179 2070 940 8357libsoc.a 774 8 6310 0 1210 8302libobd2ecu.a 0 1 0 5993 1681 7675libsdmmc.a 0 0 0 4888 2504 7392libvehicle_teslaroadster 0 1 0 6069 996 7066libovms_server_v3.a 0 13 0 5108 1762 6883libvehicle_nissanleaf.a 8 85 0 4676 1312 6081libwear_levelling.a 0 68 0 4665 1312 6045libcoexist.a 1277 94 3332 0 142 4845libovms_location.a 4 36 0 4049 541 4630libcrypto.a 0 64 0 4006 167 4237libsdcard.a 0 9 16 2783 1289 4097libvehicle_voltampera.a 0 1 0 2592 1140 3733libmbedtls.a 0 0 0 3326 320 3646libmicrorl.a 4 0 0 2864 583 3451libvfs.a 40 63 0 2923 381 3407libvehicle_demo.a 0 1 0 2708 527 3236libtcpip_adapter.a 0 124 0 2705 300 3129libbootloader_support.a 0 4 0 1941 1171 3116librtc.a 0 4 2777 0 0 2781libapp_update.a 0 80 0 1860 770 2710libpcp.a 0 56 0 2313 286 2655libnewlib.a 152 252 802 616 85 1907libmcp2515.a 0 0 0 1592 314 1906libpthread.a 16 12 176 957 637 1798libvehicle_teslamodels.a 0 1 0 1253 509 1763libesp32can.a 0 4 0 1659 52 1715libvehicle_obdii.a 0 1 0 909 639 1549liblog.a 8 268 442 709 14 1441libovms_mdns.a 0 8 0 1036 189 1233libcore.a 0 5 0 753 402 1160libcxx.a 12 16 0 684 443 1155libvehicle_track.a 0 1 0 409 476 886libvehicle_none.a 0 1 0 401 480 882libmax7317.a 0 1 0 385 459 845libhal.a 0 0 515 0 32 547libext12v.a 0 0 0 350 140 490libovms_server.a 0 1 0 156 124 281libstrverscmp.a 0 0 0 212 48 260libesp32adc.a 0 0 0 112 20 132libesp32system.a 0 0 0 96 20 116libwpa2.a 0 1 0 0 0 1libwps.a 0 1 0 0 0 1libethernet.a 0 0 0 0 0 0
-CONFIG_OPTIMIZATION_LEVEL_DEBUG=y-CONFIG_OPTIMIZATION_LEVEL_RELEASE=+CONFIG_OPTIMIZATION_LEVEL_DEBUG=+CONFIG_OPTIMIZATION_LEVEL_RELEASE=y
On 28 May 2018, at 2:12 AM, Michael Balzer <dexter@expeedo.de> wrote:After adding a missing newlib module (just code) I got this:
xtensa-esp32-elf/bin/ld: region `iram0_0_seg' overflowed by 712 bytes
I've now done a little analysis using the idf_size.py tool, results attached.
As you can see, the esp-idf puts lots of components into IRAM, including parts of libc ("libc-psram-workaround").
Without bluetooth and with the old version it's already been using 105636 bytes IRAM, the new version had quite some growth on this (marked in red), and the
bluetooth (blue) components add another 15 KB, total is now 129880 bytes.
Effectively there is now no IRAM space left (of the linker section) after enabling bluetooth.
I guess my newlib module drew in some libc functions, as the libc segment grew beyond acceptable size.
I don't think we will be able to continue providing a single firmware covering all features. Maybe we'll need to split into a wifi and a bluetooth release, I
think those are the only optional components for us.
Regards,
Michael
Am 23.05.2018 um 00:14 schrieb Michael Balzer:Steve,
yes, at build time, I suppose the static IRAM preallocations from the bluetooth and wifi improvements have grown too much to fit:
/home/balzer/esp/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld:
/home/balzer/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3/build/ovms3.elf section `.iram0.text' will not fit in region `iram0_0_seg'
/home/balzer/esp/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: region `iram0_0_seg' overflowed by 940 bytes
This is my currently running build:
balzer@leela:~/esp/Open-Vehicle-Monitoring-System-3/vehicle/OVMS.V3> ~/esp/esp-idf/tools/idf_size.py build/ovms3.map
Total sizes:
DRAM .data size: 18760 bytes
DRAM .bss size: 42440 bytes
Used static DRAM: 61200 bytes ( 54000 available, 53.1% used)
Used static IRAM: 131000 bytes ( 72 available, 99.9% used)
Flash code: 1908902 bytes
Flash rodata: 791536 bytes
Total image size:~2850198 bytes (.bin may be padded larger)
So that's also quite close already.
Regards,
Michael
Am 22.05.2018 um 23:50 schrieb Stephen Casner:Michael,
Can you clarify regarding the IRAM space issues. Was there an error
at build time? If so, that's a surprise because I don't think our
code does anything with preallocation of IRAM so that means everyone
who uses a similar set of system functions would hit this.
My memory diagnostic code allocates from IRAM if available, but only
if the memory commands are issued, so any system allocations in IRAM
should come first.
-- Steve
On Tue, 22 May 2018, Michael Balzer wrote:I've pushed the updated esp-idf status to our clone now, so we can start using that for release 007._______________________________________________
I've also checked the upstream master status again, which is already quite some commits ahead, including lots of wifi and bluetooth updates.
Unfortunately I got IRAM space issues and had to disable bluetooth to be able to build at all. The resulting firmware crashed immediately on wifi power up with
error code 0x102 and a message that we should use WIFI_INIT_CONFIG_DEFAULT. Which we do, I don't see anything wrong in our init code. So I switched back to the
working version for now.
To use the new esp-idf version all you need to do is a pull from our repository and a git submodule update. The xtensa tools are still the same.
Regards,
Michael
Am 17.05.2018 um 10:41 schrieb Michael Balzer:Regarding the esp-idf update: it works without (new) issues and seems to improve stability a bit, but not as much as I was hoping.--
So it's an option, but not a priority for 006.
Regards,
Michael
Am 17.05.2018 um 05:06 schrieb Mark Webb-Johnson:Deadline for the factory firmware is this weekend. The modules have all been built and are waiting sim cards, firmware flash, then final QC.
So, I suggest we freeze things as they are. I will double-check the wifi setup tonight (it seemed ok last time I checked, so hopefully good now). Build will not include the bluetooth code I am working on (that is disabled in our default sdkconfig anyway).
Is there anything else holding this up? Or anything anybody wants to rush in?
Regards, Mark.
_______________________________________________
OvmsDev mailing list
OvmsDev@lists.openvehicles.com
http://lists.openvehicles.com/mailman/listinfo/ovmsdev
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
_______________________________________________
OvmsDev mailing list
OvmsDev@lists.openvehicles.com
http://lists.openvehicles.com/mailman/listinfo/ovmsdev
OvmsDev mailing list
OvmsDev@lists.openvehicles.com
http://lists.openvehicles.com/mailman/listinfo/ovmsdev
--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
<iram-usage.ods>_______________________________________________
OvmsDev mailing list
OvmsDev@lists.openvehicles.com
http://lists.openvehicles.com/mailman/listinfo/ovmsdev