# RT-Thread SMP实践上手文档 **Repository Path**: powder_dust/RT-Thread_SMP_Started-Document ## Basic Information - **Project Name**: RT-Thread SMP实践上手文档 - **Description**: RT-Thread SMP实践上手文档 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2024-06-12 - **Last Updated**: 2026-02-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RT-Thread SMP实践上手教程 ## 目录 - [RT-Thread SMP实践上手教程](#rt-thread-smp实践上手教程) - [一 简介](#一-简介) - [二 QEMU VExpress A9 SMP实践上手](#二-qemu-vexpress-a9-smp实践上手) - [1.环境搭建](#1环境搭建) - [2.编译工程](#2编译工程) - [3.运行工程](#3运行工程) - [4.单核调试](#4单核调试) - [5.多核调试](#5多核调试) - [三 树莓派PICO SMP实践上手](#三-树莓派pico-smp实践上手) - [1.环境搭建](#1环境搭建-1) - [2.创建模板工程](#2创建模板工程) - [3.硬件连接](#3硬件连接) - [4.单核调试](#4单核调试-1) - [5.双核调试](#5双核调试) ## 一 简介 本文档用于快速上手体验RT-Thread SMP框架,感受多核编程体验。上手教程分别以QEMU仿真环境与RaspberryPi-pico硬件来上手体验RT-Thread SMP多核编程,下文将以详细的上手步骤具体介绍两个BSP的SMP使用方法。 ## 二 QEMU VExpress A9 SMP实践上手 ### 1.环境搭建 qemu-vexpress-a9 采用vscode + scons + gdb的开发方式. 1.项目使用到RT-Thread源码,所以本地需要一份RT-Thread的源码,这里提供俩中方式将RT-Thread的源码下载到本地. (1) 直接下载[github:RT-Thread v5.1.0](https://github.com/RT-Thread/rt-thread/archive/refs/tags/v5.1.0.zip) 或[gitee:RT-Thread v5.1.0](https://gitee.com/rtthread/rt-thread/tags) (2) 使用[git+TortoiseGit的方法](https://blog.csdn.net/zlbdmm/article/details/104691590)将代码拉取到本地,[RT-Thread源码链接](https://github.com/RT-Thread/rt-thread) 为便于上手,这里推荐使用方式(1) 2.下载vscode,[vscode 安装教程](https://blog.csdn.net/yang4123/article/details/127346981) 3.安装env环境, [env下载链接](https://download-redirect.rt-thread.org/download/env_release/env-windows-1.5.0.7z), [env使用教程](https://www.rt-thread.org/document/site/#/development-tools/env/env) 4.完成上述工具的安装后,切换到rt-thread源码中的相对路径bsp\qemu-vexpress-a9下,在当前目录下打开env工具,执行menuconfig更新BSP. 5.下载[RT-Studio](https://download-redirect.rt-thread.org/download/studio/RT-Thread%20Studio_2.2.8-setup-x86_64_202405200930.exe),通过RT-Studio快速下载需要的工具链,工具链为GNU_Tools_for_ARM_Embeded_Processors (1) 切换到相对路径bsp\qemu-vexpress-a9下,在env中输入menuconfig([env使用教程](https://www.rt-thread.org/document/site/#/development-tools/env/env)) ![](figures/menuconfig.png) (2) 按回车进入配置界面.然后保存配置 ![](figures/menuconfig2.png) ### 2.编译工程 在env中输入scons编译工程.([env使用教程](https://www.rt-thread.org/document/site/#/development-tools/env/env)) ![](figures/scons.png) ### 3.运行工程 在env中输入qemu.bat,按回车编译工程.([env使用教程](https://www.rt-thread.org/document/site/#/development-tools/env/env)) ![](figures/qemu_bat.png) ### 4.单核调试 (1) 修改vscode调试配置将相对路径launch.json文件中的内容使用下文替换,配置文件的相对路径为:.vscode\launch.json ```shell { "version": "0.2.0", "configurations": [ { "name": "Debug @ Windows", "type": "cppdbg", "request": "launch", "program": "${workspaceRoot}\\rtthread.elf", "args": [], "stopAtEntry": true, "cwd": "${workspaceRoot}", "environment": [], "externalConsole": true, "miDebuggerServerAddress": "localhost:1234", "serverLaunchTimeout": 2000, "targetArchitecture": "ARM", "MIMode": "gdb", "miDebuggerPath": "arm-none-eabi-gdb.exe", "customLaunchSetupCommands": [], "launchCompleteCommand": "exec-run", }, ] } ``` 将miDebuggerPath选项中的gdb添加主机上arm-none-eabi-gdb.exe的路径.该路径常位于RT-Studio的安装路径.示例路径如下: ```shell D:\RT-ThreadStudio\repo\Extract\ToolChain_Support_Packages\ARM\GNU_Tools_for_ARM_Embedded_Processors\5.4.1\bin ``` 上述示例路径位于主机的D盘,用户根据自己RT-Studio的安装路径调整上述路径。 (2)在env工具中运行qemu-dbg.bat.([env使用教程](https://www.rt-thread.org/document/site/#/development-tools/env/env)) ![](figures/qemu2.png) (3)在相对路径bsp\qemu-vexpress-a9下使用vscode打开源码,vscode调试配置文件在该路径下,按F5启动调试. ![](figures/qemu3.png) ### 5.多核调试 (1) 在env中配置RT-Thread开启SMP框架并重新编译,qemu-vexpress-a9最多可支持4个Core,Number of CPUs选项可设置为 1~ 4.([env使用教程](https://www.rt-thread.org/document/site/#/development-tools/env/env)) ![](figures/smp.png) (2) 使用vscode打开qemu-dbg.bat,修改该文件,在调试选项中添加多核选项` -smp cpus=`. 修改前: ```shell qemu-system-arm -M vexpress-a9 -kernel rtthread.bin -nographic -sd sd.bin -S -s ``` 修改后: ```shell qemu-system-arm -M vexpress-a9 -smp cpus=4 -kernel rtthread.bin -nographic -sd sd.bin -S -s ``` (3) 在env工具中运行qemu-dbg.bat,在vscode中按F5启动调试.([env使用教程](https://www.rt-thread.org/document/site/#/development-tools/env/env)) ![](figures/qemu4.png) 上述图片展示了QEMU VExpress A9 多核调试的界面,左下角是QEMU VExpress A9 支持的4个核心的每个核心的调用栈. ## 三 树莓派PICO SMP实践上手 ### 1.环境搭建 1.下载[RT-Studio](https://download-redirect.rt-thread.org/download/studio/RT-Thread%20Studio_2.2.8-setup-x86_64_202405200930.exe) 2.打开RT-Studio,下载工程需要的RT-Thread源码,raspberrypi-pico SDK与工具链。 (1) 下载RT-Thread源码,源码版本选择5.0.0 ![](figures/pico_config.png) (2) 下载树莓派PICO SDK,SDK版本选择最新版本1.0.7(该版本支持SMP编译调试与下载) ![](figures/pico_sdk.png) (3)下载工具链,工具链选择GNU_Tools_for_ARM_Embedded_Processors,版本选择5.4.1即可. ![](figures/toolchain.png) 完成上述工作即完成了基本的环境搭建。 ### 2.创建模板工程 (1)创建RT-Thread工程 ![](figures/project1.png) (2)基于开发板创建工程,创建基于RP2040-RASPBERRYPI-PICO开发板的模板工程。 ![](figures/project2.png) (3) 编译工程,选中刚才创建的项目,点击构建选项,完成编译。 ![](figures/project3.png) ### 3.硬件连接 (1)将type-c usb数据线与调试器相连,micro usb数据线与raspberrypi-pico相连。 ![](figures/pico_a.png) ​ (2) 将串口线按下图所示方式连接,用于与RT-Thread实现的shell组件进行交互。 ![](figures/pico_b.png) ### 4.单核调试 将`调试器`与`raspberrypi-pico`开发板与电脑主机相连接,点击下述的小蜘蛛选项进入调试模式(调试过程同时会进行代码下载,下载同样采用进入调试模式的方法)。 ![](figures/project4.png) 单核调试界面如下: ![](figures/project5.png) ### 5.双核调试 点击RT-Thread Settings选项,开启SMP选项,Ctrl+S保存设置并重新编译。 ![](figures/project6.png) 与单核调试一样,再次点击小蜘蛛的选项,进入调试界面。 ![](figures/project7.png) 上手指南完毕 注:raspberrypi-pico工程启动调试会同步进行代码的下载,下载与调试均采用上述方式。