You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040
Graham Sanderson debbd254b6
RP2040 fixes (#424)
* RP2040: malloc needs to be thread safe for FreeRTOS whether both cores are used or not

* RP2040: CMake file had broken left over test code

* RP2040: portIS_FREE_RTOS_CORE() returned an incorrect value prior to scheduler init when the application was compiled without multicore support

* RP2040: Bad initialization code was causing IRQs to get disabled before main() was called when using non static allocation
3 years ago
..
include RP2040 fixes (#424) 3 years ago
.gitignore Add RP2040 support (#341) 4 years ago
CMakeLists.txt Add RP2040 support (#341) 4 years ago
FreeRTOS_Kernel_import.cmake RP2040 fixes (#424) 3 years ago
LICENSE.md Add RP2040 support (#341) 4 years ago
README.md Add RP2040 support (#341) 4 years ago
idle_task_static_memory.c Add RP2040 support (#341) 4 years ago
library.cmake Add RP2040 support (#341) 4 years ago
pico_sdk_import.cmake Add RP2040 support (#341) 4 years ago
port.c RP2040 fixes (#424) 3 years ago

README.md

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