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 problem)how to trigger an interrupt when push a pcket descriptor pointer to Tx completion queue?

Now I use one TX FDQ(In my understanding TX FDQ is the same as Tx completion queue Am I right?). And there are three packet descriptors in my Tx FDQ. I want to do some operation after I send every packet. In my understanding when the FDQ is putted into FDQ it means the packet was send successfully(Am I right?). So I want to trigger  an interrupt when push a pcket descriptor pointer to Tx completion queue. Could you help check how to trigger? or you have better method to achieve my target? Thanks a lot!

 

  • My first response was – get the FDQ (yes you are right, this is the usually completion queue but does not have to be as you will see soon) to be one of the interrupt queues (queues 652-671) but then you will get a pending signal any time there is one or more descriptors in the queue, and this is not what you want.

    So here are some ideas –

    1.     Have the TX completion queue be one of the interrupt queues, and connect it to ISR that will poll the descriptor from the interrupt queue and send it to the FDQ.  This interrupt can be used for what you need as well.  (Then the completion queue is empty until new descriptor arrives, so no signal)
    2.      If your system is very regular, and you don’t need descriptors data to be buffered in the peripheral (for example, your data rate is very low compare with the peripheral rate) you can define the completion queue to be an interrupt queue (and the FDQ) and have only a single descriptor in the queue to begin with. Then you will get an interrupt every time the single descriptor enters the FDQ.

    Does it make sense?

     

    Ran