element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Blog Raspberry Pico - Setup multi-core FreeRTOS SMP
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
GPIO Pinout
Raspberry Pi Wishlist
Comparison Chart
Quiz
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: Jan Cumps
  • Date Created: 25 Sep 2022 10:14 PM Date Created
  • Views 4295 views
  • Likes 8 likes
  • Comments 3 comments
Related
Recommended
  • pico_freertos_smp
  • pico
  • smp
  • Symmetric_Processing
  • freertos

Raspberry Pico - Setup multi-core FreeRTOS SMP

Jan Cumps
Jan Cumps
25 Sep 2022
Raspberry Pico - Setup multi-core FreeRTOS SMP

FreeRTOS Symmetric Multiprocessing (SMP) is a recent version of the RTOS that can schedule tasks across multiple controller cores. It's currently in test phase, and they have a version for the RP2040. In this blog post, I go over the very easy exercise to download FreeRTOS SMP for the Pico, and run the examples.
image
Prerequisite is that you have set up a toolchain that's able to build and run the standard pico-examples for C. The Getting Started Guide has the instructions. I posted here how I installed the toolchain, with VSCode, on a Windows computer.

Download and install

Clone the FreeRTOS SMP demos repository. I placed it on the same place in my directory structure where the pico-examples are installed: It's not mandatory. If you installed the tools with the same installer as I did, the Windows shortcuts will set all environment variables you need - regardless if you use comman dline or VSCode.

cd Documents/pico

git clone https://github.com/FreeRTOS/FreeRTOS-SMP-Demos.git --recurse-submodules

Add FreeRTOS-SMP-Demos\FreeRTOS\Demo\CORTEX_M0+_RP2040 to the VSCode workspace you used  for pico-examples. The structure shows up in the VSCode explorer. I then copied the .vscode folder I made for the pico-examples (see first post). That is it.

image

On the bottom toolbar, I then clicked on the pico-examples entry. A selection box appears where you can select the FreeRTOS Demo folder.

image

Also on the bottom toolbar, select the debug configuration, to switch it to the launch.json copied into the .vscode folder. 

Debug an example

At this point, you can - again in the bottom toolbar - select one of the executables. To see if everything works, select main-blinky.
Then select the Run and Debug perspective, and press Debug.
image
If you did the same steps as me in my first post, the picoprobe will flash the program and stop at the start of main().
image

Enjoy the first FreeRTOS SMP execution.

Show All Blog Posts

  • Sign in to reply
  • Jan Cumps
    Jan Cumps over 1 year ago

    for the new FreeRTOS version with everything included in the core packages:  Raspberry Pico - multi-core FreeRTOS SMP now integrated in main package 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 2 years ago

    FreeRTOS SMP has now been integrated into FreeRTOS proper.

    FreeRTOS SMP feature is merged into FreeRTOS-Kernel main branch. 
    XCORE AI and Rasperry Pi Pico demos developed in this branch are also 
    merged into FreeRTOS repostiory. We recommanded you to use the FreeRTOS main branch to development your application with SMP feature.
    
    The contents of this repository will remain available but we 
    will no longer provide updates or accept new contributions and pull requests.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 2 years ago

    remark: you don't need to run FreeRTOS SMP. If your goal is to run the FreeRTOS kernel and all tasks on a single core (0 or 1), then the standard FreeRTOS release supports that.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube