Error in creating ESP8266 Firmware #5267
Replies: 1 comment
-
Posted at 2016-03-09 by @gfwilliams Just checked, and as you suggest, it's this commit: espruino/Espruino@9781bac Extremely frustrating as the 'built-in' maths functions that were removed were pretty bad, and doing the removal has actually improved the situation on pretty much all platforms. @tve do you have any ideas how this could be fixed? I increased the size of
So it looks like the 3 biggest functions are maths ones, which potentially could be excluded from iram (somehow??). Posted at 2016-03-09 by @gfwilliams Googling it seems to be a common ESP8266 issue (maths functions all going into RAM) but I'm not quite sure what can be done about that. There was some suggestion that the new SDK fixed it. Potentially I could pull all the maths functions back in, but that's really nasty. When this gets fixed the current solution will be much better. Posted at 2016-03-09 by JumJum there is an ESP8266 lib for RTOS available working in irom instead of iram
At least Math.sin returns correct value. Posted at 2016-03-09 by @gfwilliams Thanks!
Yes, absolutely! Thanks for finding it though - hopefully someone can shed light on this and I can add it to the build instead. Posted at 2016-03-09 by Wilberforce So when build errors occurs, is the travis builds the best place to find out what changes have occured? https://travis-ci.org/espruino/Espruino/builds Last working: #1570 passed
https://travis-ci.org/espruino/Espruino/builds/113648205 #1571 failed
Posted at 2016-03-10 by @gfwilliams Yes, if you can't build yourself (and use Actually that reminds me - if we just turned on the taylor series sin, that would probably fix it... But using the 'proper' maths libraries has got to be better. Posted at 2016-03-10 by @gfwilliams Ok, have just changed it to use We can always roll it back if it turns out there is some problem. Posted at 2016-03-10 by Wilberforce Thanks. So there there is a new lib dependency to download and install, or is this in the 1.5 package already? I noticed that @jumjum 's reference above was for a 1.4 library.. Oh - I see you have added- targets/esp8266/libmirom.a. Posted at 2016-03-10 by @gfwilliams Yeah, it's a bit nasty - but maybe if/when it gets ported to 1.5 then the library can get removed Posted at 2016-03-10 by Wilberforce Hey, there is one great side effect here, that is the image size is soooo much smaller:
After a git pull with the linked mathlib:
I've not yet tested this binary, however it looks really promising! Add in USE_CRYPTO=1, the build fails due to:
So I still need to try to reduce the size to get the SHA1 function for use in web sockets. Posted at 2016-03-11 by @allObjects @wilberforce: the force that pushes the 8266 envelope! Posted at 2016-03-11 by @gfwilliams Great! I did a bit of work to make some of the less-used trig functions out of other ones, which seems to cut down on usage quite a bit... Good news about the Graphics lib - I think it's actually the RAM usage rather than ROM that causes the biggest problems with stuff like Graphics though. @MaBecker had done some work on trying to move that into ROM but I'm not sure he had much luck. Posted at 2016-03-11 by @MaBecker @wilberforce, sure you can build without errors, but flashing with that image will permanently resting the ESP, just tested with 1v85 @gfwilliams now I have again time to continue testing with fonts in ROM |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Posted at 2016-03-09 by JumJum
Today I downloaded actual version from github.
Looks like there are some major changes, sources for Math-functions disappeared.
Running make (ESP8266_BOARD=1 make) now returns this error:
LD espruino_esp8266_user1.elf
LD espruino_esp8266_user2.elf
/home/espruino/git/xtensa-lx106-elf/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld: espruino_esp8266_user2.elf section
.text' will not fit in region
iram1_0_seg'collect2: error: ld returned 1 exit status
Is there anything else I have to do like new SDK or something like that ?
Beta Was this translation helpful? Give feedback.
All reactions