I'm working on that very thing.  I fairly certain what is printing is an 
address although it doesn't seem to correspond to anything I'd expect.

On Tuesday, April 20, 2021 at 9:35:54 PM UTC-4 gbcs...@comcast.net wrote:

> Try changing the %n in the print statement to print out a 32 bit value. I 
> think you will see that it is an address in the PRU address space.
>
>  
>
> Graham 
>
>  
>
> *From:* beagl...@googlegroups.com [mailto:beagl...@googlegroups.com] *On 
> Behalf Of *Walter Cromer
> *Sent:* Tuesday, April 20, 2021 10:34 AM
> *To:* BeagleBoard <beagl...@googlegroups.com>
> *Subject:* [beagleboard] Strange behavior of value returned from PRU with 
> RPMSG
>
>  
>
> I am using a Beaglebone Black and C to read analog inputs with PRU0 and 
> return the data to a host program using RPMSG.
>
>  
>
> Basically, I read the data from FIFO0 fine, strip the step id from it and 
> copy it into an element of a character array in the PRU code.  
>
>  
>
> <start of snippet of PRU code>
>
>  
>
> Data = HWREG(SOC_ADC_TSC_0_REGS + TSC_ADC_SS_FIFODATA(0));
>
>                                                                               
>                               
>
>
>         
>
> if ((Data & 0x000F0000) == 0)  {  // checking the step id tag for step 0
>
> // if step == 0, strip off the step and put the data in array DetBSample
>
> DetBSample[sampleno] = Data & 0xFFF;
>
>  
>
> memcpy(payload, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 24); 
> // this came from TI's sample code, best I can tell it just preloads and 
> end of string character in the whole string.
>
> ltoa((long)DetBSample[sampleno], payload);  // put the value in  
> DetBSample[sampleno] in the character string payload
>
> // now send the payload to the host
>
>                                                                               
>       
> pru_rpmsg_send(&transport, dst, src, payload, 24);   
>
>  
>
> This code compiles and runs fine.
>
>  
>
> On the host side, I do this when I'm kicked by the PRU.  (This is a 
> snippet so brackets may not match!)
>
>  
>
> /* Poll until we receive a message from the PRU and then print it */
>
> result = read(pollfds[0].fd, readBuf, MAX_BUFFER_SIZE);
>
>                         if (result > 0)
>
>                                     {
>
>                                                 Volts = 
> atof(readBuf)*ADC_Res;
>
>                                                 printf("Message %d 
> received from PRU:%s or %x\n", i, readBuf, readBuf);
>
>                                                 printf("Volts read: 
> %.3f\n",Volts);
>
>  
>
> The output is strange though (snippet below).   The message #, string 
> value of readBuf and Volts are all correct. But when I output readBug as 
> hex, it never changes.  I thought it might be the address of readBuf but it 
> doesn't appear to be.  
>
>  
>
> The voltage matches the input we're providing from a bench power supply 
> and the decimal value is correct.  It's just that this hex value doesn't 
> change.
>
>  
>
> Message 97 received from PRU:3742 or 4b50b0
>
> Volts read: 1.644
>
> Message 98: Sent to PRU
>
> Message 98 received from PRU:3744 or 4b50b0
>
> Volts read: 1.645
>
> Message 99: Sent to PRU
>
> Message 99 received from PRU:3743 or 4b50b0
>
> Volts read: 1.645
>
> Received 100 messages, closing /dev/rpmsg_pru30
>
>  
>
>  
>
> -- 
>
> 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...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/beagleboard/784129ee-1cf5-4438-881e-7ac6621e7aben%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/beagleboard/784129ee-1cf5-4438-881e-7ac6621e7aben%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/e1e0cd85-ed1d-4de8-983f-c787d4edfb7dn%40googlegroups.com.

Reply via email to