10.2. BSP Architecture
10.2.1. IAR Project
The IAR project is composed of two projects:
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.
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:
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.
