Charles, thank you for getting back to me. Could you tell me which Pru 
Reference
Guide you are quoting. The one I have is: SPRUHF8A, revised June 2013, and
section 5.3.4.2.3.1 does not have the words "Standard PRU Core Support" in 
it.
The reference I have has examples of indirect reads followed by examples of 
indirect
writes where in each case the semantics *r1.b0 (for example, used in the 
first indirect write example) indicates the lowest significant byte of 
register r1 contains the address of the register that should be written, in 
the example, r1 contains 8, so the register written into in the example is 
register 2 which starts at byte 8. and in this example, since a single byte 
is being written, register 2 ends up containing 0x00000004, the least 
significant byte of r3. In the reference I am reading, the word "pseudo" 
does not occur in section 5.3.4.2.3.1; do you have a newer reference? My 
understanding is the whole point of the MVIx op codes are to allow for 
first indirect addressing (where the specified register contains the 
address of the register to be either read from or written to, as indicated 
by typing '*' just in front of the register name, and that both read and 
written registers can contain '*', that is can be indirect) and also to 
allow for auto incrementing and/or decrementing; it's the auto incrementing 
I really want otherwise I have to use a number of instructions to realize 
the equivalent. I can only guess that the reference you are quoting from is 
different than the one I have; could you give me a link to the reference 
you are quoting from? Irrespective, this still does not explain the error 
message "This form of MVIx illegal with specified core version"; I can not 
find anywhere which cores support MVIx and which do not. In the meantime, I 
will read the example you suggest.Thanks again.
-Bit_Pusher

On Thursday, February 19, 2015 at 3:40:03 PM UTC-5, Charles Steinkuehler 
wrote:
>
> On 2/18/2015 4:08 PM, Bit Pusher wrote: 
> > I'm planning on reading the PRU IO inputs a large number of consecutive 
> > times and move them (eventually) to DDR space. As part of my code, I 
> tried 
> > one instruction like: 
> > MVIW *r0.w0++, r31.w0 
> > which from section 5.3.4.2.3 Move Register File Indirect (MVIx) 
> > of the PRU reference manual seems correct to me; however when trying to 
> > compile using PASM_2, I get the error message: 
> > 
> > PRU Assembler Version 0.86 
> > Copyright (C) 2005-2013 by Texas Instruments Inc. 
> > 
> > logic_pru1.p(42) Error: This form of MVIx illegal with specified core 
> > version 
> > 
> > Pass 1 : 1 Error(s), 0 Warning(s) 
> > 
> > I have searched the PRU and the AM335X manuals and I can't find any 
> > sections stating the AM3358 does not support MVIx instructions. 
> > Does anyone have any experience here? Thanks. 
>
> Keep reading the PRU Reference Guide.  Specifically, section 5.3.4.2.3.1 
> "Standard PRU Core Support" which tells you this is implemented as a 
> pseudo-op and only register to register moves are supported. 
>
> If you're interested in moving data from the PRU to the ARM side 
> quickly, check out the BeagleLogic project (from last year's Google 
> Summer Of Code): 
>
> https://github.com/abhishek-kakkar/BeagleLogic/wiki 
>
> ...this is about as optimized as you can get for moving data from the 
> PRU to the Linux ARM side, and everything's already written for you 
> (including the kernel mode driver necessary to get the highest speeds). 
>
> -- 
> Charles Steinkuehler 
> [email protected] <javascript:> 
>

-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to