Hello group,

I cannot understand of how the XCHG PRU instruction works (or cannot make 
it working as expected).

I expect that "XCHG 10, r1, 4" should exchange the contents of r1 with the 
scratch pad bank0.r1, 4 bytes: put r1 contents there, and get S-pad data, 
simultaneously.

However I see the XCHG behaviour  exactly the same as the XIN instruction, 
that is scratchpad is being read OK, but nothing is written to the 
scratchpad.

The code:

 mov r1, 0x01 
 XOUT 10, r1, 4 // init the S-pad to value of 0x01
 mov r1, 0x02
 XCHG 10, r1, 4 // Make S-pad=0x02, r1 = 0x01
 SBCO r1, C24, 0x00, 4 // r1 -> RAM<0..3>,  and I see the RAM0 = 0x01 - OK
 mov r1, 0x03
 XCHG 10, r1, 4 // Make S-pad=0x03, r1 = 0x02
 SBCO r1, C24, 0x04, 4 // r1 -> RAM<4..7>, but I see the RAM4 = 0x01 - BAD! 
Should be 0x02


Could somebody please confirm that XCHG instruction works, or does not 
work, or how to make it exchanging the data reg<->scratchpad? 

(no register shifting used: PRUCFG.SPP=0)

Thanks!

-- 
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