SMP: 对称多处理(Symmetrical Multi-Processing)简称 SMP,是指在一个计算机上汇集了一组处理器 (多 CPU), 各 CPU 之间共享内存子系统以及总线结构。 RT-Thread 自 v4.0.0 版本开始支持 SMP,在对称多核上可以通过使能 RT_USING_SMP 来开启。该文档主要对 SMP 进行介绍,以及讲解如何移植 RT-Thread SMP 。 多...
RT-Thread 的 libcpu 中有一些芯片类型已经支持了 SMP 功能,例如 Cortex-A 系列。对于这样的平台,SMP 的移植工作就会简单很多,我们只需要实现 rt_hw_secondary_cpu_up() ,secondary_cpu_c_start() ,rt_hw_secondary_cpu_idle_exec() 这三个函数即可,具体的移植介绍可以参考 RT-Thread 文档中心SMP 介绍与移...
想要在源码中看到一些具体的实现,可以在工程中搜索 RT_USING_SMP 简单实验 qemu-vexpress-a9 RT-Thread 中 qemu-vexpress-a9 的 BSP 中已经支持了 SMP ,没有实物也可以通过 qemu 试一试。 首先在进入到 bsp/qemu-vexpress-a9 目录,进入 menuconfig ,使能 SMP ,并且将 CPU 的个数设置为实际值(4个); 可以在...
Kendryte K210是一款集成有2个64-bit RISC-V核心的通用AI芯片,要使用双核,需要开启RT_USING_SMP宏以启用RT-Thread的SMP(对称多处理)功能。 RT-Thread对于SMP的支持流程大概是:主核先启动,并完成对全局硬件、…
rt_thread_idle_init(); #ifdef RT_USING_SMP rt_hw_spin_lock(&_cpus_lock); #endif /* RT_USING_SMP */ /* start scheduler */ rt_system_scheduler_start(); /* never reach here */ return 0; } 1.1.rt_hw_interrupt_disable()
= rt_hw_cpu_id();#else rt_current_thread = to_thread;#endif /*RT_USING_SMP*/ ...
/**< cpus lock count */rt_uint16_t critical_lock_nest;/**< critical lock count */#endif/*RT_USING_SMP*//* 优先级 */rt_uint8_t current_priority;/* 当前优先级 */rt_uint8_t init_priority;/* 初始优先级 *//* 如果优先级大于32 */#ifRT_THREAD_PRIORITY_MAX>32rt_uint8_t number...
T113-S3 SMP适配笔记 目标 给T113-S3适配RT-Thread,并支持SMP。 资料 没有太详细的资料和示例,只有一些零星的信息。 F133封装基本兼容 Cortex-A7双核 一些参考资料 https://whycan.com/t_7808.html https://bbs.aw-ol.com/topic/1247/ 计划 最好能直接使用xfel在SRAM,或是DDR中运行,避免从SD卡启动还需要...
尝试在DDR中运行rt-thread 尝试响应中断 尝试支持SPL 过程 环境准备 开发板芒果派 下载工具 xfel 先连接...
以MDK-ARM 为例,RT-Thread 启动流程,如下图所示: 系统启动后,先从汇编代码startup_xx.s开始运行,然后跳转到 C 代码,进行 RT-Thread 系统启动,最后进入用户程序入口main()。 1. 扩展main() RT-Thread 使用了 MDK 的扩展功能$Sub$$和$Super$$,使得 RT-Thread 可以在进入main()之前完成系统功能初始化。关...