Main Site Documentation

Limits on End User Application Size?


Ok, going to run the risk of sounding a little silly here.

End User Applications, and the limits on them are very vague.

The Specs on the Cerberus for example:

[ul]User Available FlashTotal Flash memory available for user applications 384 KB
User Available RAM 104 KB[/ul]

So what is the actual user Limit? and what should users comfortably aim for as a recommended application size for the given memory used?

How many other options are there and how would one set out going about using these other options (EG: SDRam)

If this was all explained in a detailed document I would love to know about but I have been unable to find specifics.

All the Best



Flash memory is where the application (binaries) are stored.
RAM is the available memory your application can use at runtime.


Thanks Reinhard,

Do you know if there is a recommended limit, say 10% free space as a working area for the microframework? Microsoft typically doesn’t like to see storage issues and likes a small amount of free space.

Does the same apply to Micro’s?


All the best



I am searching very hard for a solution, my application is over 1Mb, nearly 700MB over size.

All the best



Does your application contains a lot of resource: Bitmap, HTML Pages, …
Then you could put them on a SPI Flash chip or an SD card and load them from there.
1MByte of code would be a lot of stuff.

And I would say that you can use the Flash Memory up to the last byte.
After deployment, there should nothing be added to it.
For RAM, that’s hard to say.
I had out of memory exceptions on my G120 when using only about 70% of the available RAM. This can happen due to memory fragmentation when allocating a larger block of memory.
But if you allocate all larger resources/objects right after startup and tore them in static fields, then you should be ok, with less available RAM.


@ ChrisO - That sounds like a lot of code unless you are using a lot of resources or hardcoding some massive lookup tables. You can use this thread to benchmark your application length against what others are doing

I’d recommend going with the G120/Cobra2 or G400/Raptor if you really need all that flash/RAM. They have plenty and you can stop worrying about it and get on with creating something awesome.


@ Hagstar, @ Reinhard

Yes lots of code. Just some I am using :

I have thinned this down some but am still getting issues.

Am in the process of entirely re-coding my application due to limitations.

Will Keep you Posted.

All the best



Ahhh. The penny drops. Using the G120 isn’t going to work. You could use a compiler directive to trim out certain bits. That’s the #IF statement if you’ve not used it before. That way you can just use a simple statement at the start to enable or disable sections of code.


don’t forget that there is a size limit on each assembly.


@ ChrisO is the size for the debug assembly or the release assembly?

Edit: Debug mode assemblies are bigger btw.