EtcPal
HEAD (unstable)
ETC Platform Abstraction Layer (EtcPal)
|
View other versions:
|
EtcPal is a C99 library for platform abstraction. It supports the writing of platform-neutral C and C++ libraries by providing a set of modules to abstract common system calls. There are also a few platform-neutral utilities (i.e. data structures, logging) thrown in here and there for convenience.
EtcPal modules are designed to run with low overhead on embedded platforms, and thus are designed to be as thin a wrapper over the underlying OS functionality as possible.
EtcPal also contains some header-only C++11 wrapper modules which wrap the functionality of a corresponding C module in a nicer API for C++ users.
To jump right into the documentation, check out the Modules Overview.
EtcPal distinguishes between two major constructs which provide services to applications. 'OS' targets provide threading, synchronization and other utilities not provided by the C standard library. 'Network' targets provide a network stack.
EtcPal is not written with any hardware architecture assumptions or dependencies, so it should be able to run on any target hardware or architecture.
EtcPal is currently ported for the following OS targets:
And the following network targets:
EtcPal is also buildable in no-OS (bare-metal) environments, with its platform-neutral utility functionality still available.
See Building EtcPal for instructions on building EtcPal for your platform.
The platform ports of EtcPal have the following dependencies:
ossp-uuid
.sudo apt-get install uuid-dev
or the equivalent method for your distribution)