You have to enable the ocp master port (section 10.1.2)  to access main
memory. Here's an explanation
<http://nomel.tumblr.com/post/30006622413/beaglebone-tutorial-accessing-main-memory-from-the-pru>
.

And, the resulting code is (if you want to do it in the pru):

// clear STANDBY_INIT bit in syscfg register so memory between pru <->
system can be accessed (enable ocp master)
LBCO r0, C4, 4, 4
CLR r0, r0, 4
SBCO r0, C4, 4, 4

See section 3.1.2 in the pru reference
<https://github.com/beagleboard/am335x_pru_package> for limitations
(accessing memory below main memory 0x00080000 requires enabling an offset,
section 10.1.10).



On Wed, Aug 13, 2014 at 2:02 PM, rakesh.safir <rakesh.sa...@gmail.com>
wrote:

> Hi,
>
> I want to use the DCAN interface on PRU-ICSS to send/receive data present
> on DDR RAM at a fixed physical address.
>
>    - Address of DDR is 0x8000_0000 to 0x9000_0000(256MiB)
>    - My buffer is present at 0x8FF0_0000 to 0x9000_0000 (1MiB)
>
>  As soon as I access the hardware address 0x8FF0_0000 the PRU-ICSS goes
> into some faulty state and becomes unresponsive.
>
> Is there some other way to access DDR from PRU-ICSS ?
>
> Rakesh
>
> On Thursday, May 16, 2013 2:42:39 AM UTC+5:30, Jason Kridner wrote:
>>
>> Frequently asked questions regarding "PRU":
>>
>>    - What is a "PRU"?
>>    - PRU stands for Programmable Real-time Unit.  The overall subsystem
>>       is typically called the ICSS, PRU-ICSS or PRUSS.  ICSS stands for
>>       Industrial Communications Subsystem and PRUSS stands for Programmable
>>       Real-time Unit Subsystem.
>>    - What does a PRU do?
>>       - A PRU is a 200MHz microcontroller that is really useful at
>>       "bitbanging" and has some peripherals attached to it that make it well
>>       suited for building real-time interfaces to all types of digital
>>       electronics.
>>    - What are the processing elements within the AM33xx PRUSS used on
>>    BeagleBone and BeagleBone Black?
>>       - 2 32-bit 200MHz PRU cores
>>       - Each with 8KB of program memory
>>       - Direct access to general purpose I/O
>>       - Single cycle operations without cache or pipelines (instructions
>>       *always* 5ns)
>>       - Shared 12KB data memory
>>       - Scratch pad registers
>>       - Parallel and serial capture modes
>>       - 32-bit port to memory and other peripherals outside of the
>>       PRUSS, including external memory
>>    - What are some example things built out of PRUs?
>>       - DMX512 lighting protocol: http://beagleboard.
>>       org/CapeContest/entries/BeagleBone+DMX+Cape/
>>       <http://beagleboard.org/CapeContest/entries/BeagleBone+DMX+Cape/>
>>       - 6502 memory interface: http://elinux.org/
>>       images/a/ac/What's_Old_Is_New-_A_6502-based_Remote_Processor.pdf
>>       
>> <http://elinux.org/images/a/ac/What's_Old_Is_New-_A_6502-based_Remote_Processor.pdf>
>>       - Emulated memory interface on an Atari 600XL with BeagleBone
>>       decoding video directly into Atari 600XL display memory:
>>       http://www.youtube.com/watch?v=1irR4TQ5aMA
>>       <http://www.youtube.com/watch?v=1irR4TQ5aMA>
>>       - Nixie tube interface: https://github.com/mranostay/beagle-nixie
>>       - Software UART: http://processors.wiki.ti.com/index.php/Soft-UART_
>>       Implementation_on_AM335X_PRU_-_Software_Users_Guide
>>       
>> <http://processors.wiki.ti.com/index.php/Soft-UART_Implementation_on_AM335X_PRU_-_Software_Users_Guide>
>>       - Sine wave generator using PWMs: http://elinux.org/
>>       ECE497_BeagleBone_PRU
>>       - 3D printer stepper motor driver: http://
>>       hipstercircuits.com/pypruss-a-simple-pru-python-binding-for-
>>       beaglebone/
>>       
>> <http://hipstercircuits.com/pypruss-a-simple-pru-python-binding-for-beaglebone/>
>>       - Camera interface: http://www.hitchhikeree.org/beaglebone_
>>       capes/interacto/
>>    - Where do I get some more details?
>>       - https://github.com/beagleboard/am335x_pru_package is the
>>       official location for documentation and tools for the PRUSS on 
>> BeagleBone
>>       and BeagleBone Black.
>>       - http://elinux.org/Ti_AM33XX_PRUSSv2 is the community wiki page.
>>
>>
>>  --
> For more options, visit http://beagleboard.org/discuss
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "BeagleBoard" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/beagleboard/u28ytaoNenU/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> beagleboard+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

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