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.

AM3358: PRU interrupt handling

Part Number: AM3358

Hello,

I am using the Linux SDK 06.00.00.07 which has Remoteproc and RPMsg. I understand Remoteproc is used to activate firmware from the userspace, and RPMsg is to send small sized messages between the ARM and PRU, such as interrupts. My question is this, if anyone has any advice:

Instead of using RPMsg to tell me when an interrupt happens, can I just do a while(waiting for interrupt from firmware)? For instance, let's say an interrupt fires at memory address 0x49000001 once a DMA is done filling a buffer. When the interrupt fires at memory address 0x49000001 in the PRU, can I do a while(waiting for interrupt at memory address 0x49000001) in the ARM if I make sure to redefine any memory addresses from the PRU in the ARM? I'm just not sure if ARM can "see" the interrupts without using RPMsg.

Best Regards,

Tyler

  • Hello Tyler,

    Would your design be hurt by constantly polling a memory location instead of doing some other computation? If not, polling should mean that the ARM knows to access the data faster than any other method.

    Keep in mind that the PRU can also send an interrupt to the arm through the interrupt controller. See these posts for more info:

    Basic overview of INTC

    Overview of INTC setup in resource table

    Regards,

    Nick

  • Hello Nick,

    No, my design wouldn't hurt by constantly polling a memory location. I was going to be using the other method because it would be easier to implement. I did not know that polling was the faster method so I will look into polling.

    That's a good idea. I thought about using the RPMsg as an interrupt using the interrupt controller, instead of using the DMA interrupt. I'll look into both options.

    Thank you!

    Best Regards,

    Tyler