Skip to content

TexasInstruments/open-pru

Repository files navigation


OpenPRU

Introduction
Features
Training
Getting started
OpenPRU organization
Building the examples
Using EVM boards
Creating a new OpenPRU project
Contributing to the OpenPRU repo
Technical Support

Introduction

OpenPRU is a software development package that enables development on the PRU processor core. PRU cores are included in Texas Instruments (TI) Sitara devices and Jacinto class of devices.

The OpenPRU project currently supports these processors:

For basic PRU development support on AM335x, AM437x, and AM57x, refer to the PRU Software Support Package (PSSP).

Release notes are here. Please refer to the release notes for information like compatible SDK versions on each release.

Features

The OpenPRU project provides:

  • PRU Academy
    • PRU Getting Started Labs (project creation, coding in assembly & C, compiling, loading PRU code, debugging PRU code)
    • Training labs (GPIO, interrupt controller, broadside accelerators, etc.)
  • Application examples
    • These PRU examples can be used as a foundation for your design: I2S, SPI, I2C, ADC, etc.
  • Helpful software tools
    • firmware macros
    • register definitions
    • example drivers

Each project is tested on at least one processor. Many projects can be ported to other processors, even if the example does not currently have a build configuration for the other processors. For more information, refer to academy/readme.md and examples/readme.md.

Training

TI provides additional training for programming the PRU subsystem in processor-specific academies. The currently published PRU Academies are:

PRU Academy for AM26x
PRU Academy for AM243x
PRU Academy for AM62x
PRU Academy for AM64x

Getting started

Please follow the Getting started steps to install dependencies and properly set up the OpenPRU repository.

OpenPRU organization

For more information about the organization of both the OpenPRU repo and the OpenPRU projects, please refer to OpenPRU organization

Building the examples

Building With Makefiles

Note

Use gmake in Windows, and make in Linux.

gmake is present in CCS. Add the path to the CCS gmake at C:\ti\ccsxxxx\ccs\utils\bin to your windows PATH.

Unless mentioned otherwise, all make commands are invoked from the root folder of the open-pru repository.

Makefiles can be used to:

  • build or clean all OpenPRU projects
  • build or clean a specific OpenPRU project
  • build or clean code for a specific core

For detailed steps on how to use makefiles, run make help from the root folder of the open-pru repository.

Building With CCS

  • Import the project into CCS. For steps to create a new PRU project in CCS, refer to PRU Academy > PRU Getting Started Labs > How to Create a PRU Project

  • Right-click a PRU project in the EXPLORER menu, and select "Build Projects" to build the PRU firmware, or "Clean Projects" to clean the output

  • For additional information about building PRU firmware, refer to the PRU Academy > PRU Getting Started Labs > How to Compile PRU Firmware

Building MCU+ projects in CCS

  • The PRU firmware must be built before the MCU+ firmware. By default, projects from the OpenPRU repo place the PRU firmware header file in the CCS workspace, in the top level of the PRU project's directory

  • The MCU+ project include paths must include the path to the PRU project directory in the CCS workspace

  • For additional information, refer to

    • PRU Academy > PRU Getting Started Labs > How to Create a PRU Project > Creating a CCS PRU Project with MCU+ Code
    • PRU Academy > PRU Getting Started Labs > How to Initialize the PRU > Initializing the PRU from MCU+ core
  • For more information about using MCU+ SDK projects with CCS, refer to the MCU+ SDK documentation: Developer Guides > Using SDK with CCS Projects

Using EVM boards

Please note that different EVMs have different signals pinned out. Before purchasing an EVM, we suggest checking the signals that are routed out on the board, and selecting an EVM which exposes the PRU signals that you will need for your development.

Using an EVM with MCU+ SDK

For more details on EVM Board usage, please refer to the Getting started section of MCU+ SDK README_FIRST_*.html page. The MCU+ SDK User guides contain information on

  • EVM setup
  • CCS Setup, loading and running examples
  • Flashing the EVM
  • SBL, ROV and much more.

Getting started guides of MCU+ SDK are specific to a particular device. The links for all the supported devices are given below

Creating a new OpenPRU project

An existing project can be copied into a new directory, or imported into CCS, to serve as a starting point for PRU development.

For steps to create a new OpenPRU project, refer to page Creating a New Project in the OpenPRU Repo.

For steps to create a new project in CCS, or for device-specific steps to create a new OpenPRU project, refer to the PRU Academy > PRU Getting Started Labs > How to Create a PRU Project.

Contributing to the OpenPRU repo

Please refer to Contributing to the OpenPRU project.

Technical Support

For questions to the TI apps team, reach out to us on TI's E2E forums. Please note that support may be limited for OpenPRU projects in the examples/ folder.

The open-pru Discussions tab is another place for discussion between community members.

About

Open PRU

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors