多核 ARM:如何将一项关键任务分配给一个专用内核
Multicore ARM: how to assign a critical task to one dedicated core
假设一个嵌入式系统项目,我有一个多核 ARM 处理器(为简单起见,假设有 2 个内核,两个内核之间有一个非共享缓存)。假设我的系统包含一个关键任务和几个非关键任务。
因此,我可以将关键任务专门分配给"core 1"吗?而所有其他 "core 2" 独占?
如果是,如何做以及从实施的角度来看最佳做法是什么[假设我使用 C]?我应该使用图书馆(如果是的话,哪个)?实时操作系统?
好的,我看到你也在 EE 板上问过这个问题。他们给出了我想给你的相同答案。使用某种操作系统来处理线程关联。如果您的 RTOS 或您拥有的任何东西不支持此功能,请查看它并了解它实际上如何处理 process/thread 调度。
通常,系统上的每个 CPU 都会被分配某种处理任务调度的线程。这个线程是 OS 设置的第一件事。随意研究一些微内核,看看这是如何为您的特定处理器完成的。您还可以在特定 CPU.
的 ARM 文档中找到设置此线程的秘诀
但是,我要冒险并假设这远远超出了给你的任何项目任务的范围。我希望你在得到的东西中有某种亲和力。为已知 OS 设置关联是几秒钟的任务。在根本没有 OS 的裸机系统上设置亲和力要复杂得多。
如果您不需要 real-time 功能,您可以在具有 Linux 内核的设备上轻松完成此操作。
看到这个问题here
假设一个嵌入式系统项目,我有一个多核 ARM 处理器(为简单起见,假设有 2 个内核,两个内核之间有一个非共享缓存)。假设我的系统包含一个关键任务和几个非关键任务。
因此,我可以将关键任务专门分配给"core 1"吗?而所有其他 "core 2" 独占?
如果是,如何做以及从实施的角度来看最佳做法是什么[假设我使用 C]?我应该使用图书馆(如果是的话,哪个)?实时操作系统?
好的,我看到你也在 EE 板上问过这个问题。他们给出了我想给你的相同答案。使用某种操作系统来处理线程关联。如果您的 RTOS 或您拥有的任何东西不支持此功能,请查看它并了解它实际上如何处理 process/thread 调度。
通常,系统上的每个 CPU 都会被分配某种处理任务调度的线程。这个线程是 OS 设置的第一件事。随意研究一些微内核,看看这是如何为您的特定处理器完成的。您还可以在特定 CPU.
的 ARM 文档中找到设置此线程的秘诀但是,我要冒险并假设这远远超出了给你的任何项目任务的范围。我希望你在得到的东西中有某种亲和力。为已知 OS 设置关联是几秒钟的任务。在根本没有 OS 的裸机系统上设置亲和力要复杂得多。
如果您不需要 real-time 功能,您可以在具有 Linux 内核的设备上轻松完成此操作。
看到这个问题here