About calvOS
“calvOS” project is intended to be an Open-Source Operating System for small size embedded applications, our initial steps walk around 8-bit and 16-bit micro-controller families. Our purpose is to offer a widely configurable Operating System allowing users to customize calvOS to match their specific application needs, they will be able to configure calvOS from a minimal non-preemptive kernel with no additional functionalities other than the ones required for it up to a preemptive system (if micro-controller supports it) with additional features like I/O control, power modes management, memory management, serial communication, etc.
One of our biggest goals is to provide end-users with a Graphical User Interface to fully-configure and prepare calvOS system to start developing their own application layers. With this GUI our intention is that end-users with minimal or null knowledge regarding operating systems can build more interesting and complex applications by getting the advantages of using an Operating System.
Our Initial development line is to cover 8-bit Atmel AVR micro controller's family with GCC-AVR compiler. All our design is focused to allow calvOS system to be easily ported to other compilers and micro controllers and future development plans involve the use of the GUI to select the target MCU and compiler as they get natively supported by the calvOS Development Team.
Future micro-controller architectures planned to be covered by us are:
-
8-bit PIC
-
16-bit s12, s12x
-
32-bit AVR32
Project System Architecture
In order to achieve the goals of our project we have divided it into the following components:
-
calvOS GUI: This is the front-end of our project.
-
This GUI must allow end-users to customize all the configurable parameters of our project.
-
- Configuration database: Is the place where all the settings entered by the user will be saved.
-
XML and XSD technologies will be used to validate and store the parameters configured by the user through the GUI.
-
- Dynamic Layer: This involves all the required actions to prepare the customized calvOS packet.
-
XSLT technology will be used to transform the configuration parameters stored in the XML files into source code and other required files used by calvOS build process.
-
- Static Layer: Involves all the source code and source data that is static and is used in conjunction with the dynamic layer to build the calvOS system.
-
Application Layer: Is the place where all the calvOS source code interfaces to the applications are given.
-
If desired, in this layer the end-user can include their application source files in order to build them together with the calvOS system.
-
- Build Layer: All the required actions (like call the compiler, linker commands, etc.) to build the calvOS system and generate the outputs.
-
At this moment we haven't decide the technology to be used by this layer. Some options are: perl, bash scripting...
-
Output files could be two options:
-
Intermediate libraries and corresponding interfaces to be used in the application development environment.
-
Executable files including or not the application files (if application decide to use Aplication Layer to include their source code).
-
-
These components and a brief idea of their interactions are showed in the following Drawing.