You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Exception 3: LoadStoreError: Processor internal physical address or data error during load or store
0x4021ec20: vsnprintf at /Users/igrokhotkov/e/newlib-xtensa/xtensa-lx106-elf/newlib/libc/stdio/../../../.././newlib/libc/stdio/vsnprintf.c line 42
0x401004e4: malloc at C:\Users\daud\Documents\Arduino\hardware\esp8266com\esp8266\cores\esp8266\umm_malloc/umm_malloc.c line 1672
0x4021abc4: operator new[](unsigned int) at C:\Users\daud\Documents\Arduino\hardware\esp8266com\esp8266\cores\esp8266/abi.cpp line 71
0x4021751a: Syslog::vlogf(unsigned short, char const*, __va_list_tag) at C:\Users\daud\Documents\Arduino\libraries\Syslog\src/Syslog.cpp line 38
0x40217568: Syslog::logf(char const*, ...) at C:\Users\daud\Documents\Arduino\libraries\Syslog\src/Syslog.cpp line 38
0x4020d6e3: setup at C:\Users\daud\Documents\Arduino\myClock/myClock.ino line 116
This works as expected:
Serial.printf_P(PSTR("setup: %s, %s, %s, %d, %d \r\n"), location.c_str(), timezone.c_str(), milTime ? "true" : "false", brightness, light);
This does not:
syslog.logf_P(PSTR("setup: %s|%s|%s|%d|%d"), location.c_str(), timezone.c_str(), milTime ? "true" : "false", brightness, light);
The function "bool Syslog::vlogf_P(uint16_t pri, PGM_P fmt_P, va_list args)" in file Syslog.cpp has a bug which (probably) is the reason for this failure.
Solution:
Replace "vsnprintf(message, len + 1, fmt_P, args);" inside the if statement with "vsnprintf**### _P**(message, len + 1, fmt_P, args);". (Add "_P" to call the correct function.)
Exception 3: LoadStoreError: Processor internal physical address or data error during load or store
0x4021ec20: vsnprintf at /Users/igrokhotkov/e/newlib-xtensa/xtensa-lx106-elf/newlib/libc/stdio/../../../.././newlib/libc/stdio/vsnprintf.c line 42
0x401004e4: malloc at C:\Users\daud\Documents\Arduino\hardware\esp8266com\esp8266\cores\esp8266\umm_malloc/umm_malloc.c line 1672
0x4021abc4: operator new[](unsigned int) at C:\Users\daud\Documents\Arduino\hardware\esp8266com\esp8266\cores\esp8266/abi.cpp line 71
0x4021751a: Syslog::vlogf(unsigned short, char const*, __va_list_tag) at C:\Users\daud\Documents\Arduino\libraries\Syslog\src/Syslog.cpp line 38
0x40217568: Syslog::logf(char const*, ...) at C:\Users\daud\Documents\Arduino\libraries\Syslog\src/Syslog.cpp line 38
0x4020d6e3: setup at C:\Users\daud\Documents\Arduino\myClock/myClock.ino line 116
This works as expected:
Serial.printf_P(PSTR("setup: %s, %s, %s, %d, %d \r\n"), location.c_str(), timezone.c_str(), milTime ? "true" : "false", brightness, light);
This does not:
syslog.logf_P(PSTR("setup: %s|%s|%s|%d|%d"), location.c_str(), timezone.c_str(), milTime ? "true" : "false", brightness, light);
My full code is available at https://github.com/dragondaud/myClock
The text was updated successfully, but these errors were encountered: