Skip to content

AUTOPIA-OS/MultiCore-OS

Repository files navigation

License building workflow Cppchecker workflow

Github Pages

multicoreOS

An AUTOSAR compliant multicore OS for TriCore

Table of contents

📖 Overview

The automotive industry relies heavily on Realtime operating systems (RTOS) to handle safety-critical applications that require precise timing and responsiveness. The adoption of RTOS has led to increased software quality, reduced development costs, and shorter time-to-market for new products.

Realtime Operating Systems and the Automotive Industry:

  • RTOS is designed to handle specific needs in the automotive industry, such as providing real-time data to the driver in the form of infotainment systems. These systems (RTOS) ensure that critical tasks are executed on time and without delay, providing a reliable and efficient solution for the automotive industry.

OSEK and AUTOSAR Standards:

  • The automotive industry has adopted two standards for RTOS. The OSEK (Open Systems and their Interfaces for Electronics in Motor Vehicles) standard was developed in the 1990s and defines a set of specifications for an RTOS in the automotive industry. AUTOSAR (Automotive Open System Architecture) which follows OSEK's principles, is a newer standard that has been adopted by the industry to create a common platform for the development of automotive software. AUTOSAR provides a standard methodology for designing, implementing, and integrating software components in vehicles.

Our project, which is the design of an AUTOSAR-compliant RTOS for next-generation eMobility, ADAS, automotive E/E architectures, and affordable AI applications, is essential for the automotive industry. By providing an RTOS that complies with the industry-standard AUTOSAR methodology, we ensure that our software is reliable, maintainable, and compatible with other AUTOSAR-compliant software. Additionally, our RTOS supports next-generation hardware accelerators, which are necessary for the efficient and effective functioning of these systems.

🙌 Objective

The project aims to support new hardware accelerators, such as the PPU (Parallel Processing Unit) and cDSP (Programmable digital signal processing for the ADC signals).

🔨 Dependencies

GCC

  • For macOS installtion please follow this guide

  • For Windows installtion please follow this guide

  • For Linux installtion please follow this guide

Make

  • For macOS installtion please follow this guide

  • For Windows installtion please follow this guide

  • For Linux installtion please follow this guide

🔍 How to Use

Simulation

First run make file:

make

Then run executable:

./myprogram

Hardware Deployment

📜 File Structure

├── CONTRIBUTING.md
├── Doxyfile
├── LICENSE
├── Makefile
├── README.md
├── docsu
├── include
│   ├── EventMechanism.h
│   ├── InterruptHandler.h
│   ├── OSExecutionControl.h
│   ├── ResourceManager.h
│   ├── StatusDefintions.h
│   ├── TaskManager.h
│   ├── data_structure
│   ├── data_structure
│   │   ├── PriorityQueue.h
│   │   └── stack.h
│   └── includes.h
├── license_config
│   ├── LICENSE_HEADER.txt
│   └── config.json
├── myprogram
├── obj
│   ├── EventMechanism.o
│   ├── InterruptHandler.o
│   ├── OSExecutionControl.o
│   ├── PriorityQueue.o
│   ├── ResourceManger.o
│   ├── TaskManager.o
│   ├── main.o
│   ├── stack.o
│   ├── testCommon.o
│   ├── testEM.o
│   ├── testOSEC.o
│   ├── testRM.o
│   └── testTM.o
├── src
│   ├── EventMechanism.c
│   ├── InterruptHandler.c
│   ├── OSExecutionControl.c
│   ├── PriorityQueue.c
│   ├── ResourceManger.c
│   ├── TaskManager.c
│   ├── main.c
│   └── stack.c
├── suppressions.txt
└── tests
    ├── testCommon.c
    ├── testEM.c
    ├── testOSEC.c
    ├── testRM.c
    ├── testTM.c
    └── tests.h

💪 How to Contribute

You must first install all the needed dependencies and your code must pass all of github actions CIs.

To learn more about contributing to this project please check the Contribution Guidelines.

📝 Issue Tracker

If you encounter any issues or bugs, please report them on our GitHub issue tracker.

🤩 Authors

  • Ahmed Hesham

    image image

  • Ali El Liethy

    image image

  • Andrew Sinout

    image image

  • Mohamed Nasr

    image image

  • Omar Mohey

    image image

  • Yousef Kandil

    image image

👨‍🏫 Supervisors

  • Dr. Mohamed Shalan (The American University in Cairo)
  • Dr. Ahmed Moro (Siemens)

⚖️ License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.