I don't remember exactly, but I don't think there are more than 2 PRU-ARM 
interrupts on the PRUs. I believe the other interrupts can be mapped to 
system interrupts using the interrupt map that you pass to 
prussdrv_pruintc_init() (you'd have to write your own instead of using 
PRUSS_INTC_INITDATA). It's been a while since I saw this, so maybe someone 
else should confirm this.

An alternative solution to your problem is use something like a interrupt 
vector, i.e., use part of the PRU RAM (maybe the first byte) to identify 
which interrupt happened. You'd send the interrupt as

; Set c24 and c25 (data RAM in PRU1 and PRU0)
    LDI32      r0, 0x24020
    LDI          r1, 0
    SBBO     &r1, r0, 0, 4

    MOV       &r28, INTERRUPT_NUMBER
    SBCO     r28, c24, 0, 4                          ; Not sure about this 
line, you should check
    MOV       r31.b0, 32 | PRU_EVTOUT_0

and read it as

prussdrv_map_prumem(PRUSS0_PRU1_DATARAM, &pru1_mem);         /* You might 
need to cast this to uint32_t */

prussdrv_pru_wait_event (PRU_EVTOUT_1);
prussdrv_pru_clear_event (PRU_EVTOUT_1, PRU1_ARM_INTERRUPT);

if(pru_mem1 == 0){
} else if (pru_mem1 == 1){
} ...

This is sort of a sketch, no guarantees it will work out of the box! Still, 
hope it helps...

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to