FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040
Graham Sanderson 90d920466e
RP2040: Remove incorrect assertion (#508)
After the xEventGroupWaitBits in vProtLockInternalSpinUnlockWithWait there was an assertion about
pxYiledSpinLock being NULL, however when xEventGroupWaitBits returns, IRQs have been re-enabled
and so it is no longer safe to assert on the state which is protected by IRQs being disabled.

Co-authored-by: graham sanderson <graham.sanderson@raspeberryi.com>
2022-06-22 10:27:26 -07:00
..
include RP2040 fixes (#424) 2021-12-21 11:08:41 -08: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 RP2040 fixes (#424) 2021-12-21 11:08:41 -08:00
idle_task_static_memory.c Add RP2040 support (#341) 2021-06-30 13:20:54 -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 RP2040: Remove incorrect assertion (#508) 2022-06-22 10:27:26 -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