9.2. BSP Architecture

9.2.1. IAR Project

The IAR project is composed of three projects:

../_images/bsp_projects.png
  • microej_freertos: main BSP project for i.MX RT595 EVK Rev. C1 board. Based on NXP SDK-2.8.0.
  • microej_demo: enrich the main project with Demo Wearable’s custom drawing (Software Accelerated Rotation).
  • emwin_freetype: Segger emWin Freetype library.

Both additional projects, microej_demo and emwin_freetype produce each a C archive. These archives are already compiled and included in the main project microej_freertos (no need to recompile them).

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

../_images/bsp_project.png
  • board: Specific files related to the i.MX RT595 EVK Rev. C1 board.
  • CMSIS: CMSIS files.
  • component: Required C components for the i.MX RT595 EVK Rev. C1 board.
  • device: CPU iMX 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).
  • 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:

  • freetype: low-level implementation of Segger emWin Freetype library for i.MX RT595 EVK Rev. C1 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).
  • 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.
  • vectorfont: low-level implementation of VectorFont Library over Segger emWin Freetype library.
  • vglite: low-level implementation of VG Lite Library over VGLite library.

9.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 three projects: microej_freertos, microej_demo and emwin_freetype.
  • sdk: NXP SDK 2.8.0: board support, CMSIS, drivers, RTOS, VGLite, etc.
  • thirdparty: Segger SystemView and Segger emWin Freetype files.

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

9.2.3. MicroEJ Platform Files

The MicroEJ platform enriches the BSP for i.MX RT595 EVK Rev. C1 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.