b ildibuilding bl kbl ocks for pru dl td evelopment - ti.com blocks for pru... · pru subsystem...

32
B ildi Bl kf PRU D l t Building Blocks for PRU Development Embedded Processing Embedded Processing

Upload: ngokhanh

Post on 21-Mar-2018

230 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

B ildi Bl k f PRU D l tBuilding Blocks for PRU Development

Embedded ProcessingEmbedded Processing

Page 2: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

Agenda

•PRU Hardware Overview

•PRU Firmware Development

•Linux Drivers Introduction

Page 3: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

PRU H d O iPRU Hardware Overview

Building Blocks for PRU Development

Page 4: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

ARM SoC Architecture• L1 D/I caches:Single‐cycle access

ARM Subsystem

Cortex‐A

• L2 cache:Minimum latency of 8 cycles 

L1 Instruction Cache

L1 Instruction Cache

L1 Data CacheL1 Data Cache

L2 Data CacheL2 Data Cache

• Access to on‐chip SRAM:20 cycles

L2 Data CacheL2 Data Cache

On‐chip SRAMOn‐chip SRAM

20 cycles

• Access to shared memoryL3 I t t

L3 Interconnect

over L3 Interconnect:40 cyclesShared 

MemoryShared Memory

Peripherals

P i h l GP I/O

L4 Interconnect

Peripherals GP I/O

Page 5: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

ARM + PRU SoC Architecture

PRU0 I/O

Programmable Real‐Time Unit (PRU) Subsystem

PRU0    (200MHz)

PRU1    (200MHz)

ARM Subsystem

Cortex‐A

PRU1 I/OInst.RAMInst.RAMShared RAMShared RAM Data

RAMDataRAM

Inst.RAMInst.RAM

DataRAMDataRAM

(200MHz) (200MHz)L1 Instruction 

CacheL1 Instruction 

CacheL1 Data CacheL1 Data Cache

L2 Data CacheL2 Data CacheInterconnect

INTCINTC Peripherals

L2 Data CacheL2 Data Cache

On‐chip SRAMOn‐chip SRAM

L3 InterconnectL3 Interconnect

Access Times:I t ti RAM 1 l

Shared MemoryShared Memory

Peripherals

• Instruction RAM = 1 cycle• DRAM = 3 cycles• Shared DRAM = 3 cyclesPeripherals GP I/O

L4 Interconnect

Shared DRAM   3 cyclesPeripherals GP I/O

Page 6: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

Programmable Real‐Time Unit (PRU) Subsystem

• Programmable Real‐Time Unit (PRU) is a low‐latency i ll bmicrocontroller subsystem.

• Two independent PRU execution units:

PRU Subsystem Block Diagram

I d i l– 32‐Bit RISC architecture– 200MHz;  5ns per instruction – Single cycle execution; No 

32 GPO30 GPI

PRU0Core

(IRAM0)

PRU0Core

(IRAM0)

Data RAM0Data RAM0

Data RAM1Data RAM1

MII0 RX/TXIndustrial Ethernet

pipeline– Dedicated instruction and data RAM per core 32 GPO

Scratchpad

PRU1 CorePRU1 Core

(IRAM0)(IRAM0) Data RAM1Data RAM1

SharedRAMSharedRAM

conn

ect b

us

– Shared RAM

• Includes Interrupt Controller for system event handling

Master I/F (to SoC interconnect)Slave I/F(from SoC interconnect)

30 GPI (IRAM1)(IRAM1)

MII1 RX/TX

32‐bit Interc

Industrial Ethernet

MDIO

• Fast I/O interface: Up to 30 inputs and 32 outputs on external pins per PRU unit.

Events to ARM INTCEvents from

Interrupt Controller (INTC)

IEP (Timer)

eCAP

MPY/MAC

UART

MDIO

p p Events from Peripherals + PRUs

( )(INTC)

Page 7: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

N l t’ littl dNow let’s go a little deeper…

Page 8: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

PRU Functional Block Diagram

PRU Execution Unit

General Purpose Registers All instructions are performed on registers and complete in a single cycle

General Purpose Registers All instructions are performed on registers and complete in a single cycle

Constant Table Ease SW development by providing freq used constants

Constant Table Ease SW development by providing freq used constants

R0

R1

CONST TABLECONST TABLE

U ecu o Uregisters and complete in a single cycle. Register file appears as linear block for all register‐to‐memory operations.

registers and complete in a single cycle. Register file appears as linear block for all register‐to‐memory operations.

providing freq used constants Peripheral base addresses Few entries programmable

providing freq used constants Peripheral base addresses Few entries programmable

R29

… Execution Unit Logical, arithmetic, and flow control instructions

Execution Unit Logical, arithmetic, and flow control instructions

EXECUTION UNIT

EXECUTION UNIT

R2

R30

Instruction RAM

Instruction RAM

32 GPO

30 GPI30 GPI

control instructions Scalar, no Pipeline, Little Endian

Register‐to‐register data flow

control instructions Scalar, no Pipeline, Little Endian

Register‐to‐register data flowINTC

R31

Special Registers (R30 and R31) R30

Write: 32 GPO

Special Registers (R30 and R31) R30

Write: 32 GPO

Addressing modes: LdImmediate & Ld/St to Mem

Addressing modes: LdImmediate & Ld/St to Mem

Write: 32 GPO R31

Read: 30 GPI + 2 Host Int status Write: Generate INTC Event

Write: 32 GPO R31

Read: 30 GPI + 2 Host Int status Write: Generate INTC Event

Instruction RAM Typical size is a multiple of 4KB (or 1K Instructions)

Can be updated with PRU reset

Instruction RAM Typical size is a multiple of 4KB (or 1K Instructions)

Can be updated with PRU reset8

Can be updated with PRU resetCan be updated with PRU reset

Page 9: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

Fast I/O InterfaceCortex A8

L3F                   L3S

L4 PER

Peripherals

GPIO1

L4 PER

GPIO1GPIO2GPIO3....

GPIO 3.19

Pinmux

Device pinp

Page 10: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

Fast I/O Interface• Reduced latency through direct access to pins:

– Read or toggle I/O within a single PRU cycle– Detect and react to I/O event within

Cortex A8

Detect and react to I/O event withintwo PRU cycles

• Independent general purpose inputs (GPIs)    and general purpose outputs (GPOs):

L3F                   L3S

L4 PERand general purpose outputs (GPOs):– PRU R31 directly reads from up to 30 GPI pins.– PRU R30 directly writes up to 32 PRU GPOs.

C fi bl I/O d PRU PRU S b t

Peripherals

GPIO1

L4 PER

• Configurable I/O modes per PRU core:– GP input modes:

• Direct input16 bit ll l t

PRU SubsystemGPIO1GPIO2GPIO3....

• 16‐bit parallel capture • 28‐bit shift

– GP output modes:Di t t t

PRU  output 5GPIO 3.19

• Direct output• Shift out Pinmux

Device pinp

Page 11: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

GPIO Toggle: Bench MeasurementsPRU IO Toggle:ARM GPIO Toggle:

~200ns ~5ns ~40x Faster~200ns ~5ns = ~40x Faster

Page 12: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

Integrated Peripherals

• Provide reduced PRU read/write access latency compared to external peripherals

• No need for local peripherals to go through external L3 or L4 interconnects

• Can be used by PRU or by the ARM as additional hardware peripherals on the device

• Integrated peripherals:PRU UART– PRU UART

– PRU eCAP– PRU IEP (Timer) Programmable Real‐Time Unit (PRU) 

SubsystemSubsystem

PRU0    (200MHz)

PRU1    (200MHz)

Interconnect

Inst.RAMInst.RAMShared RAMShared RAM Data

RAMDataRAM

Inst.RAMInst.RAM

DataRAMDataRAM

INTC UART eCAP IEP (Timer)

Page 13: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

PRU Read Latencies: Local vs Global Memory Map

The PRU directly accessing internal MMRs (Local MMR Access) is faster than going through the L3 interconnects (Global MMR Access).

Local MMR Access

Global MMR Access

( PRU cycles@ 200MHz )

( PRU cycles@ 200MHz )

PRU R31 (GPI) 1 N/APRU CTRL 4 36PRU CFG 3 35PRU INTC 3 35PRU DRAM 3 35PRU Shared DRAM 3 35PRU ECAP 4 36PRU UART 14 46PRU IEP 12 44PRU IEP 12 44

Note:  Latency values listed are “best‐case” values.

Page 14: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

PRU “Interrupts”• The PRU does not support asynchronous interrupts:

– However, specialized h/w and instructions facilitate efficient polling of system events. – The PRU‐ICSS can also generate interrupts for the ARM, other PRU‐ICSS, and sync events for EDMA.

• From UofT CSC469 lecture notes, “Polling is like picking up your phone every few seconds to see if you have a call. Interrupts are like waiting for the phone to ring.

– Interrupts win if processor has other work to do and event response time is not critical– Polling can be better if processor has to respond to an event ASAP”

• Asynchronous interrupts can introduce jitter in execution time and generally reduce y p j g ydeterminism.  The PRU is optimized for highly deterministic operation.

Page 15: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

Sitara Device Comparison AM18x/

FeaturesAM18x/

OMAPL138 AM335x  AM437x  AM571x  AM572x (PG1.1)

PRUSS PRU‐ICSS1 PRU‐ICSS1 PRU‐ICSS0 2 x PRU‐ICSS 2 x PRU‐ICSSPRU core version 1 3 3 3 3 3Number of PRU cores (per 2 2 2 2 2 2Number of PRU cores (per subsystem) 2  2  2  2  2  2 

Max frequency  CPU freq / 2  200 MHz  200 MHz  200 MHz  200 MHz  200 MHz IRAM size (per PRU core)  4 KB  8 KB  12 KB  4 KB  12 KB  12 KB DRAM size (per PRU core)  512 B 8 KB  8 KB  4 KB  8 KB  8 KB 

(Shared DRAM size (per subsystem) ‐‐ 12 KB  32 KB  ‐‐ 32KB 32KB

General purpose input(per PRU core) Direct

Direct; or 16‐bit parallel capture; or 

Direct; or 16‐bit parallel capture; or 28‐bit shift; or 3ch 

Direct; or 16‐bit parallel capture; or 28‐bit shift; or 3ch 

Direct; or 16‐bit parallel capture; or 28‐bit shift; or 3ch 

Direct; or 16‐bit parallel capture; or (per PRU core)  28‐bit shift  EnDat 2.2; or 

9ch Sigma Delta EnDat 2.2; or    

9ch Sigma Delta EnDat 2.2; or 

9ch Sigma Delta 28‐bit shift

General purpose output(per PRU core)  Direct  Direct; or Shift out  Direct; or Shift out  Direct; or Shift out  Direct; or Shift out  Direct; or Shift out 

GPI Pins (PRU0 PRU1) 30 30 17 17 13 0 20 20 21* 21 21 21GPI Pins (PRU0, PRU1)  30, 30  17, 17  13, 0  20, 20  21 , 21  21, 21 GPO Pins (PRU0, PRU1)  32, 32  16, 16  12, 0  20, 20  21*, 21  21, 21 MPY/MAC  N  Y  Y  Y  Y  Y Scratchpad  N  Y (3 banks)  Y (3 banks)  N  Y (3 banks)  Y (3 banks) CRC16/32 0 0 2 2 2 0INTC  1  1  1  1  1  1 Peripherals  n/a  Y  Y  Y  Y  Y 

UART  0  1  1  1  1  1 eCAP 0  1  1  no connect  1  1 IEP 0 1 1 no connect 1 1

* PRU-ICSS2 only. PRU-ICSS1 does not pin out the PRU0 core GPIs/GPOs.** 2nd protocol limited to EnDAT/Profibus/BISS/HIperphase DSL or serial based protocol

15IEP  0  1  1  no connect  1  1 MII_RT  0  2  2  no connect  2  2 MDIO  0  1  1  no connect  1  1 

Simultaneous protocols 1 1 2** 2

Page 16: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

E l f h l h d th PRUExamples of how people have used the PRU…

Page 17: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

Use Case Examples• Industrial 

Protocols • ASRC

• 10/100 Switch

Not all use cases are feasible  on PRU

• Smart Card• DSP‐like functions

• Filtering• FSK Modulation

‐ Development complexity‐ Technical constraints

(i.e. running Linux on PRU)

• LCD I/F• Camera I/F

• RS‐485• UART

• SPI• Monitor Sensors

• I2C• Bit banging

• Custom/Complex PWM • Stepper motor control

Development Complexity

Page 18: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

PRU Fi D l tPRU Firmware Development

Building Blocks for PRU Development

Page 19: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

TI PRU C d G ti T l (CGT) C C ilTI PRU Code Generation Tools (CGT): C Compiler

Page 20: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

C Compiler

• Developed and maintained by TI CGT team; Remains very similar to other TI compilers

• Full support of C/C++

• Adds PRU‐specific functionality:– Can take advantage of PRU architectural features automatically

C t i l i t i i A li t b f d i C il d t ti– Contains several intrinsics: A list can be found in Compiler documentation

• Full instruction‐set assembler for hand‐tuned routines 

For more information visit http://www ti com/lit/ug/spruhv7/spruhv7 pdfFor more information, visit http://www.ti.com/lit/ug/spruhv7/spruhv7.pdf.

Page 21: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

TI PRU CGT Assembly vs C

• Advantages of coding in Assembly over C:– Code can be tweaked to save every last cycle and byte of RAM– No need to rely on the compiler to make code deterministic– Easily make use of scratchpad

• Advantages of coding in C over Assembly:– More code reusabilityC di tl l k l h d f i t ti ith k l d i– Can directly leverage kernel headers for interaction with kernel drivers

– Optimizer is extremely intelligent at optimizing routines• “Accelerating” math via MAC unit, implementing LOOP instruction, etc.

– Not mutually exclusive; Inline Assembly can be easily added to a C project

Page 22: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

PRU R i t H d FilPRU Register Header Files

Page 23: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

PRU Register Headers• Created to make accessing a register easier: Register names match those in documentation

C d C l ti f t i CCS t ti ll li t ll b• Code Completion feature in CCS automatically lists all members

• Developed to allow a user to program at the register‐level or at a bit‐field level– Note that bit‐field accesses could potentially cause some issues with other C compilers (e.g., gcc), but register‐level should not.

• PRU cregister mechanism used to leverage constants table when possible

C tl id d fi iti f th f ll i• Currently provides definitions for the following:

• PRU INTC 

• PRU Config

• PRU Control

• PRU ECAP• PRU Config

• PRU IEP

• PRU ECAP

• PRU UART

Page 24: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

PRU Register Headers Layout• Excerpt from pru_cfg.h

– Access register directly CT_CFG.SYSCFG

O ifi bitfi ld– Or access specific bitfieldsCT_CFG.SYSCFG_bit.STANDBY_INIT

E l f h t i C fil• Example of how to use in C file– #include the specific header– Map the constant table entry to register structures– Access registers or fields– Access registers or fields

Page 25: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

D l t d D b O tiDevelopment and Debug Options

Page 26: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

Development Within CCS

• In CCS– Download and install PRU CGT package via App Center.– Open or create new PRU projects just like with any other device.– Code completion helps make register accesses easier.

• The Downside– It is more difficult to debug while Linux kerneland user application is also running concurrently.and user application is also running concurrently.

Page 27: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

Development Outside of CCS

• Outside of CCS– Code in your favorite text editor, build via command line

• Linux and Windows packages available

– May be easier to script/automate different processes (build or otherwise)

• The Downside– Can be difficult to debug PRU code– Lacks code completionLacks code completion

Page 28: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

Debug

• In CCS– Easy to view register and variable contents– Access to breakpoints and simply stepping mechanism

• Outside CCS• Outside CCS– Minimal debug control, but some debugfs control provided through remoteproc– Start, halt, single‐stepping is all console‐based

• Clunky when done by hand, but can potentially be scripted

Page 29: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

Li D i I t d tiLinux Drivers Introduction

Building Blocks for PRU Development

Page 30: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

ARM + PRU SoC Software ArchitectureProgrammable Real‐Time Unit (PRU) Subsystem

PRU0 I/OPRU0    (200MHz)

PRU1    (200MHz)

ARM Subsystem

Cortex‐A

ARM Subsystem Programmable Real‐Time Unit (PRU)Subsystem

Inst.RAMInst.RAMShared RAMShared RAM DataR

AMDataRAM

Inst.RAMInst.RAM

DataRAM

DataRAM

PRU1 I/O

(200MHz) (200MHz)L1 Instruction 

CacheL1 Instruction 

CacheL1 Data CacheL1 Data Cache

L2 Data CacheL2 Data CacheInterconnect

INTCINTC Peripherals

L2 Data CacheL2 Data Cache

On‐chip SRAMOn‐chip SRAM

L3 InterconnectL3 Interconnect

Shared MemoryShared Memory

Peripherals

P i h l GP I/O

L4 Interconnect

Peripherals GP I/O

Page 31: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

What Do We Need Linux to Do?• Load the Firmware

• Manage resources (memory, CPU, etc.)

• Control execution (start, stop, etc.)

• Send/receive messages to share data   AND

S h i th h t (i t t )• Synchronize through events (interrupts)

• These services are provided through a combination of remoteproc/rpmsg + virtio transport frameworks

Page 32: B ildiBuilding Bl kBl ocks for PRU Dl tD evelopment - TI.com Blocks for PRU... · PRU Subsystem Block Diagram ... PRU Firmware Dl tDevelopment ... A li tlist can be fdfound in CilCompiler

For More Information

• Visit the PRU‐ICSS Wiki: http://processors.wiki.ti.com/index.php/PRU‐ICSS

• Download the PRU tools:– PRU Software Package: http://www.ti.com/tool/pru‐swpkg

( d l )– PRU CGT (Code Gen Tools): http://processors.wiki.ti.com/index.php/Download_CCS

– Linux drivers for interfacing with PRU: ghttp://www.ti.com/lsds/ti/tools‐software/processor_sw.page

O d th PRU C htt // ti /t l/PRUCAPE• Order the PRU Cape: http://www.ti.com/tool/PRUCAPE

• For questions about this training, refer to the E2E Sitara Processors Forum: q g,https://e2e.ti.com/support/arm/sitara_arm