pw_interrupt_freertos#

Experimental

This module implements a backend for pw_interrupt. It requires a port of FreeRTOS that defines ullPortInterruptNesting. Usually, ports for ARM A-profile processors will have this defined. For Cortex-M processors, use the pw_interrupt_cortex_m backend.

Setup#

Add @pigweed//pw_interrupt_freertos:compatible to your platform’s constraint_values and set the backend implementation flag in your platform flags (or via the command line):

platform(
    name = "my_platform",
    constraint_values = [
        # ...
        "@pigweed//pw_interrupt_freertos:compatible",
    ],
    flags = flags_from_dict({
        # ...
        "@pigweed//pw_interrupt:backend": "//pw_interrupt_freertos:impl",
    }),
)

Set the pw_interrupt_CONTEXT_BACKEND build argument in your toolchain or target configuration:

_target_config = {
  # ...
  pw_interrupt_CONTEXT_BACKEND = "$dir_pw_interrupt_freertos:context"
}

Call pw_set_backend to set the backend in your toolchain file or top-level CMakeLists.txt:

pw_set_backend(pw_interrupt.context pw_interrupt_freertos.context)