PRUSSv2 Multiply Accumulate?

http://elinux.org/Ti_AM33XX_PRUSSv2 says the PRUSSV2 has multiply accumulate in a single cycle. This is an extremely useful instruction but is not described in the AM335x PRU_ICSS Reference Guide instructions. Any idea what the op code is and adding this to PASMAOP.c?

Looking at the source code at pasmop.c I see some other commands not listed in the manual:
LFC : LFC Rdst, #Im255
STC : STC Rsrc, #Im255
SCAN : SCAN Rdst, OP(255)

Any idea what these do?

Ti AM33XX PRUSSv2 - eLinux.org says the PRUSSV2 has multiply
accumulate in a single cycle. This is an extremely useful
instruction but is not described in the AM335x P
<http://elinux.org/Ti_AM33XX_PRUSSv2&gt;RU\_ICSS Reference Guide
instructions. Any idea what the op code is and adding this to
PASMAOP.c?

Documentation on the PRU multiplier can be found in the AM335x
Technical Reference Manual, rev c (Google for spruh73c).

To use the multiplier, you need to use the XIN and XOUT instructions,
which Bas Laarhoven added to his version of pasm. You can grab it
from github:

...or you might want to just grab my LinuxCNC image for the BeagleBone:

In addition to having the updated pasm, there's a PRU single-step
debugger that runs on top of LinuxCNC's HAL, which I have found *VERY*
helpful when writing PRU code. Or you might want to check out some of
the other PRU debuggers, I've got a list on my blog:

...let me know if you know of a good resource I missed.

Looking at the source code at pasmop.c I see some other commands
not listed in the manual: LFC : LFC Rdst, #Im255 STC : STC Rsrc,
#Im255 SCAN : SCAN Rdst, OP(255)

Any idea what these do?

I'm not familiar with those, although there are hints about the SCAN
instruction in the rev. C TRM (it's multi-cycle and affects more than
a single register).

- --
Charles Steinkuehler
charles@steinkuehler.net