These are chat archives for esp8266/Arduino

13th
May 2015
Michael Miller
@Makuna
May 13 2015 03:57
I hit an interesting bug (compiler?) The first line below will cause a proc exception 4, while the second+third lines will work. I have ran into something several times where passing a pointer and post incrementing will cause bugs and expanding/separating it fixes the issue.
uint8_t c = pgm_read_byte(p++); // proc exception code 4
uint8_t c = pgm_read_byte(p); 
p++;
Ivan Grokhotkov
@igrr
May 13 2015 07:06
@Makuna can you please objdump -S the generated code for both cases (increment inside and outside)?
exception info from serial output would also be helpful
Michael Miller
@Makuna
May 13 2015 16:45
I found the problem this morning. It was improper handling of macro variables, the variable was referenced more than once, so it would increment the variable at all locations, and the exception happens due to the ROM memory requires 32 bit aligned reads.
Markus
@Links2004
May 13 2015 16:50
@ficeto ok interesting error reason. the bad is i can not write the data byte by byte (uint8_t *) in the SPI FIFO (looks like a register limitation) will add a warning note to the function
ficeto
@ficeto
May 13 2015 16:52
sure thing
but hey, I improved my prvius work so :) it's all good
Markus
@Links2004
May 13 2015 16:52
:)
ficeto
@ficeto
May 13 2015 16:53
and I feel the improvement also
more stable transfers
5 times the upload speed
Markus
@Links2004
May 13 2015 16:53
yay, its all about speed and responsiveness
can you check esp8266/Arduino@380c3f5 getNoDelay uses tcp_nagle_disabled
ficeto
@ficeto
May 13 2015 16:54
i prolly copy/pasted badly :D
oh no
it's ok
that is the method
Ivan Grokhotkov
@igrr
May 13 2015 16:54
yeah tcp_nagle_disabled is a getter method
Markus
@Links2004
May 13 2015 16:55
ok overseen the "d" the functions looking to similar.
ficeto
@ficeto
May 13 2015 16:55
maybe need to pull them in WiFiClient as well
Markus
@Links2004
May 13 2015 16:56
good idea
ficeto
@ficeto
May 13 2015 17:01
done
Markus
@Links2004
May 13 2015 17:04
add some notes for SPI esp8266/Arduino#235
@ficeto i see SPIFFS on you branch, is it only possible with >512kB Flash?
Ivan Grokhotkov
@igrr
May 13 2015 17:07
no right now we took a bite of irom0.text section for spiffs :)
0x70000 - 0x7B000
Markus
@Links2004
May 13 2015 17:08
k nice
Ivan Grokhotkov
@igrr
May 13 2015 17:09
i'm writing a tool to pack the spiffs image
Markus
@Links2004
May 13 2015 17:09
sounds good
is SPIFFS recognizes the memory area over the linker file? the it can easily adapted to bigger flash sizes. I order some 8MB chips for exchange ;)
Ivan Grokhotkov
@igrr
May 13 2015 17:11
later
let's do it simple right now
then add support for bigger flash and whatnot
Markus
@Links2004
May 13 2015 17:12
when i get the chips and the working with the ESP8266 hope then i will starting on this :)
Michael Miller
@Makuna
May 13 2015 18:36
esp8266/Arduino#236 made, this gets PgmSpace working, right now it uses ICACHE_RODATA_ATTR, section(".irom.text")
Ivan Grokhotkov
@igrr
May 13 2015 18:36
@Makuna thanks, i will take a look tonight and merge
Michael Miller
@Makuna
May 13 2015 18:38
@igrr great, I only have until early Thursday afternoon to iterate on it until next Monday.
Markus
@Links2004
May 13 2015 18:40
may we then shut also enable the F macro ? I implement a working one https://github.com/esp8266/Arduino/blob/3dc81f29e46e1230c0a33b32231d709ffa314326/hardware/esp8266com/esp8266/cores/esp8266/WString.h#L36 but never see a real use case for it
ficeto
@ficeto
May 13 2015 18:45
except compatibility with existing libs
many in the AVR world use it
Markus
@Links2004
May 13 2015 18:46
yes I too :) but the #define F(str) str working on the ESP8266 exact the same.
Michael Miller
@Makuna
May 13 2015 20:15
With this change set F () will work similar to Arduino.