10.2. BSP Architecture

10.2.1. IAR Project

The IAR project is composed of two projects:

../_images/bsp_projects.png
  • microej_freertos: main BSP project for MIMXRT595-EVK board. Based on NXP SDK-2.8.0.
  • lib_harfbuzz: Harfbuzz library compilation project. Harfbuzz library contains c++ code which is not compatible with IAR, thus this library is compiled with the GNU toolchain. This project is a wrapper over the GnuToolChain makefile.

The additional project lib_harfbuzz produces a C archive. This archive is already compiled and included in the main project microej_freertos (no need to recompile it).

The main project microej_freertos is based on examples available in NXP SDK-2.8.0 for MIMXRT595-EVK board. Its tree structure follows the same convention as the NXP examples.

../_images/bsp_project.png
  • board: Specific files related to the MIMXRT595-EVK board.
  • CMSIS: CMSIS files.
  • component: Required C components for the MIMXRT595-EVK board.
  • device: i.MX RT595 files.
  • drivers: NXP drivers.
  • flash_config: drivers for flash.
  • freertos/freertos_kernel_10.2.1: version 10.2.1 of FreeRTOS; used by project.
  • freertos/freertos_kernel_10.3.0: version 10.3.0 of FreeRTOS; not used by project (not compatible with Segger SystemView).
  • lwip: lwIP TCP/IP stack.
  • libs: Third-party libraries (C archives).
  • source: MicroEJ abstraction layer (see after).
  • startup: startup file.
  • utilities: additional utility files.
  • vglite: VGLite 3.0.4-rev4 library.
  • video: drivers for video (bus, display, etc.).
  • Output: IAR output files.

The MicroEJ abstraction layer (source folder) is based on NXP examples. It is composed of several elements:

  • ecom-network: low-level implementation of MicroEJ ECOM-NETWORK library.
  • ecom-wifi: low-level implementation of MicroEJ ECOM-WIFI library.
  • freetype: low-level implementation of Freetype library for MIMXRT595-EVK board.
  • harfbuzz: low-level implementation of Harfbuzz library for MIMXRT595-EVK board.
  • kf: low-level implementation of MicroEJ Multi-Sandbox Firmware and support to install new features (see Deploy Additional Watchface ); this group is useless to build a Mono-Sandbox Firmware.
  • lowpower: low power management (see Power Management)
  • main: main entry point and low-level implementation of MicroEJ Architecture core (LLMJVM, LLBSP).
  • net: low-level implementation of MicroEJ NET library.
  • osal: OS Abstraction Layer FreeRTOS implementation.
  • systemview: Segger SystemView files.
  • trace: low-level implementation of MicroEJ Architecture trace over Segger SystemView.
  • ui: low-level implementation of MicroEJ Architecture UI (MicroUI): display, input, drawings.
  • util: utility functions for low-level implementation of MicroEJ Architecture.
  • vg: low-level implementation of MicroVG Library over VGLite library.

10.2.2. File System

The following list describes the links between the file system and the IAR project briefly:

../_images/bsp_fs.png
  • projects: The project: microej_freertos.
  • sdk: NXP SDK 2.8.0: board support, CMSIS, drivers, RTOS, VGLite, etc.
  • thirdparty: WF200 low-level drivers.

The MicroEJ project (projects/microej) follows the same files and folders organization as the IAR project.

10.2.3. MicroEJ Platform Files

The MicroEJ platform enriches the BSP for MIMXRT595-EVK board with some header files and some archives. The files are respectively copied into the folders projects/microej/platform/inc and projects/microej/platform/lib.

Note

The files are copied from the MicroEJ platform to the BSP project when launching a MicroEJ application on the MicroEJ Platform.