大家好。
我对以下方面有疑问:
我在内核0和内核4之间建立了通知通信连接、 内核 4作为主内核、 向内核0发送消息、
例如:
内核0
//初始化
状态= Notify_registerEventSingle (CORE4、0\
10、(Notify_FnNotifyCbck) cbFxn_core4、NULL);
如果(状态< 0){
system_abort ("Notify_registerEvent Failed\n");
}
while (1)
{
timeStart=Timestamp_get32();
Semaphore_pend (SEM_core4、BIOS_wait_forever);//等待 core4处理结果
timeEnd=Timestamp_get32();
timeCost=(timeEnd-timeStart)/1000000;
printf ("BIOS_wait_forever 开销时间为:%d ms\n"、timeCost);
。
。
。
。
}
内核4.
//初始化
状态= Notify_registerEventSingle (CORE0、0\
10、(Notify_FnNotifyCbck) cbFxn_core0、NULL);
如果(状态< 0){
system_abort ("Notify_registerEvent Failed\n");
}
while (1)
{
timeStart=Timestamp_get32();
。
。
。
。
while (1)//Notify core0处理
{
状态= Notify_sendEvent (CORE0、0、10、0、true);
如果(状态< 0){printf ("发送错误\n");继续;}
否则中断;
}
。
。
。
。
timeEnd=Timestamp_get32();
timeCost=(timeEnd-timeStart)/1000000;
printf ("BIOS_wait_forever 开销时间为:%d ms\n"、timeCost);
}
输出如下所示:
内核0:
[C66xx_0] BIOS_wait_forever 时间成本为:169ms
[C66xx_0] BIOS_wait_forever 时间成本为:0ms
[C66xx_0] BIOS_wait_forever 时间成本为:75ms
[C66xx_0] BIOS_wait_forever 时间成本为:0ms
[C66xx_0] BIOS_wait_forever 时间成本为:89ms
[C66xx_0] BIOS_wait_forever 时间成本为:0ms
[C66xx_0] BIOS_wait_forever 时间成本为:74ms
[C66xx_0] BIOS_wait_forever 时间成本为:0ms
[C66xx_0] BIOS_wait_forever 时间成本为:95ms
[C66xx_0] BIOS_wait_forever 时间成本为:0ms
核心4:
[C66xx_4]时间成本为:11ms
[C66xx_4]时间成本为:11ms
[C66xx_4]时间成本为:11ms
[C66xx_4]时间成本为:11ms
[C66xx_4]时间成本为:11ms
[C66xx_4]时间成本为:11ms
[C66xx_4]时间成本为:11ms
[C66xx_4]时间成本为:11ms
[C66xx_4]时间成本为:11ms
我不明白为什么 core4在大约11ms 时保持稳定、但 core0 时间一直不稳定。
请帮帮我。
谢谢。
