FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040
Graham Sanderson 45dd83a8e3
Fix RP2040 assertion due to yield spin lock info being wrongly shared between multiple cores (#501)
Co-authored-by: graham sanderson <graham.sanderson@raspeberryi.com>
2022-06-09 10:59:35 -07:00
..
include Rp2040 fixes smp (#425) 2021-12-17 15:06:35 -08:00
.gitignore Rp2040 smp (#342) 2021-07-06 10:53:49 -07:00
CMakeLists.txt Rp2040 smp (#342) 2021-07-06 10:53:49 -07:00
FreeRTOS_Kernel_import.cmake Rp2040 fixes smp (#425) 2021-12-17 15:06:35 -08:00
idle_task_static_memory.c Rp2040 smp (#342) 2021-07-06 10:53:49 -07:00
library.cmake Rp2040 smp (#342) 2021-07-06 10:53:49 -07:00
LICENSE.md Rp2040 smp (#342) 2021-07-06 10:53:49 -07:00
pico_sdk_import.cmake Rp2040 smp (#342) 2021-07-06 10:53:49 -07:00
port.c Fix RP2040 assertion due to yield spin lock info being wrongly shared between multiple cores (#501) 2022-06-09 10:59:35 -07:00
README.md Rp2040 smp (#342) 2021-07-06 10:53:49 -07:00

Overview

This directory provides an SMP 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, or both.
  • Use of SDK synchronization primitives (such as mutexes, semaphores, queues from pico_sync) between FreeRTOS tasks and code executing on a non FreeRTOS core, or in IRQ handlers.

Note that whilst this SMP version can be run on just a single (either) core, it is probably more efficient to use the non SMP version in the main FreeRTOS-Kernel branch in that case.

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