Main Site Documentation

About memory needs


Hello Everyone

I’m a beginner on GHI products and .NETMF tools. I just arrived in a very small company where I am the only one designer/developper. The company have made some design choices during the past (especially the .NETMF and USBizi) and I was called to solve their software issues urgently. Two weeks ago I already post some messages on the forum about Out of Memory Exception that occurs on our project (data logging on SD card and USB with 6dof IMU…) I finaly found a good trade off between reliability of the platform and time to market. However we probably need to reconsider some of the choice made because we need to add more functionalities to our product. Therefore I have investigated the litterature:
I need a microcontroler/microprocessor that does not consume to much
that have at least 6 analog input
perhaps 4-6 analog outputs
that supports CAN protocol
if possible 6 or more digital inputs
if possible 6 or more digital outputs

Software will be mainly dedicated to Kalman filtering for the IMU, data logging of discrete events (NMEA, IMU)…and measurements (constraints gauge at 1-10 Hz for example).

I notice that the EMX module fits well but I have some doubts. Can we know what is the maximal size of program for the bootloader, user programs. I read the specs but the values are not clear to me.

The NXP datasheets for the LPC2388(Usbizi) and LPC2478(EMX) show the same characteristics excepts for the number of IOs.

What is the usual target for the FLASH (512KB)? is it for the user program? Does the RAM serves to handles data during execution?

Sorry for these very newbie’s questions but I come from the other side of embedded systems (OMAP 3530 chip) where these constraints are not such criticals.


maybe will answer some of your questions.



Hello Eric and thanks for your reply.

According to this table, on the EMX module there’s 3 MB of flash for user program (I mean to store the assemblies) and 12MB for the application memory.

But in the EMX brochure on page 1 and 2:

It says that flash is 4.5MB and RAM is 16MB. Is there anyone that can tell me why there’s 1.5MB of Flash and 4 MB of RAM wasted?


If you are using USBizi then you should be able to do anything but you have to plan your code right. If you are using EMX, I highly doubt you can every use all flash and RAM of whatever application you can think of!

The memory question, some memory and some flash are used by GHI’s firmware, the rest is yours.


Hello Gus

I know that I need to write properly the code and think small but we are already facing the limit of the USBizi chip and prefer to oversize the chipset now rather than trying for several weeks to hand tune the code in order to fit in the USBizi and finally discover that it can not fit at all.

For now I think that EMX is large enough. Is there any other considerations to know when using RLP? does it recquires extra lib or assemblies that can be big?


RLP or not, use EMX and if you are able to fill memory with code then I will fly to your office and buy you a beer :slight_smile:

Can you imaging the size of your code to compile into a 3MB!


You can already book your flight. :smiley: :smiley: :smiley:

The more memory I have, the more I use it :-[

For information do you have any experiences about software libraries using netmf that can takes large size?


Compared to 3MB and more you have free, none of the libraries is large.


That sounds good for the next project. I still have to check peripherals and real time constraints but I believe that EMX can be relevant for our next product.