Skip to main content

PARA Overview

PARA (PopcornSAR AUTOSAR Runtime for Adaptive Application) is an Adaptive AUTOSAR (AP) runtime developed by PopcornSAR, targeting the standard AUTOSAR Adaptive Platform R25-11. It provides runtime libraries, daemons, and a configuration framework so that Adaptive Applications running on high-performance automotive ECUs can use service-oriented communication, execution management, logging, and more through the standard AUTOSAR AP APIs (ara::*).

For unfamiliar terms (Function Group, manifest, APID, etc.), refer to the Glossary.

Provided Functional Clusters

PARA consists of Functional Cluster libraries (lib/libpara_*.so) that correspond to the standard ara:: namespaces. The main clusters are as follows.

Libraryara:: namespaceRoleRuntime daemon
libpara_coreara::coreFoundational types such as Result, Future, ErrorCode, and containers
libpara_comara::comService-oriented communication (SOME/IP)CM
libpara_execara::execExecution management (process lifecycle and state reporting)EM
libpara_logara::logLogging and tracing (DLT backend)(dlt-daemon)

Runtime Operation Model

The PARA runtime operates with two daemons and manifest-based startup. Understanding this model first makes the subsequent installation, example, and configuration documents much easier to follow.

DaemonNameRole
Execution ManagerEMThe entry point of the runtime. It scans manifests to build a dependency graph and starts/stops processes.
Communication ManagerCMHandles service-oriented communication (service discovery, SOME/IP binding).

The startup flow is as follows.

  1. Configure the environment and run EM.
  2. EM transitions MachineFG (Machine Function Group) from OffStartup.
  3. Each process declares, via state-dependencies in its execution manifest, "in which state of which Function Group it should start." The platform processes (CM) and applications bound to MachineFG:Startup are started.
  4. In other words, what to launch and when is decided by the manifest, not by code.

A Function Group is a bundle of processes that start/stop together and serves as a unit of state transition, while a manifest is the JSON configuration that holds those declarations. Details are covered in Function Group configuration and Execution configuration.

Next Steps