工具/软件:TI-RTOS
您好!
我阅读了 IPC 培训文档、即 http://processors.wiki.ti.com/images/6/69/IPC_Training_2_21.pdf
第42页显示了通知模块使用"IPC"生成到其他 DSP 内核的中断、"IPC"是指 IPCGRx 寄存器吗?
如果是、如何知道 SYS/BIOS 已使用哪些 SRCRx 位?
我的开发环境是 C6678 + MCSDK。
谢谢、
Snaku
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI-RTOS
您好!
我阅读了 IPC 培训文档、即 http://processors.wiki.ti.com/images/6/69/IPC_Training_2_21.pdf
第42页显示了通知模块使用"IPC"生成到其他 DSP 内核的中断、"IPC"是指 IPCGRx 寄存器吗?
如果是、如何知道 SYS/BIOS 已使用哪些 SRCRx 位?
我的开发环境是 C6678 + MCSDK。
谢谢、
Snaku
您好、Sahin、
感谢您的回复、我阅读了帖子、我很感兴趣的是"位0设置为生成中断"的语句。 位4-7被置位来指定中断的产生源。 惯例是位4 (SRC0)用于内核0、位5 (SRC1)用于内核1等。 "、在哪里可以看到 SYS/BIOS 源代码或文档中的约定?
我发现 Notify 模块可以在.cfg 文件中配置保留事件、例如 Notife.reservedEvents = 8;它是否限制了 SYS/BIOS 中的 IPCGR 字段使用位?
Snaku
您好、Sahin、
是的、我希望使用以下函数中的 IPCGRx 字段进行同步。
我的应用程序在 SYS/BIOS 上运行、因此我想确保此函数 与 MessageQ 模块没有冲突。
/**
*\brief 所有内核都运行此函数,让 core0等待其他内核
*
void wait_Other_Cores()
{
u32* msgFlag =(U32*) 0x02620240; // IPCGR0寄存器地址
u32* msgFlagAK = msgFlag + 0x10; // IPCAR0寄存器地址
u32 releaseConter;
I32 I;
msgFlag[DNUM]= 0x10; //设置 SRC0位进行指示
while (msgFlag[DNUM])
{
if (!DNUM)
{
releaseConter = 0;
for (i=0;i
releaseConter +=(msgFlagAK[i]& 0x10);
}
if (releaseConter =(0x10 * core_numbers)){
for (i=0;i
msgFlagak[i]= 0x10; //内核0清除所有 IPCARx SRC0位
}
}
}
}
}
谢谢、
Snaku