Release Notes

MicroEJ Architecture Compatibility Version

The current UI Pack version is 14.2.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.2.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.1.1-14.2.0]

3.6.0

1.0.4

[14.0.0-14.0.2]

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 describe Abstraction Layer interface changes (the functions the BSP has to implement). For more details, refer to the Migration Guide.

Note

In addition of these functions, some C modules must be added to the BSP, see C Modules.

Display

UI Pack Range

Changes

[14.0.0-14.2.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.2.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-14.2.0]

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 and above

com.microej.pack.ui.ui-pack(frontpanel)

Identical to the UI Pack

[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-4.0.2]

[14.0.0-14.2.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 and above

com.microej.pack.ui.ui-pack(imagegenerator)

Identical to the UI Pack

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.

Note

Since version 14.1.1 of UI Pack, UI Pack and MicroUI C Module have the same version.

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

UI Pack

MicroUI C Module

Comment

14.1.1 and above

Identical to the UI Pack

[14.0.0-14.0.2]

[4.0.0-4.1.0]

Buffer refresh strategies

[13.7.0-13.7.2]

[3.1.0-3.1.1]

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.0.7]

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 implementation uses the Graphics Engine software algorithms.

STM32 Chrom-ART

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

Note

Since version 6.0.0, this module has been moved from the MicroEJ DMA2D_Central Repository to the MicroEJ DMA2D_Developer Repository.

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

UI Pack

Chrom-ART

MicroUI C Module

Comment

[14.1.1-14.2.0]

7.0.0

Identical to the UI Pack

Font extensibility

[14.0.1-14.0.2]

[5.0.1-6.0.0]

[4.0.1-4.1.0]

C modules harmonization

14.0.0

5.0.0

4.0.0

Buffer refresh strategies

[13.7.0-13.7.2]

4.1.0

[3.1.0-3.1.1]

Free image resources

[13.5.1-13.6.2]

4.0.0

3.0.0

Multiple Graphics Context output formats

[13.3.0-13.4.1]

[3.0.0-3.0.2]

[2.0.0-2.0.1]

Copy and draw image

[13.1.0-13.2.0]

[2.0.0-2.1.0]

[1.1.0-1.1.1]

Drawing limits

[13.0.0-13.0.7]

[1.0.6-1.0.8]

1.0.3

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

VGLite

MicroUI C Module

Comment

[14.1.1-14.2.0]

10.0.0

Identical to the UI Pack

Font extensibility

[14.0.1-14.0.2]

9.0.0

4.1.0

VG Pack extensibility

[14.0.1-14.0.2]

8.0.1

4.0.1

C modules harmonization

14.0.0

8.0.0

4.0.0

Buffer refresh strategies

[13.7.0-13.7.2]

7.2.0

[3.1.0-3.1.1]

Free image resources

[13.5.1-13.6.2]

[6.0.0-7.1.0]

3.0.0

Multiple Graphics Context output formats

[13.3.0-13.4.1]

[3.0.0-5.0.1]

[2.0.0-2.0.1]

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

C Module Range

VGLite Libraries Range

[8.0.0-10.0.0]

3.0.15_rev7

[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

NemaGFX

MicroUI C Module

Comment

[14.1.1-14.2.0]

4.0.0

Identical to the UI Pack

Font extensibility

[14.0.1-14.0.2]

3.0.0

4.1.0

VG Pack extensibility

[14.0.1-14.0.2]

2.0.1

4.0.1

C modules harmonization

14.0.0

2.0.0

4.0.0

Buffer refresh strategies

13.7.2

1.2.0

[3.1.0-3.1.1]

Update of configuration file

13.7.0

1.1.0

[3.1.0-3.1.1]

Free image resources

[13.5.1-13.6.2]

1.0.0