Loading...
Searching...
No Matches
firmware Directory Reference

Detailed Description

Australis Firmware

Project sources and build tooling for the Australis Firmware system

Table of Contents

Source Structure

The sources are organized as follows:

Key Components

Modules

Important
TODO: complete this section

Hardware Targets

The target/ directory contains specific configurations for different hardware platforms. Each target defines:

Configuration Options

Target specific #defines in AustralisConfig.h.

Peripheral Initialisation

All hardware peripherals (CAN, SPI, etc.) are initialised by the target and passed to any devices that require them during initialisation.

Device Initialisation

Each device required by the target must be appropriately initialised and registered in the core device list.

Firmware Entry Point

It is the responsibility of the target to initialise and run Australis Core. A target's source code must define the main() entry function and execute any code required by the above.

Note
See the target/README.md for more information about currently available targets (TODO: remember to fill this file out).

Building the Firmware

The build process uses CMake to generate Makefiles, which are then used to compile and link the firmware.

Prerequisites

Build Steps

  1. Set HARDWARE_TARGET: Define the HARDWARE_TARGET variable when invoking CMake. This specifies which hardware target in the target/ directory will be built. For example:
    ```bash
    cmake -DHARDWARE_TARGET=minimal -S . -B build
    ```
    This command, when invoked from within the firmware source root `firmware/`, tells CMake to build against the `minimal` target.
    
  1. Build the Firmware: Navigate to the build directory and invoke cmake, or pass cmake the appropriate path to your build tree.

    bash cd build cmake --build or bash cmake --build path/to/build

For Developers

Important
TODO: complete this section

Contributing

Important
TODO: complete this section