Shift-Right Open Repository
The Shift-Right Open Repository is a
freely available C, C++, JAVA
source library, and Build Environment.
The Repository is hosted on Source Forge
Shift-Right's Open Repository is a working example of a reusable C/C++ source
code repository. The repository was designed from ground up to support software
reuse. To achieve extensive software reuse, attention has to be paid to managing
dependencies between elements. To this end, the following features where
implemented to achieve the reuse goal:
Source code files organized independent of the projects that use them.
Directory layout not based on the traditional "top-down call tree"
paradigm, but structured to reflex the actual dependences of the code
A reusable and extendable build environment.
Extensive use of Object Orient Design methodologies to make the source
code modules as loosely coupled as possible.
Another characteristic of the Repository is that the majority of the code was
developed for embedded software development. And as such, was designed to meet
the constrained environment of embedded programming. The most obvious
characteristics are the obsession with deterministic memory management and
strict type checking. The following traits are typical of embedded systems.
Memory constrained. Embedded systems have limited ROM, FLASH, and RAM
Dedicated system. Embedded hardware typically runs one and only one
High availability. Most embedded systems are expected to run once power
is applied and continuing running until power is lost/turned off. This means
a embedded application is expected to run for months and/or years without
Real time. Embedded systems interact with the physical world. This
interaction involves hardware inputs and controls. The software must respond
to this stimuli in a deterministic and timely fashion.
Stand alone. There is no standard hardware platform or RTOS for embedded
application. Typically, the hardware supporting the application is very
specialized and proprietary. Unique hardware translates to unique software
(i.e. limited COTS software support).
Platform changes. Designers of embedded systems have to deal with the
possibility of the underlying hardware and/or RTOS being changed. The
hardware platforms are constantly being upgraded or cost reduced. If the
hardware changes, the software must change with it.
Open Repository Sub-Projects
XMK is a preemptive multithreaded real time operating system for
BENV is multi-host, cross target build environment
A C++ library specifically designed for embedded software development.
The Repository supports the integration and use of third-party sources
and libraries. Numerous packages have been integrated into the Repository
framework and are available. Click here for details.
The JAVA library is in its infancy and has limited offerings. The
first goal of the JAVA library was to be able to build JAVA projects under
the BENV build enivronment.