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 iram1_0_seg in the linker so it builds, then grabbed these out of the listing:
40107778 g F .text 00000002 rcUpdateDataRxDone
40102970 g F .text 00000007 __errno
40102850 g F .text 00000007 nan
40105300 g F .text 0000000b phy_get_mactime
40102978 g F .text 0000000f srand
40104258 g F .text 00000010 ets_timer_setfn
40102840 g F .text 00000010 finite
40102934 g F .text 00000011 copysign
40102948 g F .text 00000013 atoi
40109970 g F .text 00000018 strchr
40104550 g F .text 0000001b xPortWantedSizeAlign
40108600 g F .text 0000001e wDev_DisableTransmit
40104460 g F .text 0000001f prvInsertBlockIntoUsedList
40104134 l F .text 00000020 dhcp_timer_fine
40104184 l F .text 00000020 dns_timer
40108668 g F .text 00000023 wDev_ProcessCollision
40104104 l F .text 00000026 dhcp_timer_coarse
40104524 g F .text 00000029 prvRemoveBlockFromUsedList
40105470 g F .text 0000002b clockgate_watchdog
40104698 g F .text 0000002e pvPortCalloc
40109988 g F .text 0000002f strncat
40100588 g F .text 00000034 .hidden jslIsToken$1409$constprop$21
40100094 g F .text 00000035 jshGetSystemTime
40103890 g F .text 00000036 .hidden __muldi3
40107444 g F .text 0000003a RC_GetBlockAckTime
40104780 g F .text 0000003b Cache_Read_Disable_2
40102988 g F .text 0000003b rand
40108620 g F .text 00000045 Tx_Copy2Queue
40106754 g F .text 00000048 lmacProcessCtsTimeout
40109920 g F .text 00000050 memset
40104640 g F .text 00000051 vPortFree
40104964 g F .text 00000055 spi_flash_read
40108720 g F .text 00000058 wDev_SetFrameAckType
40105340 g F .text 00000061 phy_get_bb_freqoffset
40106268 g F .text 00000067 lmacProcessTxTimeout
40106898 g F .text 0000007f lmacProcessTxError
40106344 g F .text 00000081 lmacProcessCollision
40100114 g F .text 00000084 jshPushIOEvent
40104498 g F .text 0000008b pvShowMalloc
40104498 g F .text 0000008b system_show_malloc
40107688 g F .text 00000093 rcUpdateTxDone
40107878 g F .text 00000099 rcGetRate
40104578 g F .text 000000c3 pvPortMalloc
40102858 g F .text 000000dc scalbn
40107794 g F .text 000000df rcGetSched
40104368 g F .text 000000f3 ets_timer_arm_new
40101048 g F .text 000000f7 log
40106920 g F .text 00000130 lmacTxFrame
40108784 g F .text 00000142 wDev_AppendRxBlocks
40101140 g F .text 000001cc __ieee754_atan2
40109430 g F .text 0000033a .hidden __umoddi3
40101980 g F .text 000003e0 __ieee754_rem_pio2
So it looks like the 3 biggest functions are maths ones, which potentially could be excluded from iram (somehow??).
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Just checked, and as you suggest, it's this commit: https://github.com/espruino/Espruino/commit/9781bacee8185b58438604cb22672389bc3ff42d
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
iram1_0_seg
in the linker so it builds, then grabbed these out of the listing:So it looks like the 3 biggest functions are maths ones, which potentially could be excluded from iram (somehow??).