[Microbit-Python] another maximum size of program thread

Jeff Young jeff at perfectmotion.co.uk
Thu Jun 30 10:35:00 EDT 2016


Good idea.  I gave it a try...

Installed microfs on my PC with a 'pip install microfs'
Flashed the microbit from the mu editor with a blank file. ( installed
runtime)
Uploaded the first test script to the microbit with 'ufs  put main.py'
Hit the restart button.
It worked perfectly with this basic script ( main.py )

from microbit import *
while True:
    display.scroll('Hello, World!')
    display.show(Image.HEART)
    sleep(2000)

Tried with my problem script getting smaller and smaller...

ufs put memory.py
MemoryError: memory allocation failed, allocating 3381 bytes

ufs put main.py
MemoryError: memory allocation failed, allocating 3087 bytes

ufs put main.py
MemoryError: memory allocation failed, allocating 2756 bytes

I even got past the point where the SAME code loads and runs from mu ! i.e
If I take the 2756bytes version above and load it into Mu and flash it
works.

Close but no cigar...

-----Original Message-----
From: Microbit [mailto:microbit-bounces+jeff=perfectmotion.co.uk at python.org]
On Behalf Of Nicholas H.Tollervey
Sent: 30 June 2016 14:55
To: microbit at python.org
Subject: Re: [Microbit-Python] another maximum size of program thread

Jeff,

A quick thought. If it's script length that's the problem, you could just
use the file-system. Viz:

https://microbit-micropython.readthedocs.io/en/latest/tutorials/storage.html
#mainly-main-py

Hope this helps,

N.

On 30/06/16 14:47, Jeff Young wrote:
> Hi All
> 
>  
> 
> First time posting here.  Checked the archives and found my exact 
> problem outlined in a thread titled 'Maximum Size of Microbit Python 
> Program' from Jun '16.
> 
> I've tried a few things and I'm hitting the 'size of script' memory 
> problem as outlined in a post from Nicholas Tollervey.  Runtime memory 
> is fine.
> 
>  
> 
> The program never starts and I just see;
> 
>  
> 
> MemoryError: memory allocation failed, allocating 3688 bytes
> 
> MicroPython v1.7-9-gbe020eb on 2016-04-18; micro:bit with nRF51822
> 
>  
> 
> The thread doesn't really reach any solutions so I was wondering if 
> anyone had found a workround ?  I've tried Mu and online editors.  
> Same result.  I'm seeing the messages via REPL in Mu
> 
>  
> 
> My program is 127 lines working but add in another 8 lines and it 
> breaks.  No comments in the code ;-)
> 
>  
> 
> As an aside I originally wrote it using python classes and objects but 
> found I quickly hit the runtime error limit after about 3 or 4 objects.
> Rewrote with simple lists and we're up to 20 objects before hitting 
> the runtime limit.  I'm thinking classes/objects consume a lot of memory.
> Also lists-of-lists seem quite memory hungry.
> 
>  
> 
> It would be great to be able to see how much memory is being 
> consumed/free during runtime.  Great to be able to see the size of 
> objects etc in memory.
> 
>  
> 
> I'm also wondering it there is some way to re-balance the memory 
> partitioning between the block of memory that holds the code and the 
> runtime memory ? ie take a few kb from the run time partition and add 
> it to the code partition ?
> 
>  
> 
> Thanks
> 
>  
> 
> Jeff
> 
>  
> 
>  
> 
> 
> 
> _______________________________________________
> Microbit mailing list
> Microbit at python.org
> https://mail.python.org/mailman/listinfo/microbit
> 
are you in a meeting @be




More information about the Microbit mailing list