Giter Club home page Giter Club logo

osek's Introduction

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. 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

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:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.