The liba653 LIBRARY is an arinc 653 scheduler for Linux (uses POSIX standard), standardized by the A653.
Refer to LICENCE file.
- not all functionality is implemented now, but partitions with Processes using sampling and queueing ports is shown by the demonstration code.
- not implemented function are implemented as empty functions and will be added if needed step by step.
- The implementation is compliant only with A653.
The liba653 LIBRARY can be built for the following operating systems and compilers:
- Linux 32 bits (RHEL7)
- Linux 64 bits (RHEL7)
LDLIBS = -lpthread -lrt -lm -ldl
The logging strategy can be controlled through by
setDebug(int level)
call and
printDebug(int level, const char *format, ... ){
can by used with the same interface as printf()
with a leading debug level
call Make in base directory to build liba653.a
and bind to demo implementation. Result will be located at ~/bin
in your home
directory. There will be the files:
a635_main
partition_a
partition_b
go to ~/bin
and start ./a653_main
this will generate following output:
pid: 578773 <1702486050.317812578>: Current local time and date: Wed Dec 13 17:47:30 2023
pid: 578773 <1702486050.318212993>: a653_shm id: 0x63801e ptr: 0x7f5e57802000
pid: 578773 <1702486050.318233554>: > taskset --cpu-list 0 ./partition_a & :
pid: 578773 <1702486050.349241033>: a653 start (other pid) 578775
pid: 578773 <1702486050.349254883>: > taskset --cpu-list 1 ./partition_b & :
......
target | Purpose |
---|---|
all |
Build everything. This is the default target. |
amain |
Only build the main program (scheduler a653_main). |
part_a |
Only build the partition a. |
part_b |
Only build the partition b. |
alib |
Only build the liba653.a . |