【发布时间】:2018-02-15 17:15:22
【问题描述】:
假设一个嵌入式系统项目,我有一个多核 ARM 处理器(为简单起见,假设 2 个内核在 2 个内核之间有一个未共享的缓存)。假设我的系统包含一个关键任务和几个非关键任务。
因此,我可以将关键任务专门分配给“核心 1”吗?以及所有其他“核心 2”?
如果是这样,从实现的角度来看,如何做以及最佳实践是什么[假设我使用 C]?我应该使用图书馆(如果是的话)?实时操作系统?
【问题讨论】:
-
您应该能够为您正在运行的线程设置核心亲和性,以确保您的操作系统将其放置到您想要的核心上。 en.wikipedia.org/wiki/Processor_affinity
-
有 id 寄存器,你当然可以将代码隔离到一个内核,如果 id register = core0 则做其他事情。但是...如果是裸机,如果不是裸机,那么您需要知道您正在使用的操作系统是如何工作的,这是一个不同的问题,和/或该操作系统可能没有该功能。所以这个问题写得太宽泛了,但从技术角度来看,是的,你可以做这样的事情。
-
“两个核心之间的非共享缓存” - 你的意思是,每个核心都有自己的私有缓存?
-
@Vroomfondel 是的 [在 L2 和 L3 级别]
标签: arm embedded multicore rtos