How obtain edge Interrupt in the PRU

In the pru reference manual

Page 148: “Polarity of all system interrupts is always high. Type of all system interrupts is always pulse.”

And in the register description on page 201: “The type of all system interrupts is pulse; always write 0 to the bits of this register.”

It doesn’t seem that you have a choice on the type.

Why do you require edge interrupts? You have to clear the status flags for another interrupt to fire, and the uio_pruss completely disables them after every interrupt, so it functions similar to an edge, custom interrupt handler or not.

Hi Community,

I think that I have already found a solution to obtain a edge interrupt with the prussdrv library from am335x_pru_package on DIY. Perhaps it is not the best Idea because it means to do changes in the library. But I show anyway and then you can show your opinions.

The first thing is defined two new fields in the variable tsysevt_to_channel_map defined in /pru_sw/app_loader/include like following: