MDBT42Q Memory Size Constraint?

Posted on
  • Hi All,
    Been a few months developing with Espruino now. After getting my head around javascript it's actually very nice. Scheduling things is a breeze in particular.

    I've been developing a project off the Espruino and testing with jest, and now it's time to move it onto the Espruino where it should all just work (haha).

    The code's being moved in chunks and tested as it goes along. However, after adding the most recent chunk and uploading to RAM I get :

    >Uncaught SyntaxError: Got EOF expected ':'
     at line 1 col 13365
    ...Disconnected:256,OverCurren
                                  ^
    Execution Interrupted
    New interpreter error: LOW_MEMORY,MEMORY
    > 
    

    at first I thought this was some bug with the minification (the chip has 64k RAM, so it shouldn't (on the face of it) be struggling with 14k of program), but with that turned off I get:

    >Uncaught SyntaxError: Got EOF expected '}'
     at line 752 col 32
                tmp = false;//STM.s
                                   ^
    Execution Interrupted
    New interpreter error: MEMORY
    > 
    

    So it's the same error, but at a different place in code.

    The code as it stands is 14131 bytes when minified, and 33480 bytes as-is.

    The console doesn't give any obvious clues, is there some tool available to debug the issue? Or is it that I'm actually out of memory? The code's only ~1000 lines at the moment, but there's another 500 or so to go.

  • Not all of 64KB is usable for variables, more like 40KB, see output of process.memory() (each variable is 13 bytes for MDBT42Q). Uploading to ram is big waste of ram/variables, better upload to flash in this case. You can also enable pretokenization in WebIDE that should make it even smaller.

  • Hi,

    I'd definitely recommend uploading to 'Flash' rather than RAM - that may help you out. As mentioned by @fanoush you only have 40k or so of RAM available (and it doesn't map 1:1 with code size) but writing code to flash allows Espruino to execute code right out of Flash so it saves a bunch of memory.

    Some more info is at https://www.espruino.com/Saving

  • Thank you both. Turns out it was definitely a size issue. Working fine from Flash now.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

MDBT42Q Memory Size Constraint?

Posted by Avatar for user135646 @user135646

Actions