自己有一个多核程序,每一个核上单独运行一个任务,通过核的ID号在每一个核上创建不同的任务
Uint32 glbCoreId;
glbCoreId = CSL_chipReadReg (CSL_CHIP_DNUM);
if (glbCoreId == 0 {
Task_create(core0_func, ¶ms, NULL);
}
if (glbCoreId == 1) {
Task_create(core1_func, ¶ms, NULL);
}
if (glbCoreId == 2) {
Task_create(core2_func, ¶ms, NULL);
}
if (glbCoreId == 3) {
Task_create(core3_func, ¶ms, NULL);
}
自己发现有时不同的核会运行相同的任务;但是glbCoreId 的值是正确的。
这是怎么回事呢,每个核又是怎么知道自己要运行的任务呢?