In addition, you will need to do the following to allocate some DDR memory 
for the PRU:
modprobe uio_pruss extram_pool_sz=0x160000
Keep in mind that since the PRU and ARM will now be sharing the bus, it may 
slow down the system. Also I don't believe DDR memory access is guaranteed 
to be deterministic like the other PRU commands.

On Tuesday, September 13, 2016 at 12:09:09 PM UTC-5, Christopher Hopwood 
wrote:
>
> Hi Paul,
>
> You may wish to see some code I wrote for a quadcopter project in college. 
>  One of the pieces of code used the PRU and shared DDR memory to transfer 
> images from a camera to the ARM.
>
>
> https://github.com/Rose-Hulman-ROBO4xx/1314-BeagleBone-Quadcopter/tree/master_rev2/code/ControlAlgorithm/quadcopter_apps/camera
>
> This may be out of date information however. It has been a while since I 
> used PRUs. But hopefully studying my code will be enough to get you started!
>
> Thanks,
> Chris
>
> On Tuesday, September 13, 2016 at 9:25:37 AM UTC-5, [email protected] 
> wrote:
>>
>> Hi,
>>   I am investigating the beagleboard black PRUs at the moment for data 
>> acquisition and/or transmission. For context I'll explain what I want to 
>> do. I want to use a 16 bit ADC/DAC at 100KSps. It is a half duplex system, 
>> so I can use both PRUs to receive, then load new firmware and transmit. 
>> Starting the transmission must be to 1 us accuracy. Hopefully that will 
>> explain what I am trying to do.
>>
>>  I am using the PRU Software package 4.0.2. My kernel is Linux Beaglebone 
>> 4.4.9-ti-r25. I have the CCSv6 environment setup and I can build and run 
>> examples on the PRU, and I have built a user space example (Pru Lab 6 user 
>> space) and it is working fine sending strings to and from both PRUs using 
>> RpMsg. Great so far....
>>
>> I would like to extend the User space example to allow me to fill PRU 
>> memory (basically Sine wave sample data to use as a carrier for modulation) 
>> , or write directly from user space any samples I want to transmit. Also 
>> any examples in user space using the pruss_intc.ko to send/receive 
>> interrupts from the PRUs would be good. 
>>
>> The data I want to fill into the PRU will fill most of the data memory in 
>> the PRU, I don't want to have to load it up piece by piece through RpMsg, 
>> which looks to be maximum 512 bytes per transfer. I am hoping to trigger 
>> commands through RpMsg for the PRU to read/write data to shared or ARM DDR 
>> memory. There are plenty of examples on the PRU side to read/write to 
>> shared or DRR memory, so i should be able to plod through the examples to 
>> create my code for the PRU. 
>>
>> However I can't see any example on the ARM side. Is it possible for a 
>> user space program to read/write to shared memory ? Or allocate a section 
>> of DDR memory for the each PRU to write to that nothing else will touch ? 
>>
>> Also once the ARM is through with writing to shared or DRR memory the PRU 
>> generate a ARM Host interrupt (EVOUT1 to EVOUT7).  Does pruss_intc.kp 
>> map these interrupts to user space, or allow a callback to be added ?
>>
>> I know a lot of questions, apologies if they are basic, new to this. 
>>
>> Regards,
>> Paul 
>>
>

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/a1fb00e8-dfb0-46c8-8ee1-1e509e2f2465%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to