The cFS (Core Flight System) ECI (External Code Interface) is a software abstraction layer which allows the interfacing of externally-generated task/mission-specific code to the cFS via a generic set of wrapper code. The ECI enables direct integration of existing or autogenerated code without the need for hand-written interface code and allows access to cFS API's including table services, time services, the software bus, event services, and fault reporting.
The ECI accomplishes this by compiling with a interface definition (defined as a header file) which contains the data structures needed to manage the CFS interfaces for the external code. The result of compiling the ECI, the interface header file, and the external code is a full CFS application. This process eliminates the need for hand edits to integrate generated code, allowing quicker integration of code and reducing the probability of human error in the integration process.
The ECI has been used with CFE 6.5 on various missions and is tested against the CFE located here. There are no known incompatibilities with older (or newer) versions of the CFE, but they have not been tested.
Please submit bug reports and feature requests via Github issues. Feature requests will be considered as they align with the requirements of NASA missions which are using the ECI.