Release Notes

MicroEJ Architecture Compatibility Version

The current UI Pack version is 14.0.0. The following tables describe the compatibility ranges between MicroEJ UI Packs and MicroEJ Architectures.

Standard Versions

UI Pack Range Architecture Range Comment
[13.5.0-14.0.0] [7.16.0-9.0.0[ Compatibility with Architecture 8
[13.0.0-13.4.1] [7.16.0-8.0.0[ SNI 1.3
[12.0.0-12.1.5] [7.11.0-8.0.0[ Move Front Panel in MicroEJ Architecture
[11.0.0-11.2.0] [7.0.0-8.0.0[ SNI Callback feature
[9.3.1-10.0.2] [6.13.0-7.0.0[ LLEXT link error with Architecture 6.13+ and UI 9+
[9.2.0-9.3.0] [6.12.0-6.13.0[ SOAR can exclude some resources
[9.1.0-9.1.2] [6.8.0-6.12.0[ Internal scripts
[8.0.0-9.0.2] [6.4.0-6.12.0[ Manage external memories like byte addressable memories
[6.0.0-7.4.7] [6.1.0-6.12.0[  

Maintenance Versions

UI Pack Version UI Pack Base Version Architecture Range Comment
(maint) 8.0.0 7.4.7 [7.0.0-8.0.0[ SNI Callback feature

Foundation Libraries

The following table describes Foundation Libraries API versions implemented in MicroEJ UI Packs.

MicroUI API Implementation
UI Pack Range MicroUI Drawing
14.0.0 3.5.0 1.0.4
[13.7.0-13.7.2] 3.4.0 1.0.4
[13.6.0-13.6.2] 3.3.0 1.0.4
[13.5.0-13.5.1] 3.2.0 1.0.4
[13.2.0-13.4.1] 3.1.1 1.0.4
13.1.0 3.1.0 1.0.3
[13.0.4-13.0.7] 3.0.3 1.0.2
13.0.3 3.0.2 1.0.1
[13.0.1-13.0.2] 3.0.1 1.0.0
13.0.0 3.0.0 1.0.0
[12.1.0-12.1.5] 2.4.0  
[11.1.0-11.2.0] 2.3.0  
[9.2.0-11.0.1] 2.2.0  
[9.1.1-9.1.2] 2.1.3  
9.1.0 2.1.2  
[9.0.0-9.0.2] 2.0.6  
[6.0.0-8.1.0] 2.0.0  

Abstraction Layer Interface

The following sections briefly describes Abstraction Layer interface changes. For more details, refer to the Migration Guide.

Display

UI Pack Range Changes
14.0.0 Signature of LLUI_DISPLAY_IMPL_flush() changed.
[13.0.0-13.7.2]

UI3 format: implement LLUI_DISPLAY_impl.h:

  • void LLUI_DISPLAY_IMPL_initialize([...]);
  • void LLUI_DISPLAY_IMPL_binarySemaphoreTake([...]);
  • void LLUI_DISPLAY_IMPL_binarySemaphoreGive([...]);
  • uint8_t* LLUI_DISPLAY_IMPL_flush([...]);
[10.0.0-12.1.5]

Remove:

  • int32_t LLDISPLAY_IMPL_getWorkingBufferStartAddress([...]);
  • int32_t LLDISPLAY_IMPL_getWorkingBufferEndAddress([...]);
[8.0.0-9.4.1]

Merge in LLDISPLAY_impl.h:

  • LLDISPLAY_SWITCH_impl.h
  • LLDISPLAY_COPY_impl.h
  • LLDISPLAY_DIRECT_impl.h
[6.0.0-7.4.7]

UI2 format: implement one of header file:

  • LLDISPLAY_SWITCH_impl.h
  • LLDISPLAY_COPY_impl.h
  • LLDISPLAY_DIRECT_impl.h

Input

UI Pack Range Changes
[13.0.0-14.0.0]

UI3 format: implement LLUI_INPUT_impl.h:

  • void LLUI_INPUT_IMPL_initialize([...]);
  • jint LLUI_INPUT_IMPL_getInitialStateValue([...]);
  • void LLUI_INPUT_IMPL_enterCriticalSection([...]);
  • void LLUI_INPUT_IMPL_leaveCriticalSection([...]);
[6.0.0-12.1.5]

UI2 format: implement LLINPUT_impl.h

  • void LLINPUT_IMPL_initialize([...]);
  • int32_t LLINPUT_IMPL_getInitialStateValue([...]);
  • void LLINPUT_IMPL_enterCriticalSection([...]);
  • void LLINPUT_IMPL_leaveCriticalSection([...]);

LED

UI Pack Range Changes
[13.0.0-13.7.2]

UI3 format: implement LLUI_LED_impl.h:

  • jint LLUI_LED_IMPL_initialize([...]);
  • jint LLUI_LED_IMPL_getIntensity([...]);
  • void LLUI_LED_IMPL_setIntensity([...]);
[6.0.0-12.1.5]

UI2 format: implement LLLEDS_impl.h

  • int32_t LLLEDS_IMPL_initialize([...]);
  • int32_t LLLEDS_IMPL_getIntensity([...]);
  • void LLLEDS_IMPL_setIntensity([...]);

Front Panel API

The Front Panel project must fetch the widgets compatible with the MicroEJ UI Pack fetched in the VEE Port configuration project:

  • Before MicroEJ UI Pack 12.0.0, the Front Panel project must depend on the classpath variable FRONTPANEL_WIDGETS_HOME.
  • For the UI Packs 12.x.x, the Front Panel project must fetch the module ej.tool.frontpanel.widget-microui.
  • Since MicroEJ UI Pack 13.0.0, the Front Panel project must depend on the module com.microej.pack.ui.ui-pack(frontpanel) (the module version is the MicroEJ Generic UI Pack version, that is always aligned with the MicroEJ UI Packs specific for MCUs).
UI Pack Range Module Version
[13.0.0-14.0.0] com.microej.pack.ui.ui-pack(frontpanel) [13.0.0-14.0.0]
[12.0.0-12.1.5] ej.tool.frontpanel.widget-microui 1.0.0
[6.0.0-11.2.0] n/a n/a

The widget module ej.tool.frontpanel.widget provides some widgets compatible with the Graphics Engine. This module fetches by transitivity the module com.microej.pack.ui.ui-pack(frontpanel). When the Front Panel project does not require/use the latest Front Panel UI API, it can only fetch the widget module.

Note

This module has been moved from the MicroEJ Central Repository to the MicroEJ Developer Repository.

Widget Module Range UI Pack Compatibility Range Repository
4.0.0 14.0.0 Developer
3.0.0 [13.5.1-10-13.7.2] Developer
2.2.0 [13.1.0-13.7.2] Developer
[2.1.0-2.1.1] [13.1.0-13.7.2] Central
2.0.0 [13.0.0-13.7.2] Central
1.0.1 [12.0.0-12.1.5] Developer

To use the latest functionalities provided by the UI Pack 13.0.0 and higher, the Front Panel project must depend on the same version of the UI Pack as the VEE Port configuration project. However, if the Front Panel project does not require/use the latest Front Panel UI API, it can fetch a version of the UI Pack older than the version fetched in the VEE Port configuration project.

Image Generator API

Since MicroEJ UI Pack 13.0.0, the Image Generator extension project must depend on module com.microej.pack.ui.ui-pack(imagegenerator). The module version is the MicroEJ Generic UI Pack version, that is always aligned with the MicroEJ UI Packs specific for MCUs.

UI Pack Range Module Version
[13.0.0-14.0.0] com.microej.pack.ui.ui-pack(imagegenerator) [13.0.0-14.0.0]

Note

Before MicroEJ UI Pack 13.0.0, the Image Generator extension project must depend on classpath variable IMAGE-GENERATOR-x.x.

C Modules

MicroUI C Module

The MicroUI C module com.microej.clibrary.llimpl(microui) is available on MicroEJ Central Repository, see C Modules. The following table describes the compatibility versions between the MicroEJ UI Packs and the C modules:

UI Pack Range C Module Range Comment
14.0.0 4.0.0 buffer refresh strategies
[13.7.0-13.7.2] 3.1.0 free image resources
[13.5.0-13.6.2] 3.0.0 multiple Graphics Context output formats
[13.3.0-13.4.1] [2.0.0-2.0.1] copy and draw image
[13.1.0-13.2.0] [1.1.0-1.1.1] image heap, events queue, drawing limits
[13.0.0-13.1.0] [1.0.0-1.0.3]  

Extended C Modules

Some C modules extend the main MicroUI C module. They override the default implementation to use a GPU to perform some drawings. Contrary to the main MicroUI C module, they are optional: when they are not available, the default implementation of drawings is used. The default implementations use the Graphics Engine software algorithms.

STM32 Chrom-ART

The DMA2D C module targets the STM32 CPU that provides the Chrom-ART accelerator.

The following table describes the version compatibility between the MicroEJ UI Packs and the C modules:

UI Pack Range C Module Range Comment
14.0.0 5.0.0 buffer refresh strategies
[13.7.0-13.7.2] 4.1.0 free image resources
[13.5.0-13.6.2] 4.0.0 multiple Graphics Context output formats
[13.3.0-13.4.1] [3.0.0-3.0.2] copy and draw image
[13.1.0-13.2.0] [2.0.0-2.1.0] drawing limits
[13.0.0-13.0.7] [1.0.6-1.0.8]  

Vivante VGLite

The VGLite C module targets the NXP CPU that provides the Vivante VGLite accelerator.

The following table describes the version compatibility between the MicroEJ UI Packs and the C modules:

UI Pack Range C module Range Comment
14.0.0 8.0.0 buffer refresh strategies
[13.7.0-13.7.2] 7.2.0 free image resources
[13.5.0-13.6.2] [6.0.0-7.1.0] multiple Graphics Context output formats
[13.3.0-13.4.1] [3.0.0-5.0.1] copy and draw image
[13.1.0-13.2.0] [1.0.0-2.0.0]  

The following table describes the version compatibility between the C module and the VGLite libraries (officially supported):

C Module Range VGLite Libraries Range
[7.1.0-7.2.0] 3.0.15_rev4 and 3.0.15_rev7
[4.0.0-7.0.0] 3.0.15_rev4
[2.0.0-3.0.0] 3.0.11_rev3
1.0.0 3.0.4_rev2 and 3.0.4_rev4

Think Silicon NemaGFX

The NemaGFX C module targets the CPU that provides the NemaGFX accelerator.

The following table describes the version compatibility between the MicroEJ UI Packs and the C modules:

UI Pack Range C module Range Comment
14.0.0 2.0.0 buffer refresh strategies
[13.7.0-13.7.2] [1.1.0-1.2.0] free image resources
[13.5.0-13.6.2] 1.0.0