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: 3 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 (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-05-17T22:09:38.000Z (over 1 year ago)
- Last Synced: 2024-05-20T09:32:51.810Z (6 months ago)
- Language: C
- Size: 98.6 KB
- Stars: 26
- Watchers: 2
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-automotive - Chalandi Amine OSEK 2.2.3 - Implementation for ARM Cortex M3. (RTOS / OSEK/VDX)
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