在qminfraMCExampleProject样例程序的hiPrioInterruptHandler函数中有这么一段语句:
temp = l2_global_address((Uint32)hiPrioList);
temp &= 0xfoffffff;
buf = (Uint32 *)temp;
这是一个多核间数据传输的程序,由core0发送,core1接收,涉及到Qmss、CPPI技术。
从core1的角度来看,执行 temp &= 0xfoffffff;这句的时候,temp的值是0x1081AC60。
查看datasheet的memory mapping,从0x10800000到0x108FFFFF是core0的L2 RAM,temp就在这个范围内。
所以我理解的这个数据传输是core0发送的数据,只触发了中断通知core1,数据还在core0的L2,core1访问core0的L2来完成数据传输。
我的疑问是:我的理解是对的吗?core1为什么可以访问core0的L2 RAM?
ZhengTian Wang:
还有一个疑问:如果core1去访问core0的L2,core0也在访问L2,对于这种共享资源的访问,有什么机制避免这种冲突?
ZhengTian Wang:
回复 King Wang1:
是不是CPPI的数据传输都是这种模式,即只发通知而数据仍保留在发送端?
EMC模块是什么?