https://github.com/chalandi/osek
OSEK (ECC1/BCC1) Implementation for Cortex™-M3
https://github.com/chalandi/osek
osek osek-vdx rtos
Last synced: 4 months ago
JSON representation
OSEK (ECC1/BCC1) Implementation for Cortex™-M3
- Host: GitHub
- URL: https://github.com/chalandi/osek
- Owner: Chalandi
- License: gpl-3.0
- Created: 2018-02-13T11:03:38.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-05-17T22:09:38.000Z (over 2 years ago)
- Last Synced: 2025-05-11T02:43:09.519Z (8 months ago)
- Topics: osek, osek-vdx, rtos
- Language: C
- Homepage:
- Size: 98.6 KB
- Stars: 33
- Watchers: 2
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
chalandi/OSEK
==================
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