SMP(Symmetric Multi-processing) :对称多处理,在一个计算机上汇集了一组), 各 CPU 之间共享内存子系统以及总线结构。SMP模式系统中所有CPU的地位相同,共同运行一个
嵌入式领域除 SMP 外还有一种支持多核处理器芯片的操作系统体系结构,即 AMP。
AMP(Asymmetric Multi-processing) : 非对称多处理,AMP模式的RTOS在各个CPU上均运行一个操作系统实例(这些操作实例不一定完全相同),各个操作系统拥有自己专用的内存,相互之间通过访问受限的共享内存进行通信。
首先是主 CPU(一下简称 CPU0 )进入到 RT-Thread 的初始化,其他的 CPU 需要通过 CPU0 唤醒,随后才进行各自的初始化( CPU0 只负责唤醒,次级 CPU 自身硬件部分的初始化不能由 CPU0 完成),流程图如下
CPU0 和其余 CPU 的启动流程都如下图所示,( CPU0 完成初始后,执行 main 线程之前唤醒其余 CPU )
想要在源码中看到一些具体的实现,可以在工程中搜索 RT_USING_SMP
我手上还有一块树莓派也是多核的,RT-Thread 官方的 BSP 中也支持了这块板子的 SMP 功能。