单核与多核处理器上的固件开发

时间:2016-12-06 15:51:24

标签: multithreading multicore firmware

说我正在为某人的家中的智能恒温器开发固件。当前的实现是在单核处理器上运行的多线程解决方案(因为我已经熟悉了这一点,我们就抛弃了Cortex-M)并且我使用了一些现成的RTOS。

如果我接受该项目并将其移植/移植到双核/多核处理器,那该怎么办?我只是告诉RTOS哪些线程应该在每个核心上运行,而RTOS从那里管理它们?是否需要在每个线程上进行一定数量的重构,以便在多核环境中更有效地工作?或者RTOS是否只是处于READY状态的任何线程并在具有空闲时间的核心上运行该任务?

1 个答案:

答案 0 :(得分:0)

一般来说,您在多核计算机上运行这一事实并不重要。操作系统将线程安排到可用内核。当然,您的RTOS需要支持多核平台!

有一个问题:如果你的代码没有正确处理并发,特别是如果它没有正确处理内存障碍,你可能会碰到被这一事实隐藏的错误在一个核心上连续运行。一旦你将第二个核心扔到混合物中,任何这样的错误都会浮出水面,但通常它们会在重要的演示期间或发布之后首先完成。因此,设计您的代码,以便通过构造实现并发 - 无错误。