全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 处理器/DSP >

RT-Thread SMP启动流程

时间:2023-08-03 15:10

人气:

作者:admin

标签: RT-Thread  流程  SMP  启动 

导读:SMP(Symmetric Multi-processing) :对称多处理,在一个计算机上汇集了一组处理器 (多 CPU), 各 CPU 之间共享内存子系统以及总线结构。...

SMP 和 AMP 简介

SMP(Symmetric Multi-processing) :对称多处理,在一个计算机上汇集了一组处理器 (多 CPU), 各 CPU 之间共享内存子系统以及总线结构。SMP模式系统中所有CPU的地位相同,共同运行一个操作系统实例,所有CPU共享系统内存和外设资源。

嵌入式领域除 SMP 外还有一种支持多核处理器芯片的操作系统体系结构,即 AMP。

AMP(Asymmetric Multi-processing) : 非对称多处理,AMP模式的RTOS在各个CPU上均运行一个操作系统实例(这些操作实例不一定完全相同),各个操作系统拥有自己专用的内存,相互之间通过访问受限的共享内存进行通信

RT-Thread SMP 启动流程

首先是主 CPU(一下简称 CPU0 )进入到 RT-Thread 的初始化,其他的 CPU 需要通过 CPU0 唤醒,随后才进行各自的初始化( CPU0 只负责唤醒,次级 CPU 自身硬件部分的初始化不能由 CPU0 完成),流程图如下

1.jpg
1.jpg

CPU0 和其余 CPU 的启动流程都如下图所示,( CPU0 完成初始后,执行 main 线程之前唤醒其余 CPU )

1.jpg

想要在源码中看到一些具体的实现,可以在工程中搜索 RT_USING_SMP

简单实验

qemu-vexpress-a9
RT-Thread 中 qemu-vexpress-a9 的 BSP 中已经支持了 SMP ,没有实物也可以通过 qemu 试一试。

首先在进入到 bsp/qemu-vexpress-a9 目录,进入 menuconfig ,使能 SMP ,并且将 CPU 的个数设置为实际值(4个);
可以在次 CPU 的线程中添加一些简单的串口打印功能,方便观察现象;
env 中运行命令 scons 构建项目;
输入命令 ./qemu-nographic.sh 即可运行 qemu ,可以观察到 SMP 已经成功的跑起来了。
raspi3-32
我手上还有一块树莓派也是多核的,RT-Thread 官方的 BSP 中也支持了这块板子的 SMP 功能。

进入 menuconfig 进行同样的配置;
env 中运行命令 scons 构建项目;
将生成的 kernel7.img 文件拷贝到树莓派 SD 卡的 boot 目录中即可;
树莓派上电前先使用 USB 转 TTL 模块连接到电脑
启动树莓派后,串口成功显示相关信息, SMP 简单测试成功。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信