Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/Chalandi/OSEK

OSEK (ECC1/BCC1) Implementation for Cortex™-M3
https://github.com/Chalandi/OSEK

Last synced: 28 days ago
JSON representation

OSEK (ECC1/BCC1) Implementation for Cortex™-M3

Lists

README

        

chalandi/OSEK
==================



Build Status


Issues


GNU GENERAL PUBLIC LICENSE 3.0


GitHub code size in bytes

This repository implements an OSEK-like, bare-metal
operating system for ARM(R) Cortex(R)-M3.
The goals are to achieve near-compatibility with OSEK (ECC1/BCC1)
and to provide an intuitive, esay-to-understand sample application
that can be extended for your own projects.

Features include:
- OSEK-like OS implementation with support of most common features.
- The sample application runs on the STM32F100-NUCLEO Board.
- Tasks and events interact to produce a blinky LED show featuring the green and blue LEDs toggling at 1Hz (green) and 1/2 Hz (blue) respectively.
- Use a simple self-written bare-metal startup.
- Power, clock and port initialization.
- 1ms timebase derived from the ARM(R) `SysTick`.
- Implementation in C99 with absolute minimal use of assembly.

A clear and easy-to-understand build system based on either free GNUmake/GCC
or alternatively KEIL MDK completes this fun and educational project.

This repository provides keen insight on writing your own
_bare_ _metal_ operating system from scratch on a modern
microcontroller using entirely free tools and open standards.

## Details on the Application

Following low-level chip initialization, the program jumps
to the `main()` subroutine in [Application/Appli.c](./Application/Appli.c).
Here there are two functional lines. The first line initializes the LEDs.
The second line subsequently starts the operatng system via call
to `OS_StartOS()`.

An idle task and one single extended task animate the user LED,
providing a simple blinky LED show featuring the gren and blue
LED(s) toggling at 1Hz (green) and 1/2 Hz (blue) respectively.

## Building the Application

### Build with KEIL uVision (MDK)

Build on `Win*` is easy using an installed KEIL-MDK.
Simply use the project file `PRJ_02.uvprojx` which can
be found in the project's root directory.

### Build with GNUmake on `*nix`

Build on `*nix*` is easy using an installed `gcc-arm-none-eabi`

```sh
cd OSEK
./Build.sh
```

The build results including ELF-file, HEX-mask, MAP-file
can be found in the `Output` directory following the GNUmake build.

## References
Further information on open standard OSEK can be found in ISO 17356 and in the link below:
* https://en.wikipedia.org/wiki/OSEK