Home > On-Demand Archives > Theatre Talks >

Symmetric Multiprocessing (SMP) with FreeRTOS and Raspberry Pi Pico

Dan Gross - Amazon AWS - Watch Now - Duration: 23:30

Recently, semiconductor companies have been producing microcontrollers with multiple compute cores. Although FreeRTOS has supported Asymmetric Multiprocessing for years, only recently has it started supporting Symmetric Multiprocessing (SMP). SMP support in the FreeRTOS Kernel enables one instance of the FreeRTOS kernel to schedule tasks across multiple identical processor cores, which is helpful for IoT applications. This session will showcase the FreeRTOS Raspberry Pi Pico port to demonstrate support for SMP in the FreeRTOS Kernel. The Raspberry Pi Pico board uses the RP2040 microcontroller from Raspberry Pi that features a Dual-core ARM Cortex M0+ processor.
M↓ MARKDOWN HELP
italicssurround text with
*asterisks*
boldsurround text with
**two asterisks**
hyperlink
[hyperlink](https://example.com)
or just a bare URL
code
surround text with
`backticks`
strikethroughsurround text with
~~two tilde characters~~
quote
prefix with
>

cghaba
Score: 0 | 2 years ago | 1 reply

Some FPGAs have multiple cores or can implement multiple processing cores. Are the SMP features of FreeRTOS available also for this kind of architectures? (for example for Zynq FPGAs)

dang
Score: 0 | 2 years ago | no reply

With the right port, it seems quite possible, yes. There are a few FreeRTOS/Xilinx demos listed here without SMP I believe: https://www.freertos.org/a00090.html#XILINX

Erin RobotGrrl
Score: 0 | 2 years ago | 1 reply

Great breakdown of RTOS and the SMP feature. This filtered the enormous amount of information available about RTOS, which can be overwhelming to those new to it, into an easily understandable format! It would be interesting to hear example applications of SMP.

dang
Score: 0 | 2 years ago | no reply

Thank you, I appreciate the feedback!

smithr6
Score: 0 | 2 years ago | 1 reply

Thanks Dan a very clear and concise talk.
Where can we get your slides?

dang
Score: 0 | 2 years ago | no reply

Thank you! (I see you found it.)

LeroyLe
Score: 0 | 2 years ago | 1 reply

Thanks for the talk

dang
Score: 0 | 2 years ago | no reply

Thanks much, regards.

devsps
Score: 0 | 2 years ago | 1 reply

Thank you Dan for your wonderful presentation!

dang
Score: 0 | 2 years ago | no reply

Thanks!

leandropg
Score: 0 | 2 years ago | 1 reply

Thanks for the talk Dan. I have a question related with SMP support... For why there isn't a official port for the ESP32 microcontrollers on the FreeRTOS official page... however you can found it as version on AWS FreeRTOS inside the AWS console. I don't understand this difference

dang
Score: 0 | 2 years ago | 1 reply

ESP32 is supported with the FreeRTOS kernel (single-core), but SMP support is only supported through Espressif's ESP-IDF which is a fork of FreeRTOS: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/freertos-smp.html Stay tuned for official SMP support on ESP32.

leandropg
Score: 0 | 2 years ago | no reply

Thanks Dan... I will be tuned about the ESP32 support. Another question... Will be available AWS FreeRTOS to Raspberry Pi Pico inside the AWS console?

JeanLabrosse
Score: 0 | 2 years ago | 1 reply

I was expecting something a bit (a lot) more technical and how FreeRTOS does its SMP implementation. Of course, 30 minutes is barely enough for that so I checked out the links and those provide little (actually nothing) on the internals. Are there documents that explain how SMP is done on FreeRTOS or one has to figure that out from looking at the code?

dang
Score: 0 | 2 years ago | no reply

You can check out the source for the FreeRTOS SMP kernel here: https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/smp -- especially tasks.c. This commit shows some of the implementation internally: https://github.com/FreeRTOS/FreeRTOS-Kernel/commit/a97741a08d36ac08d913b8bc86abf128df627e85

smithr6
Score: 0 | 2 years ago | no reply

Apologies, i see the link on the left.

OUR SPONSORS