C 在特定的核心/线程上运行代码?
我正在多核系统上编写一些裸机嵌入式软件。我正在初始化核心0线程0作为主核心,并尝试在其他核心/线程上执行代码。我的问题是,如果没有Linux之类的操作系统来设置亲和性,我将如何在特定的核心/线程上执行代码?是否有一种通用的方法知道如何做到这一点,还是特定于处理器?处理器是NXP T2080,具有4个内核,每个内核具有2个线程 因为您在这里没有使用任何操作系统,所以管理所有执行(包括其他线程上的执行)完全取决于您的代码。您的管理方式主要取决于您自己的代码,但其中涉及一些硬件交互:C 在特定的核心/线程上运行代码?,c,embedded,powerpc,C,Embedded,Powerpc,我正在多核系统上编写一些裸机嵌入式软件。我正在初始化核心0线程0作为主核心,并尝试在其他核心/线程上执行代码。我的问题是,如果没有Linux之类的操作系统来设置亲和性,我将如何在特定的核心/线程上执行代码?是否有一种通用的方法知道如何做到这一点,还是特定于处理器?处理器是NXP T2080,具有4个内核,每个内核具有2个线程 因为您在这里没有使用任何操作系统,所以管理所有执行(包括其他线程上的执行)完全取决于您的代码。您的管理方式主要取决于您自己的代码,但其中涉及一些硬件交互: 在SystemI
r1
中使用它们自己的堆栈指针,适当地初始化它们的每线程C运行时如果您想举个例子,请看一下我们在skiboot(64位PowerMachines的固件)中是如何做到这一点的:。是的,它是处理器specific@SamiKuhmonen好吧,我想。有做类似事情的经验吗。我只是不知道从哪里开始。我能想到的最好的方法是将线程指令指针移动到我希望它执行的代码,但我不确定。不幸的是,我自己没有这样做,只在单核系统上工作了那么低的级别。但我认为这就是解决问题的方法。处理器应该有一个数据表来解释什么是needed@SamiKuhmonen好的,谢谢你的建议!您是否在没有底层硬件抽象层或操作系统的情况下进行此操作?感谢所有有用的信息。我将开始研究如何实现这一点的源代码!