FreeRTOS SMP on the RP2040 Tutorial - Symmetric Multiprocessing with FreeRTOS!

preview_player
Показать описание

In this tutorial we will walk through how to use SMP in a FreeRTOS environment on the RP2040 chip. Specifically, we will set up a FreeRTOS SMP project whilst explaining how SMP works. We will tell you about some of the things you need to look out for, like the fact that now two tasks can run truly concurrently and we will also give you two demonstration projects for you to work on.

Links Mentioned:

Timestamps:
00:00 Introduction
01:14 Brilliant
02:21 Multicore FreeRTOS Architecture
04:02 SMP vs Single Core
06:23 FreeRTOS SMP Functions
08:31 Project Setup
10:14 Demo 1: Blinky
12:27 Demo 2: Core pinning
14:50 Conclusion

-- Equipment we use regularly --
The following links are affiliate links where we may make a small percentage on qualifying sales through these links. Use the respective UK or US links listed.

All videos and tutorials on this channel and mentioned websites are for educational purposes only.

This video was sponsored by Brilliant.
Рекомендации по теме
Комментарии
Автор

Explaining such complex concepts in a simple way is an art form! Thank you for taking the time to put this together! It is an awesome video.

noealves
Автор

Thank you for continuing. One of the best RP2040 tutorials.

isfpinside
Автор

Nice video, I have a doubt, which core does the kernel/scheduler run on, because obviously some tasks will be interrupted to run scheduler, but how is it decided whether on core0 or core1.

adhipshukla
Автор

Thanks, excellent tutorial. As a small aside I found I had to add "#define configUSE_MINIMAL_IDLE_HOOK 0" to the FreeRTOSConfig.h file in src before the blink example would compile.

nigelwillis
Автор

Aside from commercial offerings (Segger SystemView, Percepio Tracealyzer, etc), are there any hobby or opensource tools for debugging an RTOS design?

For example, what happens if you schedule a task to run faster than the system allows? I assume you would need a way to measure how long each task takes, then schedule each task according to that?

bennguyen
Автор

Since it appears that semaphores are unique per processor (not in shared memory), is there a better answer to SMP mutexes rather than a single message task and queue?

mkosmo
Автор

Cannot run the simple blink program because did not define configUSE_IDLE_HOOK, configUSE_PASSIVE_IDLE_HOOK and vApplicationPassiveIdleHook. How to fulfill this requirements? I am using FreeRTOSv202212.01

mohdrais
Автор

Hello, I've enjoyed the whole series of videos, but while taking the rp2040-freertos-template (with recursive) i get an error with the CMakeList.txt in - the line project(FreeRTOS-Kernel C CXX)

the output shows "nmake '-?' failed with: the system cannot find the file specified.

this is an installation on Windows with the Pico SDK1.5.1 which I've used successfully for other (non FreeRTOS) related projects

rjnbarrass
welcome to shbcf.ru