[WooreeINFO] (NXP LPCXpresso54608 development board) Flash & RAM Uses by MicroEJ/JVM in the reference firmware

#1

Dear MicroEJ,

i’d like to know the memory(flash & RAM) uses by MicroEJ/Java VM in your reference firmware for NXP LPCXpresso54608 development board, and my questions are as:

1> ‘approximate’ Code size of MicroEJ/JVM, to be stored at flash memory
2> ‘approximate’ RAM size required to run MicroEJ/JVM
3> What are stored in the external flash (over QSPI)?
4> Are you utilizing the external RAM with your reference firmware?

Thanks much in advance.

Regards
YH Kwon

#2

Dear YH,

1> 2>
The MEJ32 JVM code is size is less than 30KB and requires ~1.5KB of RAM. This excludes Java libraries (they are dependent on your application) and threads stack/heap (also dependent of your application).
To get a better overview of the final application size, you can use our platform reference implementation and select which libraries you want to include.

For a mono sandbox platform when you generate the firmware:
You can check the device developer guide, look for memory map and elftomap to understand how to generate the .map memory map file:

For a application running on a multi sandbox VEE (firmware) your memory map will only contain the Java application, not the firmware.

3> In the multi sandbox demo firmware, the QSPI flash is used for resources (graphical, fonts…). It can of course be changed and decided in the platform source/configuration.

4> yes, in particular the display framebuffer are located in external RAM.

Kind regards,
Stephane.

#3

Dear Stephane,

Thank you so much for the detailed feedback first of all, however could you please revise your answers based on your reference firmware for NXP LPCXpresso54608 or more specifically based on <FMW-BLUE-OM13092-PQ9Y4-1.6.1.zip>?

Regards
YH Kwon

#4

This FMW-BLUE-OM13092-PQ9Y4-1.6.1 demo firmware is built with all libraries and includes all API implementations, the total code size is:
Application kernel: ~200 KB ROM
System demo applications: 1.8MB ROM reserved
MicroEJ platform with EDC, BON, MicroUI, FS (file system), HAL (IO), MWT (widget), NET (network), SSL, Trace, MQTT + FreeRTOS + C drivers for peripheral access+ C libraries +: ~770 KB ROM

Of course if you’re not using all API and no multi sandbox platform, the code size decreases. In general you can consider a minimum of 128KB of flash and 32KB of RAM is required before adding libraries.

Kind regards,
Stephane.