Skip to content
README.md 1.83 KiB
Newer Older
Filipe Rinaldi's avatar
Filipe Rinaldi committed
<!--
#
# Critical Application Monitoring (CAM)
#
# SPDX-FileCopyrightText: <text>Copyright 2023
#   Arm Limited and/or its affiliates <open-source-office@arm.com></text>
# SPDX-License-Identifier: BSD-3-Clause
#
-->

# Critical Application Monitoring (CAM)

The Critical Application Monitoring (CAM) project implements a solution for
monitoring applications using a service running on a higher safety level system.
The approach aims to take advantage of running heavy workloads in
high-performance cores whilst adding an extra layer of safety by monitoring such
applications via a higher safety subsystem.

## Building CAM

To build __cam__, the following dependencies are required:

- CMake (3.16 or later)
- GCC (9.4 or later)
- Python (3.8.10 or later)
- Python-dev (3.8.10 or later, same version as Python)
- Pip (20.0 or later)
- pkg-config (0.29.1 or later)
- CUnit (2.1.3 or later)

In addition, the following dependencies are optional:
- Python virtual environment (3.8.2 or later).
- Doxygen (1.8.17 or later): Generate API documentation from source code.
- Sphinx (6.1.3 or later): Build the project documentation.
- Git version control system.

Create a Python virtual environment then install the Python dependencies:

    $ python3 -m venv venv
    $ source venv/bin/activate
    $ pip install -r requirements.txt

Create a build directory and run cmake:

    $ mkdir build
    $ cd build
    $ cmake ../

Build and install:

    $ make
    $ cmake --install . --prefix <install-location>

Which will copy everything to:

  * `<install-location>/lib`
  * `<install-location>/bin`
  * `<install-location>/include`
  * `<install-location>/share/doc`

## Documentation

The project documentation is based on Sphinx. It is generated after building.
To explore this documentation, simply open
`<install-location>/share/doc/CAM/cam-doc/index.html` in a web browser.