FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040
2021-08-10 00:16:20 -07:00
..
include [AUTO][RELEASE]: Bump file header version to "10.4.5" 2021-08-10 00:16:20 -07:00
.gitignore Add RP2040 support (#341) 2021-06-30 13:20:54 -07:00
CMakeLists.txt Add RP2040 support (#341) 2021-06-30 13:20:54 -07:00
FreeRTOS_Kernel_import.cmake Add RP2040 support (#341) 2021-06-30 13:20:54 -07:00
idle_task_static_memory.c [AUTO][RELEASE]: Bump file header version to "10.4.5" 2021-08-10 00:16:20 -07:00
library.cmake Add RP2040 support (#341) 2021-06-30 13:20:54 -07:00
LICENSE.md Add RP2040 support (#341) 2021-06-30 13:20:54 -07:00
pico_sdk_import.cmake Add RP2040 support (#341) 2021-06-30 13:20:54 -07:00
port.c [AUTO][RELEASE]: Bump file header version to "10.4.5" 2021-08-10 00:16:20 -07:00
README.md Add RP2040 support (#341) 2021-06-30 13:20:54 -07:00

Overview

This directory provides a FreeRTOS-Kernel port that can be used with the Raspberry Pi Pico SDK. It supports:

  • Simple CMake INTERFACE libraries, to provide the FreeRTOS-Kernel and also the individual allocator types, without copying code into the user's project.
  • Running the FreeRTOS-Kernel and tasks on either core 0 or core 1
  • Use of SDK synchronization primitives (such as mutexes, semaphores, queues from pico_sync) between FreeRTOS tasks and code executing on the other core, or in IRQ handlers.

Note that a FreeRTOS SMP version of this port is also available in the FreeRTOS-Kernel smp branch, which additionally supports utilizing both RP2040 CPU cores for FreeRTOS tasks simultaneously.

Using this port

Copy FreeRTOS-Kernel-import.cmake into your project, and add:

import(FreeRTOS_Kernel_import.cmake)

below the usual import of pico_sdk_import.cmake

This will find the FreeRTOS kernel if it is a direct sub-module of your project, or if you provide the FREERTOS_KERNEL_PATH variable in your environment or via -DFREERTOS_KERNEL_PATH=/path/to/FreeRTOS-Kernel on the CMake command line.

Advanced Configuration

Some additional config options are defined here which control some low level implementation details.

Known Limitations

  • Tickless idle has not currently been tested, and is likely non-functional