Skip to content

cu-co-gr/Adaptive-AUTOSAR

 
 

Repository files navigation

Adaptive-AUTOSAR

This project is a playground for Adaptive Autosar Methodology use cases. At the same time this serves as playground to test development workflows with AI Agents, aiming to understand its capabilities and limitations to develop safety critical systems.

System Concept - Two or more Machines interconnected over SOME/IP System Concept

Machine Concept - Adaptive Platform with one or more Adaptive Applications deployed in one of the following: a. Virtual Target - Linux Server (Ubuntu 24.04.4, Intel/AMD 64-bit, x86_64) b. Embedded Target - Arduino UNOQ (Debian GNU/Linux 13 (trixie), ARM Cortex-A53, aarch64) Adaptive Platform Concept - Baselined from upstream repository. Extended to match Autosar R25-11 specifications.

Major differences with baseline Execution Manager - Reworked to spawn/start and terminate OS processes. State Manager, Platfrom Health Manager, Diagnostic Manager are now independent executables Volvo Extended Vehicle API is stubbed Added build toolchain for aarch64 ara::comm - Introduced skeleton/proxy pattern. ara::per - partially implemented (Key value storage). Implemented as a library (not thread safe) extended_vehicle / watchdog_application - Basic applications to enable system concept and machine concept.

Dependecies

It will be tried to use minimum number of dependencies as much as possible. The current dependencies are as follows:

Build

Github Actions builds both x86_64 and aarch64 targets.

Compiler debug configuration

  • GCC x86_64:
cmake -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/x86_64-linux-gnu-gcc-11 -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/x86_64-linux-gnu-g++-11 -S . -B build
  • GCC aarch64:
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=cmake/aarch64-toolchain.cmake -Dbuild_tests=OFF -S . -B build-aarch64
  • QCC x_86_64:
<QNX SDP PATH>/qnxsdp-env.bat
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=cmake/qnx-x86_64-toolchain.cmake -Dbuild_tests=OFF -S . -B build-qnx

Compiling

cmake --build build

Create deployment package aarch64

This was created to delpoy the application in Arduino UNOQ.

  cmake --install build-aarch64 --prefix deploy/

Unit tests running (built only for x86_64 target)

cd build && ctest

Run

To run the Adaptive AUTOSAR simulation, launch the following executable by passing the execution manifest file path as the argument:

./build/bin/adaptive_autosar ./configuration/execution_manifest.arxml

Note that execution_manifest.arxml contains the relative paths to the rest of the executables and manifests.

Smoke Test

./scripts/test_watchdog_event.sh checks for basic machine execution and system communication.

Documentation

  1. Please refer to upstream project. the project GitHub pages powered by Doxygen.
  2. Please refer to CONTEXT.md for user stories, knowm limitations and TODOs.

About

Playground for Methodology use cases

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 96.8%
  • CMake 2.2%
  • Shell 1.0%