OpenSwarm  0.16.1.2
An operating system for miniature robots
Files
Kernel

OpenSwarm provides functions to start and initialise the operating system; allocate, free and copy memory; and create and end atomic sections. More...

Files

file  interrupts.c
 It defines the functions to create atomic sections.
 
file  interrupts.h
 It declares interrupt priority levels and functions to create atomic sections.
 
file  memory.c
 It defines functions to allocate, free, and copy memory.
 
file  memory.h
 It declares functions to allocate, free, and copy memory.
 
file  system.c
 defines functions to initialise and start OpenSwarm.
 
file  system.h
 It declares functions to initialise and start OpenSwarm.
 

Detailed Description

OpenSwarm provides functions to start and initialise the operating system; allocate, free and copy memory; and create and end atomic sections.

Author
Stefan M. Trenkwalder s.tre.nosp@m.nkwa.nosp@m.lder@.nosp@m.open.nosp@m.swarm.nosp@m..org

Introduction

The Kernel contains basic functions to initialise and start all modules of OpenSwarm. This part of OpenSwarm executes all three modules

  1. Process Management
  2. Event Management
  3. I/O Management

First, the system has to be configured by setting preprocessor values and variables. Then, OpenSwarm initialises the system and I/O according to its configuration (preprocessor definitions) and with an additional command the system can be started. In addition, functions to define atomic sections (sections that cannot be interrupted by anything), allocate and free memory are also provided.

Definitions

definition.h provides standardised ports, configures the used platform, and defines general preprocessor/type definitions that are needed in OpenSwarm.

Memory Management

OpenSwarm is designed for processing units that lack a MMU (Memory Management Unit). As a consequence, advance memory management functions as virtual memory cannot be implemented without a significant reduction of efficiency.

However, OpenSwarm provides atomic functions to allocate, free and copy memory in memory.h.

Interrupt Management

OpenSwarm provides defined interrupt priorities and functions to create atomic sections in interrupts.h. A atomic section is a section of code that cannot be interrupted.