Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SDK ARCH

Overview

Low Level MicroEJ Event Queue API implementation over ThreadX.

This component implements the LLEVENT Low Level API for MicroEJ Platforms connected to a Board Support Package based on the ThreadX RTOS.

See the MicroEJ documentation for a description of the LLEVENT functions:

This implementation has a configuration file, event_configuration.h.

Usage

  1. These sources can be included in the VEE Port with the method you prefer, by using this repository as a submodule or by doing a copy of the sources in the VEE Port repository.

  2. The configuration file event_configuration.h stores default values of the abstraction layer configuration. The Event Queue size with the macro LLEVENT_QUEUE_SIZE with a default of 100. If you want to update a configuration please edit or create the file veeport_configuration.h and set the desired value. This setting overwrites the content of event_configuration.h. If your VEE Port does not print logs using printf, the trace redirection macro LLEVENT_ERROR_TRACE can be updated in veeport_configuration.h.

Requirements

N/A

Validation

This Abstraction Layer implementation can be validated in the target Board Support Package using the MicroEJ Event Queue Validation Platform Qualification Tools project.

Here is a non exhaustive list of tested environments:

  • Hardware
    • STMicroelectronics STM32U5G9J-DK2
  • Compilers / development environments:
    • IAR Embedded Workbench 9.30.1
    • IAR Embedded Workbench 9.50.1
  • ThreadX RTOS versions:
    • 6.1
    • 6.2

MISRA Compliance

This Abstraction Layer implementation is MISRA-compliant (MISRA C:2012) with some noted exception. It has been verified with Cppcheck v2.13. Here is the list of deviations from MISRA standard:

Deviation Category Justification
Rule 8.4 Required A compatible declaration is defined in headers provided by the VEE Port.
Rule 8.7 Advisory API function, external linkage mandatory.
Rule 8.9 Advisory Threadx RTOS requires to have the thread structure and thread name in global access, not in the stack.
Rule 11.3 Required From sni.h with SNI_getArrayLength, cast used by many C framework to factorize code.
Rule 11.5 Required Conversion from void* to another pointer type necessary to be configurable.
Rule 11.8 Required The ThreadX API prevents the use of the const keyword for the pointer type cast.
Rule 18.4 Advisory From sni.h with SNI_getArrayLength, used for configurable C library.
Rule 19.2 Required The union keyword here is useful to parse the data structure.
Rule 21.6 Required The Standard Library input/output is only used for debug purpose by default.

Dependencies

  • MicroEJ Architecture 7.x or higher.
  • ThreadX RTOS 6.1 or higher.

Source

N/A

Restrictions

The current version of this Event Queue port does not support sending events from an interrupt.


Copyright 2024-2025 MicroEJ Corp. All rights reserved. Use of this source code is governed by a BSD-style license that can be found with this software.

About

Low Level MicroEJ Event Queue API implementation over ThreadX.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages