HCC-Embedded Scheduler
Advanced Embedded Middleware packages are designed to be used in rigorous certification processes such as for IEC 61508 SIL-3, IEC 62304 and FDA 510(K)
Developed to HCC s Advanced Embedded Middleware standard
Efficient task synchronization syste
Small footprint - typically less than 2K code and 100 bytes RAM
Prioritized Tasks
Mutexes
Events
Fully compliant to HCCs coding standard - MISRA-C+
100% code coverage tested
Suitable for use in products requiring high availability or certification
Ports available for a wide range of microcontrollers


HCC-Embedded does not provide its own RTOS; instead it provides a co-operative scheduler, aemSync,
for running their middleware product tasks on systems where there is no RTOS.  It is a small subset of the functions of a standard RTOS but it greatly simplifies typical "super-loop" implementations.  It can also be used by any other application within the design constraints of the scheduling.

aemSync is particularly suited for embedded systems that require certification or a high level of reliability and availability.

Main Features
sync_init    initializes aemSync system.
sync_run   runs the aemSync system for the specified time period.
sync_task_create ()    creates and starts a task with the specified parameters
sync_task_delete()  deletes the specified task
sync_task_getid() returns current task ID to the caller
sync_task_sleep()      puts the task into idle state for the specified time
sync_task_yield()  allows system to schedule other equal or higher priority tasks
sync_event_init()  initializes an event
sync_event_delete() delete the specified event
sync_event_flags_get() wait for the specified event(s)
sync_event_flags_set () set the specified event(s)
sync_event_flags_set_int() set the specified event(s) from an ISR
sync_mutex_init()   initializes a mutex
sync_mutex_delete()  deletes a mutex
sync_mutex_get() get a mutex - does not return until available
sync_mutex_put() puts a mutex - releases back to the system.
The available API is designed specifically to those functions required to implement fully functional protocol and communication stacks.
Functions
Complete system design including hazard and risk analysis
Requirements specification
High level to low level design in 4-level UML 2.0
Collaboration diagram - of overall system
Sequence charts - of important interactions
State charts for complete system resolved into activity diagrams, to a level from which code can be derived directly
MISRA C-compliant (and more) coding standard
Static code analysis - using industry leading software
Dynamic analysis - unit test - using industry leading software
Full MC/DC coverage
Equivalence class and boundary condition analysis
Functional test suite (traceable back to the design and requirements)
Release procedure
Maintenance procedure