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.

QMSS的中断产生



你好,

请问在QMSS中:

1,中断产生是根据检测list buffer page是否满么?

2,SPRUGR9B中的4.3.3.1 Interrupt Handshaking有段话:PDSP fills pong, and fires INT,Host CPU acknowledges INT, releasing ping, and takes ownership of pong这里所说的releasing ping是指将ping清零么?

3,在qmInfraMCExampleProject中,core1~3读取core 0 的hiPrioList,那么一个channel产生了两次中断,则ping和pong都会被fill,而似乎core0并没有将ping的内容清零,那第三次会不会还没push descriptor由于检测到ping已经满了就产生中断呢?并且通过这种方式读取descriptor怎么能在第二次读pong的时候core1~core3自动跳到core0的pong的地址呢

 

  • 1. QMSS可以根据配置去查询相应的queue,将queue中的descriptor pop处理搬到相应的list buffer,当list buffer中的descriptor数量达到配置的要求,则会产生中断事件;

    2. host release ping是说host在响应中断后需要清楚中断状态及写EOI寄存器保证后续中断的产生,具体请详细看一下figure4-36;

    3. list是由PDSP填充,PDSP对queue进行周期轮询,并将descriptor依次填充到list buffer中,当到达一定数量后产生中断;host在响应中断后,只需要如2所述操作清楚中断,并回收descriptor到相应的queue中,不需要对list buffer进行清零。