<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Rolled out to "my" edgers. I'll watch crash counters during the next
days and report.<br>
<br>
Regards,<br>
Michael<br>
<br>
<br>
<div class="moz-cite-prefix">Am 30.01.19 um 12:44 schrieb Mark
Webb-Johnson:<br>
</div>
<blockquote type="cite"
cite="mid:822711AA-42DE-4A94-93C7-B247C749FAB2@webb-johnson.net">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Yes, I suspect there is something in there related to the core. I
worry that (a) it is not as simple as 2MB/2MB, and (b) we run code
on both cores anyway. We may have just fixed the test case (which
runs on core #1), but not code running on core #0.
<div class=""><br class="">
</div>
<div class="">Anyway, it is worth a try in the wild to see if it
reduces the volume of errors, while Espressif continue to work
on it.</div>
<div class=""><br class="">
</div>
<div class="">Kludgy wonderfulness is in commit
3.2.001-29-g311307cd.</div>
<div class=""><br class="">
</div>
<div class="">Regards, Mark.<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On 30 Jan 2019, at 7:39 PM, Michael Balzer
<<a href="mailto:dexter@expeedo.de" class=""
moz-do-not-send="true">dexter@expeedo.de</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" class="">
<div text="#000000" bgcolor="#FFFFFF" class="">
<div class="moz-cite-prefix">Oh my…<br class="">
<br class="">
Can it be the first 2 MB are taboo for core 1 and the
second 2 MB for core 0?<br class="">
<br class="">
Anyway, we won't need those 2 MB for now, and
hopefully this will be fixed by Espressif soon.<br
class="">
<br class="">
So I'd say yes, commit.<br class="">
<br class="">
Regards,<br class="">
Michael<br class="">
<br class="">
<br class="">
Am 30.01.19 um 12:26 schrieb Mark Webb-Johnson:<br
class="">
</div>
<blockquote type="cite"
cite="mid:2F06DE6F-A324-4137-90C7-B7450C61A0BA@webb-johnson.net"
class="">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" class="">
I tried changing CONFIG_SPIRAM_SIZE in sdkconfig
directly, but it just reset back to the default 4MB.
<div class=""><br class="">
</div>
<div class="">So changed esp-idf
itself, components/esp32/Kconfig, and added a prompt
for that config option. I could then change it in
menuconfig and the change persisted.</div>
<div class=""><br class="">
</div>
<div class="">I then tested:</div>
<div class=""><br class="">
</div>
<blockquote style="margin: 0 0 0 40px; border: none;
padding:
 0px;" class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (0)
cpu_start: App cpu up.</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (715)
spiram: SPI SRAM memory test OK</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (716)
heap_init: Initializing. RAM available for
dynamic allocation:</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (716)
heap_init: At 3FFAE6E0 len 00001920 (6 KiB):
DRAM</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (723)
heap_init: At 3FFBA920 len 000256E0 (149
KiB): DRAM</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (728)
heap_init: At 3FFE0440 len 00003BC0 (14
KiB): D/IRAM</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (735)
heap_init: At 3FFE4350 len 0001BCB0 (111
KiB): D/IRAM</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (742)
heap_init: At 400953CC len 0000AC34 (43
KiB): IRAM</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (747)
cpu_start: Pro cpu start user code</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (752)
spiram: Adding pool of 2048K of external SPI
memory to heap allocator</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (158)
cpu_start: Starting scheduler on PRO CPU.</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (0)
cpu_start: Starting scheduler on APP CPU.</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">This is
ESP32 chip with 2 CPU cores, WiFi/BT/BLE,
silicon revision 1, 16MB external flash</span></font></div>
</div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">…</span></font></div>
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (9566)
test_task: testing mode 1 loopcnt 1000</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">E (9576)
test_task: loop #1: corruption detected at
pos=497 size=498</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">4348864OVMS
WIFI BLE BT cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE BT
cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE BT
cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class=""><br
class="">
</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">#1:
size=498, data @0x3f901ca0</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">4348864OVMS
WIFI BLE BT cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE BT
cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE BT
cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class=""><br
class="">
</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">E (9806)
test_task: loop #5: corruption detected at
pos=497 size=498</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">4348864OVMS
WIFI BLE BT cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE BT
cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE BT
cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class=""><br
class="">
</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">E (10036)
test_task: loop #9: corruption detected at
pos=829 size=830</span></font></div>
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">4348864OVMS
WIFI BLE BT cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE BT
cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE BT
cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE BT
cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE BT
cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23</span></font></div>
</div>
</blockquote>
<div class="">
<div class=""><br class="">
</div>
<div class="">which looks like a FAIL to me?</div>
<div class=""><br class="">
</div>
<div class="">So, then I tried something a little
funky:</div>
<div class=""><br class="">
</div>
<div class="">
<ol class="MailOutline">
<li class="">Go back to
normal CONFIG_SPIRAM_SIZE 4MB<br class="">
<br class="">
</li>
<li class="">Add this
to main/test_memory_corruption.cpp app_main():<br
class="">
<br class="">
<font class="" face="Andale Mono"><span
style="font-size:
 14px;" class="">void*
big2mb = heap_caps_malloc(1024*1024*2,
MALLOC_CAP_SPIRAM);<br class="">
printf("Big 2MB spi memory allocation is
at %p\n",big2mb);</span></font><br
class="">
<br class="">
</li>
<li class="">Rebuild and run...</li>
</ol>
</div>
</div>
<div class=""><br class="">
</div>
<div class="">Here is what I get:</div>
<div class=""><br class="">
</div>
<blockquote style="margin: 0 0 0 40px; border: none;
padding:
 0px;" class="">
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (0)
cpu_start: App cpu up.</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (1151)
spiram: SPI SRAM memory test OK</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (1152)
heap_init: Initializing. RAM available for
dynamic allocation:</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (1152)
heap_init: At 3FFAE6E0 len 00001920 (6
KiB): DRAM</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (1159)
heap_init: At 3FFBA920 len 000256E0 (149
KiB): DRAM</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (1164)
heap_init: At 3FFE0440 len 00003BC0 (14
KiB): D/IRAM</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (1171)
heap_init: At 3FFE4350 len 0001BCB0 (111
KiB): D/IRAM</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (1179)
heap_init: At 400953CC len 0000AC34 (43
KiB): IRAM</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (1184)
cpu_start: Pro cpu start user code</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (1188)
spiram: Adding pool of 4096K of external
SPI memory to heap allocator</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (206)
cpu_start: Starting scheduler on PRO CPU.</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (0)
cpu_start: Starting scheduler on APP CPU.</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">...</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">This is
ESP32 chip with 2 CPU cores, WiFi/BT/BLE,
silicon revision 1, 16MB external flash</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">Big 2MB
spi memory allocation is at 0x3f800028</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">...</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (291)
wifi station: ESP_WIFI_MODE_APSTA</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (291)
wifi: wifi driver task: 3ffc25c4, prio:23,
stack:3584, core=0</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">...</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (3281)
wifi station: retry to connect to the AP</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (3281)
wifi station: connect to the AP fail</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class=""><br
class="">
</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (6111)
wifi station: retry to connect to the AP</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (6111)
wifi station: connect to the AP fail</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class=""><br
class="">
</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (8461)
mem_stresser: started on core 0 mem
@0x3fa01b98</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (8461)
mem_stresser: started on core 1 mem
@0x3fa81bac</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (8951)
wifi station: retry to connect to the AP</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (8951)
wifi station: connect to the AP fail</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class=""><br
class="">
</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (9461)
test_task: running on core 1</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class=""><br
class="">
</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I (9561)
test_task: testing mode 1 loopcnt 1000</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">#1:
size=1039, data @0x3fb01ca4</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">4348864OVMS
WIFI BLE BT cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE
BT cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE
BT cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE
BT cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE
BT cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE
BT cores=2
rev=ESP32/1WLAN-214677-52wifi103.2.001-22-g14d16854-dirty/factory/edge
(build idf v3.2-dev-1419-g5afc1b0cb-dirty
Jan 27 2019 15:08:23)4348864OVMS WIFI BLE
BT cores=2 rev=ESP32/1</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class=""><br
class="">
</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I
(11781) wifi station: retry to connect to
the AP</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I
(11781) wifi station: connect to the AP
fail</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class=""><br
class="">
</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I
(14621) wifi station: retry to connect to
the AP</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I
(14621) wifi station: connect to the AP
fail</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class=""><br
class="">
</span></font></div>
</div>
</div>
<div class="">
<div class="">
<div class=""><font class="" face="Andale Mono"><span
style="font-size: 14px;" class="">I
(17451) wifi station: connect to the AP
fail</span></font></div>
</div>
</div>
</blockquote>
<div class="">
<div class="">
<div class=""><br class="">
</div>
<div class="">I left it running for a few minutes,
but no faults shown. Modes 1 through 4 all
clean.</div>
<div class=""><br class="">
</div>
<div class="">So, to take the funkiness to the
next level, I added the same to ovms_main, right
at the start (actually in the log level setter,
as that seemed to be the first thing that
initialises). Somebody else gets in for 28bytes
of SPIRAM (or maybe that is a structure header),
but anyway...</div>
<div class=""><br class="">
</div>
</div>
</div>
<blockquote style="margin: 0 0 0 40px; border: none;
padding:
 0px;" class="">
<div class="">
<div class="">
<div class="">
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">I (1742) spiram: SPI SRAM
memory test OK</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">I (1743) heap_init:
Initializing. RAM available for dynamic
allocation:</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">I (1743) heap_init: At 3FFAFF10
len 000000F0 (0 KiB): DRAM</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">I (1750) heap_init: At 3FFCEDE8
len 00011218 (68 KiB): DRAM</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">I (1755) heap_init: At 3FFE0440
len 00003BC0 (14 KiB): D/IRAM</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">I (1762) heap_init: At 3FFE4350
len 0001BCB0 (111 KiB): D/IRAM</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">I (1768) heap_init: At 4009F530
len 00000AD0 (2 KiB): IRAM</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">I (1775) cpu_start: Pro cpu
start user code</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">I (1779) spiram: Adding pool of
4096K of external SPI memory to heap
allocator</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">I (125) ovms_main: Set default
logging level for * to INFO</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">I (126) ovms_main:
Pre-allocated 2MB of SPIRAM at
0x3f800028 (workaround ESP32 bug)</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">...</span></font></div>
<div class="">
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">I (17783) webserver:
Launching Web Server</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">I (17823) ssh: Launching SSH
Server</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">OVMS# test string 500 2</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">#1: stdlen = 1027</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">1985504OVMS WIFI BLE BT
cores=2
rev=ESP32/168HIGHWAYS-29wifi163.2.001-22-g14d16854-dirty/factory/edge
(build idf
v3.1-dev-2835-g151269458-dirty Jan 30
2019 19:17:20)012.61985504OVMS WIFI
BLE BT cores=2
rev=ESP32/168HIGHWAYS-29wifi163.2.001-22-g14d16854-dirty/factory/edge
(build idf
v3.1-dev-2835-g151269458-dirty Jan 30
2019 19:17:20)012.61985504OVMS WIFI
BLE BT cores=2
rev=ESP32/168HIGHWAYS-29wifi163.2.001-22-g14d16854-dirty/factory/edge
(build idf
v3.1-dev-2835-g151269458-dirty Jan 30
2019 19:17:20)012.61985504OVMS WIFI
BLE BT cores=2
rev=ESP32/168HIGHWAYS-29wifi163.2.001-22-g14d16854-dirty/factory/edge
(build idf
v3.1-dev-2835-g151269458-dirty Jan 30
2019 19:17:20)012.61985504OVMS WIFI
BLE BT cores=2
rev=ESP32/168HIGHWAYS-29wifi163.2.001-22-g14d16854-dirty/factory/edge
(build idf
v3.1-dev-2835-g151269458-dirty Jan 30
2019 19:17:20)012.61985504OVMS WIFI
BLE BT cores=2
rev=ESP32/168HIGHWAYS-29wifi163.2.001-22-g14d16854-dirty/factory/edge
(build idf
v3.1-dev-2835-g151269458-dirty Jan 30
2019 19:17:20)012.61985504</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class=""><br class="">
</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">finished</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">OVMS#</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class=""><br class="">
</span></font></div>
<div class=""><font class="" face="Andale
Mono"><span style="font-size: 14px;"
class="">OVMS# module memory<br
class="">
Free 8-bit 76160/230212, 32-bit
812/2720, SPIRAM 1886108/4194252<br
class="">
--Task-- Total DRAM D/IRAM IRAM
SPIRAM +/- DRAM D/IRAM IRAM SPIRAM<br
class="">
main* 8368 0 0
8456 +8368 +0 +0 +8456<br
class="">
no task* 5376 0 0
0 +5376 +0 +0 +0<br
class="">
esp_timer 34808 0
6442123100 +34808 +0
+644+2123100<br class="">
OVMS Events 36352 41040 0
35120 +36352 +41040 +0 +35120<br
class="">
OVMS DukTape 188 0 0
34668 +188 +0 +0 +34668<br
class="">
OVMS CanRx 3124 0 0
26168 +3124 +0 +0 +26168<br
class="">
ipc0 7776 0 0
0 +7776 +0 +0 +0<br
class="">
ipc1 12 0 0
0 +12 +0 +0 +0<br
class="">
Tmr Svc 0 88 0
0 +0 +88 +0 +0<br
class="">
tiT 232 468 0
664 +232 +468 +0 +664<br
class="">
wifi 600 8896 0
3324 +600 +8896 +0 +3324<br
class="">
OVMS Console 0 200 1180
26332 +0 +200 +1180 +26332<br
class="">
mdns 0 104 0
4 +0 +104 +0 +4<br
class="">
OVMS NetMan 0 216 0
84 +0 +216 +0 +84</span></font></div>
</div>
</div>
</div>
</div>
</blockquote>
<div class="">
<div class=""><br class="">
</div>
<div class="">I think that wins as the most ugly
kludge to date.</div>
<div class=""><br class="">
</div>
<div class="">Shall I commit?</div>
<div class=""><br class="">
</div>
<div class="">Regards, Mark.</div>
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On 30 Jan 2019, at 5:00 PM, Mark
Webb-Johnson <<a
href="mailto:mark@webb-johnson.net" class=""
moz-do-not-send="true">mark@webb-johnson.net</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8" class="">
<div style="word-wrap: break-word;
-webkit-nbsp-mode:
 space; line-break:
after-white-space;" class=""><br class="">
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On 30 Jan 2019, at 4:41
PM, Michael Balzer <<a
href="mailto:dexter@expeedo.de"
class="" moz-do-not-send="true">dexter@expeedo.de</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8"
class="">
<div text="#000000" bgcolor="#FFFFFF"
class="">
<div class="moz-cite-prefix">Mark,<br
class="">
<br class="">
issue #2892 mentions using only
the lower 2 MB of SPI RAM as a
workaround. Where are our
allocations placed by the
allocator? Does it fill from the
middle or end? If not we don't use
the upper half yet.<br class="">
</div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
I saw that, and had a look. I don’t see
anything in makeconfig to limit to 2MB
(not 4MB).</div>
<div class=""><br class="">
</div>
<div class="">I do see
a CONFIG_SPIRAM_SIZE=4194304 in sdkconfig,
but not sure how it gets there. Perhaps we
can just change there to 2MB and try?</div>
<div class=""><br class="">
</div>
<div class="">I did see this in the
documentation:</div>
<div class=""><br class="">
</div>
<blockquote style="margin: 0 0 0 40px;
border: none;
 padding: 0px;" class="">
<div class=""><span style="caret-color:
rgb(64, 64,
 64); color: rgb(64,
64, 64); font-family: Lato,

proxima-nova, "Helvetica
Neue", Arial,
 sans-serif;
font-size: 16px;
background-color:
 rgb(252, 252,
252);" class="">During ESP-IDF
startup, external RAM is mapped into
the data address space starting at at
address 0x3F800000 (byte-accessible).
The length of this region is the same
as the SPIRAM size (up to the limit of
4MiB).</span></div>
</blockquote>
<div class=""><br class="">
</div>
<div class="">So, maybe we can look at the
address our allocations come from to see
their offset from 0x3F800000? If it is
coming from the top 2MB, then perhaps we
start with a big 2MB allocation that we
never use?</div>
<div class=""> <br class="">
<blockquote type="cite" class="">
<div class="">
<div text="#000000" bgcolor="#FFFFFF"
class="">
<div class="moz-cite-prefix">A
possible workaround for the most
apparent issues with this (string
assembly) could be to use char
buffers instead of std::string. I
was thinking about doing that at
least for the websocket stream.<br
class="">
</div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
<div class="">It seems strange that we are
only seeing it with std::string. Maybe
that just stresses the system more, or
does a lot of reallocations?</div>
<br class="">
<blockquote type="cite" class="">
<div class="">
<div text="#000000" bgcolor="#FFFFFF"
class="">
<div class="moz-cite-prefix"> But if
this really is a hardware issue it
can affect all objects in SPI RAM,
appending to std::string then only
triggers this more often.<br
class="">
<br class="">
Another workaround could be to run
everything on core 0.<br class="">
</div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
Urgh.</div>
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">
<div text="#000000" bgcolor="#FFFFFF"
class="">
<div class="moz-cite-prefix">Regards,<br
class="">
Michael<br class="">
<br class="">
<br class="">
Am 30.01.19 um 03:33 schrieb Mark
Webb-Johnson:<br class="">
</div>
<blockquote type="cite"
cite="mid:4737F304-A344-4BD8-9B0C-95366DB7A40F@webb-johnson.net"
class="">
<meta http-equiv="Content-Type"
content="text/html;
charset=UTF-8" class="">
Michael,
<div class=""><br class="">
</div>
<div class="">Espressif’s response
(and linking to that other
issue) sounds like others are
seeing this.</div>
<div class=""><br class="">
</div>
<div class="">Lousy timing (with
Chinese New Year next week), so
don’t expect anything quick from
Espressif. I guess we’ll just
have to live with it until they
can find a workaround. It sounds
like the issue is at the
hardware level and a compiler
patch will be needed.</div>
<div class=""><br class="">
</div>
<div class="">Regards, Mark.<br
class="">
<div class=""><br class="">
<blockquote type="cite"
class="">
<div class="">On 30 Jan
2019, at 3:07 AM, Michael
Balzer <<a
href="mailto:dexter@expeedo.de"
class=""
moz-do-not-send="true">dexter@expeedo.de</a>>
wrote:</div>
<br
class="Apple-interchange-newline">
<div class="">
<meta
http-equiv="Content-Type"
content="text/html;
charset=UTF-8" class="">
<div text="#000000"
bgcolor="#FFFFFF"
class=""> → <a
class="moz-txt-link-freetext"
href="https://github.com/espressif/esp-idf/issues/3006"
moz-do-not-send="true">https://github.com/espressif/esp-idf/issues/3006</a><br
class="">
<br class="">
Regards,<br class="">
Michael<br class="">
<br class="">
<br class="">
<div
class="moz-cite-prefix">Am
28.01.19 um 20:46
schrieb Michael
Balzer:<br class="">
</div>
<blockquote type="cite"
cite="mid:b193b172-9a83-6df5-7b61-9e0cbfa46281@expeedo.de" class="">
<meta
http-equiv="Content-Type"
content="text/html;
charset=UTF-8"
class="">
To clarify: the bug is
most likely not
restricted to the case
of building a message
in a buffer. It can
possibly cause
corruptions in any RAM
section, so can well
be responsible for
many/most of the
unidentified crashes
and stack/heap
corruptions we're
experiencing.<br
class="">
<br class="">
Regards,<br class="">
Michael<br class="">
<br class="">
<br class="">
<div
class="moz-cite-prefix">Am
28.01.19 um 20:43
schrieb Michael
Balzer:<br class="">
</div>
<blockquote
type="cite"
cite="mid:06d0ea65-f4d5-e2c5-9ca1-b0ad63bfa3b1@expeedo.de"
class="">
<meta
http-equiv="Content-Type"
content="text/html; charset=UTF-8" class="">
For those not
following the github
discussion: I'm
pretty sure I've
nailed the bug down.<br
class="">
<br class="">
I have reproduced
the bug in a simple
test project and
intend to raise an
issue with Espressif
on this.<br class="">
<br class="">
<a
class="moz-txt-link-freetext"
href="https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/issues/189#issuecomment-457965435"
moz-do-not-send="true">https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/issues/189#issuecomment-457965435</a><br
class="">
<br class="">
If you'd like to
test this on your
module, configure
the project to your
wifi credentials,
then use "make
flash". As the test
project is small,
this normally will
not erase your OVMS
config partition,
but a backup is
always recommended.<br
class="">
<br class="">
Regards,<br class="">
Michael<br class="">
<br class="">
<br class="">
<div
class="moz-cite-prefix">Am
24.01.19 um 21:19
schrieb Michael
Balzer:<br
class="">
</div>
<blockquote
type="cite"
cite="mid:e4159a1c-b283-25b0-f1b5-ce570b529a1c@expeedo.de"
class="">
<meta
http-equiv="content-type"
content="text/html; charset=UTF-8" class="">
Everyone please
have a look at…<br
class="">
<br class="">
<a
class="moz-txt-link-freetext"
href="https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/issues/189#issuecomment-457334248"
moz-do-not-send="true">https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/issues/189#issuecomment-457334248</a><br
class="">
<br class="">
Please try to
reproduce the bug
on your modules.<br
class="">
<br class="">
I'm open for
explanations.<br
class="">
<br class="">
I thought this
might be some
copy-on-write bug
with std::string,
but the gcc 5.x
libstdc++ does no
longer use that
implementation
(wouldn't be C++11
compliant as
well). I also
tried moving all
strings to
temporary buffers,
but modes 5 &
6 eliminated this
explanation as
well.<br class="">
<br class="">
My remaining
theories:<br
class="">
<ul class="">
<li class="">A
task writing
out of bounds
(but only
0-bytes?)</li>
<li class="">A
hardware issue
only affecting
some modules<br
class="">
</li>
</ul>
A hardware issue
only affecting
some percentage of
ESP32 could
explain this as
well as the
strange heap
corruptions that
seem to affect
some modules
especially often.<br
class="">
<br class="">
Regards,<br
class="">
Michael<br
class="">
<br class="">
</blockquote>
</blockquote>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br class="">
<pre class="moz-signature" cols="144">--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
</pre>
</div>
_______________________________________________<br
class="">
OvmsDev mailing list<br class="">
<a href="mailto:OvmsDev@lists.openvehicles.com" class=""
moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a><br
class="">
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br
class="">
</div>
</blockquote>
</div>
<br class="">
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
</blockquote>
<br>
<pre class="moz-signature" cols="160">--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
</pre>
</body>
</html>