Home

Prus

PRUs, short for Programmable Real-time Units, are a pair of small, deterministic microcontrollers integrated into TI Sitara processors and the PRU-ICSS subsystem. They are designed to handle time-critical input/output tasks independently of the main application processor, enabling precise waveform generation, fast bit-banging, and offloading real-time work from the host core.

Each PRU runs a simple 32-bit RISC-like instruction set with its own program and data memory. Programs

In many TI devices, the PRUs are part of the PRU-ICSS (Programmable Realtime Unit and Industrial Communication

Development and deployment typically use TI’s Code Composer Studio with a PRU C compiler or other supported

are
typically
loaded
into
dedicated
instruction
RAM,
and
data
can
be
stored
in
dedicated
data
RAM
accessible
to
both
PRUs.
PRUs
expose
a
straightforward
I/O
mechanism:
a
pair
of
special
registers,
R30
for
outputs
and
R31
for
inputs,
which
allow
direct
control
of
and
reading
from
external
pins.
Communication
with
the
host
processor
is
achieved
through
shared
memory
regions
(PRU-ICSS
RAM)
and
a
programmable
interrupt
system,
enabling
low-latency
signaling
and
synchronization.
SubSystem).
This
setup
provides
two
PRUs
along
with
interfaces
and
controllers
to
support
real-time
control
and
industrial
protocols.
The
PRUs
can
handle
time-critical
tasks
such
as
motor
control,
precise
PWM
generation,
sampling
of
sensors
at
fixed
rates,
and
implementing
custom
or
protocol-specific
interfaces,
while
the
main
CPU
manages
higher-level
processing
and
networking.
toolchains.
Programs
are
loaded
at
boot
or
on
demand
and
run
without
an
operating
system,
offering
deterministic
timing
at
the
cost
of
a
more
manual
software
workflow.
Limitations
include
limited
memory,
lack
of
a
memory
protection
unit,
and
the
need
for
careful
design
to
maintain
timing
determinism.