是否可以将单个核心专注于非常实时的计算,同时使用其他核心作为常规核心?

是否可以将单个核心专注于非常实时的计算,同时使用其他核心作为常规核心?

我即将完成不久前开始的项目的一部分,我需要合适的内核。有些代码必须始终运行,因为大于 1us 的延迟可能会影响生成信号的质量。

我的硬件很可能是 ARM Cortex A-53、4x1.2GHz、1GB RAM(在 Pine64 板上测试)。简单地说,我让代码一直在循环中运行,检查内存中数据的变化,然后计算并发送信号。因此,除了 GPIO 引脚操作之外,不会有任何系统调用,例如将输出打印到控制台、打开文件、malloc/free 等……所有这些内容都将在其他内核中运行。

我想使用 Linux,因为它有很多我想在其他三个核心上使用的功能,例如 GUI 渲染、使用 OpenGL 渲染机器的简单模拟以及接收指令。我知道对于这么小的芯片有很多要求,但是有什么方法可以实现这一点吗?

我尝试将isolcpus=3参数传递给 Linux 内核并禁用该 cpu 上的 irqs。然后我用taskset- 生成了简单的过程,但它没有按预期工作,因为有 5us 的抖动。

答案1

我不确定我是否完全理解这个问题,但是这个先前的问题看起来它涵盖了相似的领域?

相关内容