NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

Programmable Realtime Unit Subsystem

From Texas Instruments Wiki
Jump to: navigation, search

Content is no longer maintained and is being kept for reference only!
For the most up to date PRU-ICSS collateral click here

Overview[edit]

The Programmable Realtime Unit SubSystem (PRUSS) consists of:

  • Two Programmable Realtime Units (PRU0 and PRU1) and their associated memories (data RAM and instruction RAM)
  • An INTC (Interrupt Controller) for handling system input events. INTC also supports posting events back to the device level host CPUs (e.g. C674x DSP)
  • SCR (Switched Central Resource) for connecting the various internal and external masters to the resources inside the PRUSS.

The two PRUs can operate completely independently or in coordination with each other. The PRUs can also work in coordination with device level host CPUs. This is determined by the nature of the program which is loaded into the PRU's instruction memory. Several different signaling mechanisms are available between the two PRUs and the device level host CPUs.

The PRU subsystem is supported on OMAP-L1x8/C674m/AM18xx devices (where m is an even number).  A block diagram of the PRUSS is shown below.

Figure 1: PRU SubSystem block diagram


Features Supported[edit]

  • Provides 2 Independent Programmable Realtime Unit Cores
    • 32-Bit Load/Store RISC architecture
    • 4K Byte instruction RAM per core
    • 512 Bytes data RAM per core
    • PRUSS can be disabled via software to save power
    • Register 30 of each PRU is exported from the subsystem in addition to the normal R31 output of the PRU cores.
    • PRU intended operation is little endian similar to ARM and DSP processors.
  • Provides standard power management mechanism
    • Clock gating provided
    • Entire subsystem under a single PSC clock gating domain
  • Provides interrupt controller
  • Provides switched central resource


PRU Subsystem Training Material[edit]

These slides contain a nice overview of the PRU Subsystem. This material is a recommended starting point for those who have never used the PRU Subsystem. Note that the material in the slides is accurate as of the time it was posted, but the associated pages of the wiki will always contain the most up-to-date information.


PRU Subsystem Hardware Documentation[edit]

  1. PRU Subsystem Memory Map
  2. PRU Core Execution Unit
  3. PRU Interrupt Controller
  4. PRUSS Differences between OMAPL1x8/AM18x and OMAP1x7/AM17x


PRU Subsystem Software Development[edit]

Information on developing software for the PRUs can be found here.

E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article Programmable Realtime Unit Subsystem here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article Programmable Realtime Unit Subsystem here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article Programmable Realtime Unit Subsystem here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article Programmable Realtime Unit Subsystem here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article Programmable Realtime Unit Subsystem here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article Programmable Realtime Unit Subsystem here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article Programmable Realtime Unit Subsystem here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article Programmable Realtime Unit Subsystem here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article Programmable Realtime Unit Subsystem here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity