Skip to content

Update all READMEs, port HW UART & MAC C code examples from PSSP#132

Open
nsaulnier-ti wants to merge 6 commits into
mainfrom
a0226750_ai_import_pssp
Open

Update all READMEs, port HW UART & MAC C code examples from PSSP#132
nsaulnier-ti wants to merge 6 commits into
mainfrom
a0226750_ai_import_pssp

Conversation

@nsaulnier-ti

@nsaulnier-ti nsaulnier-ti commented Apr 4, 2026

Copy link
Copy Markdown
Collaborator

Update all README files in the OpenPRU repository to align with the latest OpenPRU v2026.01.00.

Port the HW UART project from the PRU Software Support Package (PSSP) as well as the C code version of the MAC example.

The project ports were used to test the behavior of AI agents based on #130.

This pull request should be merged in before #128

Ported code has not been tested on silicon yet

The README updates are the first step to addressing #42

@qodo-code-review

qodo-code-review Bot commented Apr 4, 2026

Copy link
Copy Markdown

Review Summary by Qodo

(Agentic_describe updated until commit c1493d3)

Port HW UART and MAC C examples from PSSP and standardize repository documentation

✨ Enhancement 📝 Documentation

Grey Divider

Walkthroughs

Description
• **Port HW UART and MAC C code examples from PSSP**: Added two new firmware projects
  (uart_loopback and mac_c) ported from the PRU Software Support Package, demonstrating UART
  peripheral loopback and MAC (Multiply-Accumulate) hardware accelerator functionality
• **Comprehensive build infrastructure**: Added makefiles, linker configurations, and CCS project
  specifications for multiple processor variants (AM62x-SK, AM64x-EVM) and PRU cores (PRU0, PRU1)
• **Updated all README files**: Standardized documentation across the repository with consistent
  structure including Introduction, Supported Combinations, and Validated HW & SW sections with
  hardware/software version tables
• **Enhanced academy and examples documentation**: Updated parent README files to reference new
  projects and improved formatting consistency across all example and academy project documentation
• **Build system integration**: Updated academy makefile to include new projects in the build system
• **Note**: Ported code has not been tested on silicon yet
Diagram
flowchart LR
  PSSP["PSSP Projects<br/>UART & MAC"]
  PORT["Port to<br/>OpenPRU"]
  UART["UART Loopback<br/>Project"]
  MAC["MAC C<br/>Project"]
  BUILD["Build Infrastructure<br/>Makefiles & Configs"]
  DOCS["Standardized<br/>Documentation"]
  
  PSSP -- "Port code" --> PORT
  PORT --> UART
  PORT --> MAC
  UART --> BUILD
  MAC --> BUILD
  BUILD --> DOCS
Loading

Grey Divider

File Changes

1. academy/uart/uart_loopback/firmware/main.c ✨ Enhancement +161/-0

PRU UART loopback firmware implementation

• New PRU UART loopback firmware implementation in C for AM62x
• Initializes UART at 115200 baud with FIFO configuration and loopback mode
• Sends "Hello!" message through UART and receives it back via loopback
• Includes detailed comments on UART register configuration and AM335x TRM references

academy/uart/uart_loopback/firmware/main.c


2. academy/mac/mac_c/firmware/main.c ✨ Enhancement +97/-0

PRU MAC example firmware in C

• New MAC (Multiply-Accumulate) example firmware in C for PRU cores
• Performs 256 MAC operations on dummy data stored in PRU data memory
• Demonstrates use of volatile registers and memory allocation patterns
• Includes comments on data RAM sizing and stack configuration

academy/mac/mac_c/firmware/main.c


3. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/linker.cmd ⚙️ Configuration changes +100/-0

AM64x PRU1 linker configuration file

• Linker command file for AM64x PRU1 core with C compiler support
• Defines memory map for PRU instruction RAM, data RAM, shared memory, and peripherals
• Allocates sections (.text, .bss, .data, etc.) to appropriate memory regions
• Includes CREGISTER mappings for internal peripherals and external regions

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/linker.cmd


View more (42)
4. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/linker.cmd ⚙️ Configuration changes +99/-0

AM64x PRU0 linker configuration file

• Linker command file for AM64x PRU0 core with C compiler support
• Defines memory map for PRU instruction RAM, data RAM, shared memory, and peripherals
• Allocates sections (.text, .bss, .data, etc.) to appropriate memory regions
• Includes CREGISTER mappings for internal peripherals and external regions

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/linker.cmd


5. academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd ⚙️ Configuration changes +90/-0

AM62x PRU0 linker configuration file

• Linker command file for AM62x PRU0 core with C compiler support
• Defines memory map for 16KB instruction RAM, 8KB data RAM, and 32KB shared memory
• Allocates sections (.text, .bss, .data, etc.) to appropriate memory regions
• Includes CREGISTER mappings for internal peripherals and external regions

academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd


6. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd ⚙️ Configuration changes +90/-0

AM62x PRU0 linker configuration file

• Linker command file for AM62x PRU0 core with C compiler support
• Defines memory map for 16KB instruction RAM, 8KB data RAM, and 32KB shared memory
• Allocates sections (.text, .bss, .data, etc.) to appropriate memory regions
• Includes CREGISTER mappings for internal peripherals and external regions

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd


7. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/linker.cmd ⚙️ Configuration changes +90/-0

AM62x PRU1 linker configuration file

• Linker command file for AM62x PRU1 core with C compiler support
• Defines memory map for 16KB instruction RAM, 8KB data RAM, and 32KB shared memory
• Allocates sections (.text, .bss, .data, etc.) to appropriate memory regions
• Includes CREGISTER mappings for internal peripherals and external regions

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/linker.cmd


8. academy/getting_started_labs/c_and_assembly/solution/readme.md 📝 Documentation +24/-31

Streamlined getting started lab README

• Simplified README structure with clearer introduction and supported combinations
• Replaced detailed CCS/makefile build instructions with references to PRU Academy labs
• Added "Validated HW & SW" table with TODO placeholders for processor/hardware/software info
• Removed verbose links to MCU+ SDK documentation

academy/getting_started_labs/c_and_assembly/solution/readme.md


9. academy/getting_started_labs/c_and_inline_assembly/solution/readme.md 📝 Documentation +23/-29

Streamlined getting started lab README

• Simplified README structure with clearer introduction and supported combinations
• Replaced detailed CCS/makefile build instructions with references to PRU Academy labs
• Added "Validated HW & SW" table with TODO placeholders for processor/hardware/software info
• Removed verbose links to MCU+ SDK documentation

academy/getting_started_labs/c_and_inline_assembly/solution/readme.md


10. academy/getting_started_labs/assembly_code/solution/readme.md 📝 Documentation +24/-30

Streamlined getting started lab README

• Simplified README structure with clearer introduction and supported combinations
• Replaced detailed CCS/makefile build instructions with references to PRU Academy labs
• Added "Validated HW & SW" table with TODO placeholders for processor/hardware/software info
• Removed verbose links to MCU+ SDK documentation

academy/getting_started_labs/assembly_code/solution/readme.md


11. academy/getting_started_labs/c_code/solution/readme.md 📝 Documentation +23/-30

Streamlined getting started lab README

• Simplified README structure with clearer introduction and supported combinations
• Replaced detailed CCS/makefile build instructions with references to PRU Academy labs
• Added "Validated HW & SW" table with TODO placeholders for processor/hardware/software info
• Removed verbose links to MCU+ SDK documentation

academy/getting_started_labs/c_code/solution/readme.md


12. examples/empty/readme.md 📝 Documentation +23/-28

Streamlined empty example README

• Simplified README with clearer structure and supported combinations reference
• Replaced detailed CCS/makefile build instructions with reference to PRU Academy labs
• Added "Validated HW & SW" table with TODO placeholders for processor/hardware/software info
• Added "Overview" section with reference to project creation documentation

examples/empty/readme.md


13. examples/empty_c/readme.md 📝 Documentation +21/-27

Streamlined empty C example README

• Simplified README with clearer structure and supported combinations reference
• Replaced detailed CCS/makefile build instructions with reference to PRU Academy labs
• Added "Validated HW & SW" table with TODO placeholders for processor/hardware/software info
• Added "Overview" section with reference to project creation documentation

examples/empty_c/readme.md


14. examples/spi_loopback/readme.md 📝 Documentation +31/-25

Updated SPI loopback example README formatting

• Fixed markdown formatting for section headers and tables
• Added "Supported Combinations" and "Validated HW & SW" sections with reference structure
• Improved table formatting consistency throughout the document
• Added hardware/software validation table with TODO placeholders

examples/spi_loopback/readme.md


15. examples/LCD_interface/readme.md 📝 Documentation +36/-8

Enhanced LCD interface example README

• Added "Introduction", "Supported Combinations", and "Validated HW & SW" sections
• Improved formatting and clarity of "How to Run" section with numbered steps
• Added reference to supported processors per-project documentation
• Improved readability with better section organization and line breaks

examples/LCD_interface/readme.md


16. academy/mac/mac_c/makefile ⚙️ Configuration changes +106/-0

MAC C project makefile

• New makefile for MAC C project supporting AM62x and AM64x processors
• Implements build targets for PRU firmware compilation with device-specific paths
• Includes prebuild checks for processor support and dependency validation
• Provides separate targets for PRU firmware and host code builds

academy/mac/mac_c/makefile


17. academy/uart/uart_loopback/makefile ⚙️ Configuration changes +100/-0

UART loopback project makefile

• New makefile for UART loopback project supporting AM62x processor
• Implements build targets for PRU firmware compilation with device-specific paths
• Includes prebuild checks for processor support and dependency validation
• Provides separate targets for PRU firmware and host code builds

academy/uart/uart_loopback/makefile


18. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/example.projectspec ⚙️ Configuration changes +83/-0

AM64x PRU0 MAC C project specification

• CCS project specification for MAC C firmware on AM64x PRU0 core
• Defines compiler and linker build options for PRU C compilation
• Includes post-build step to generate firmware header file using hexpru
• Specifies project configuration for Debug and Release builds

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/example.projectspec


19. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/example.projectspec ⚙️ Configuration changes +83/-0

AM64x PRU1 MAC C project specification

• CCS project specification for MAC C firmware on AM64x PRU1 core
• Defines compiler and linker build options for PRU C compilation
• Includes post-build step to generate firmware header file using hexpru
• Specifies project configuration for Debug and Release builds

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/example.projectspec


20. examples/pru_emif/readme.md 📝 Documentation +13/-0

Enhanced PRU EMIF example README

• Added "Supported Combinations" section with reference to examples/readme.md
• Added "Validated HW & SW" table with AM243x hardware and software version information
• Improved documentation structure with consistent section organization

examples/pru_emif/readme.md


21. academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/example.projectspec ⚙️ Configuration changes +81/-0

UART loopback CCS project specification for AM62x-SK

• Added new CCS project specification file for UART loopback firmware on AM62x-SK
• Configured for PRU0 core with TI toolchain v2.3.3
• Includes compiler and linker build options for PRU compilation
• References main.c and linker.cmd files for the project

academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/example.projectspec


22. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/example.projectspec ⚙️ Configuration changes +81/-0

MAC C CCS project specification for AM62x-SK PRU0

• Added new CCS project specification for MAC C firmware on AM62x-SK PRU0
• Configured with TI toolchain v2.3.3 targeting PRU_ICSS_PRU_0
• Includes standard compiler and linker options for PRU C projects
• Defines project structure with main.c and linker.cmd references

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/example.projectspec


23. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/example.projectspec ⚙️ Configuration changes +81/-0

MAC C CCS project specification for AM62x-SK PRU1

• Added new CCS project specification for MAC C firmware on AM62x-SK PRU1
• Configured with TI toolchain v2.3.3 targeting PRU_ICSS_PRU_1
• Includes compiler and linker build options specific to PRU1 core
• References main.c and linker.cmd for project build

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/example.projectspec


24. examples/custom_frequency_generator/README.md 📝 Documentation +19/-3

Updated README with standard documentation sections

• Added Introduction section with project overview
• Added Supported Combinations section with reference to parent readme
• Added Validated HW & SW section with hardware/software version table
• Fixed trailing whitespace and added newline at end of file

examples/custom_frequency_generator/README.md


25. academy/mac/mac_c/README.md 📝 Documentation +52/-0

New MAC C example documentation and running guide

• Created new README for MAC C example demonstrating PRU MAC hardware accelerator
• Includes Introduction, Overview, and Supported Combinations sections
• Documents validated hardware (SK-AM62B, TMDS64EVM) and software versions
• Provides running and validation steps with expected result calculation

academy/mac/mac_c/README.md


26. examples/logic_scope/README.md 📝 Documentation +17/-1

Updated README with standard documentation sections

• Added Introduction section describing the logic scope functionality
• Added Supported Combinations section with reference to parent readme
• Added Validated HW & SW section with hardware/software version table
• Fixed trailing newline at end of file

examples/logic_scope/README.md


27. academy/mac/mac_multiply/readme.md 📝 Documentation +22/-11

Standardized README format and added validation information

• Removed duplicate Overview section header
• Changed Supported Combinations header from h1 to h2 format
• Added Validated HW & SW section with hardware/software version table
• Replaced old parameter table with reference to parent readme and new Steps to Run section

academy/mac/mac_multiply/readme.md


28. academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile ⚙️ Configuration changes +50/-0

UART loopback firmware makefile for AM62x-SK PRU0

• Added new makefile for UART loopback firmware build on AM62x-SK
• Configured for PRU version 3 (PRUSS, PRU-ICSS) targeting AM62x device
• Includes standard build configuration with OPEN_PRU_PATH and imports
• Defines output name, hex array configuration, and file paths

academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile


29. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile ⚙️ Configuration changes +50/-0

MAC C firmware makefile for AM62x-SK PRU0

• Added new makefile for MAC C firmware build on AM62x-SK PRU0
• Configured for PRU version 3 targeting AM62x device
• Includes standard OpenPRU build infrastructure and file paths
• Defines output name and hex array configuration for PRU0

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile


30. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/makefile ⚙️ Configuration changes +50/-0

MAC C firmware makefile for AM62x-SK PRU1

• Added new makefile for MAC C firmware build on AM62x-SK PRU1
• Configured for PRU version 3 targeting AM62x device
• Includes standard OpenPRU build infrastructure with PRU1-specific configuration
• Defines output name and hex array configuration for PRU1

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/makefile


31. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/makefile ⚙️ Configuration changes +48/-0

MAC C firmware makefile for AM64x-EVM PRU0

• Added new makefile for MAC C firmware build on AM64x-EVM PRU0
• Configured for PRU version 4 (PRU_ICSSG) targeting AM64x device
• Includes standard OpenPRU build infrastructure and file paths
• Defines output name and hex array configuration for PRU0

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/makefile


32. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/makefile ⚙️ Configuration changes +48/-0

MAC C firmware makefile for AM64x-EVM PRU1

• Added new makefile for MAC C firmware build on AM64x-EVM PRU1
• Configured for PRU version 4 (PRU_ICSSG) targeting AM64x device
• Includes standard OpenPRU build infrastructure with PRU1-specific configuration
• Defines output name and hex array configuration for PRU1

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/makefile


33. academy/uart/uart_loopback/README.md 📝 Documentation +47/-0

New UART loopback example documentation and running guide

• Created new README for UART loopback example demonstrating PRU UART peripheral
• Includes Introduction, Overview, Hardware, and Validated HW & SW sections
• Documents supported boards (SK-AM62B) and software versions
• Provides running and validation steps with expected buffer contents

academy/uart/uart_loopback/README.md


34. academy/crc/crc/readme.md 📝 Documentation +22/-8

Standardized README format and added validation information

• Changed Supported Combinations header from h1 to h2 format
• Replaced old parameter table with reference to parent readme
• Added Validated HW & SW section with hardware/software version table
• Added Steps to Run the Example section with register inspection instructions

academy/crc/crc/readme.md


35. academy/mac/mac/readme.md 📝 Documentation +22/-8

Standardized README format and added validation information

• Changed Supported Combinations header from h1 to h2 format
• Replaced old parameter table with reference to parent readme
• Added Validated HW & SW section with hardware/software version table
• Added Steps to Run the Example section with register inspection instructions

academy/mac/mac/readme.md


36. academy/intc/intc_mcu/readme.md 📝 Documentation +22/-8

Standardized README format and added validation information

• Changed Supported Combinations header from h1 to h2 format
• Replaced old parameter table with reference to parent readme
• Added Validated HW & SW section with hardware/software version table
• Added Steps to Run the Example section with register inspection instructions

academy/intc/intc_mcu/readme.md


37. academy/gpio/gpio_toggle/readme.md 📝 Documentation +21/-8

Standardized README format and added validation information

• Changed Supported Combinations header from h1 to h2 format
• Replaced old parameter table with reference to parent readme
• Added Validated HW & SW section with hardware/software version table
• Added Steps to Run the Example section with firmware build and hardware connection instructions

academy/gpio/gpio_toggle/readme.md


38. academy/readme.md 📝 Documentation +10/-2

Updated academy README with new projects and processor support

• Added mac/mac_c project entry describing C-based MAC module usage
• Added uart/uart_loopback project entry for UART peripheral loopback example
• Updated mac/mac and mac/mac_multiply descriptions to clarify assembly implementations
• Updated supported processors table to include new mac/mac_c and uart/uart_loopback projects

academy/readme.md


39. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/makefile_projectspec ⚙️ Configuration changes +16/-0

CCS project specification makefile for MAC C AM64x-EVM PRU0

• Added new makefile for CCS project specification build on AM64x-EVM PRU0
• Includes targets for building, cleaning, and exporting CCS projects
• Uses CCS Eclipse command-line interface for project management
• Supports Debug and Release profile configurations

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/makefile_projectspec


40. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/makefile_projectspec ⚙️ Configuration changes +16/-0

CCS project specification makefile for MAC C AM64x-EVM PRU1

• Added new makefile for CCS project specification build on AM64x-EVM PRU1
• Includes targets for building, cleaning, and exporting CCS projects
• Uses CCS Eclipse command-line interface for project management
• Supports Debug and Release profile configurations

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/makefile_projectspec


41. academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile_projectspec ⚙️ Configuration changes +16/-0

CCS project specification makefile for UART loopback AM62x-SK

• Added new makefile for CCS project specification build on AM62x-SK
• Includes targets for building, cleaning, and exporting CCS projects
• Uses CCS Eclipse command-line interface for project management
• Supports Debug and Release profile configurations

academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile_projectspec


42. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile_projectspec ⚙️ Configuration changes +16/-0

CCS project specification makefile for MAC C AM62x-SK PRU0

• Added new makefile for CCS project specification build on AM62x-SK PRU0
• Includes targets for building, cleaning, and exporting CCS projects
• Uses CCS Eclipse command-line interface for project management
• Supports Debug and Release profile configurations

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile_projectspec


43. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/makefile_projectspec ⚙️ Configuration changes +16/-0

CCS project specification makefile for MAC C AM62x-SK PRU1

• Added new makefile for CCS project specification build on AM62x-SK PRU1
• Includes targets for building, cleaning, and exporting CCS projects
• Uses CCS Eclipse command-line interface for project management
• Supports Debug and Release profile configurations

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/makefile_projectspec


44. examples/fft/README.md 📝 Documentation +15/-0

Updated README with standard documentation sections

• Added Supported Combinations section with reference to parent readme
• Added Validated HW & SW section with hardware/software version table
• Documents tested processors (am243x, am261x) and SDK versions
• Maintains existing Introduction and Overview sections

examples/fft/README.md


45. academy/makefile ⚙️ Configuration changes +2/-1

Updated academy makefile with new project directories

• Added mac/mac_c to SUBDIRS list for academy builds
• Added uart/uart_loopback to SUBDIRS list for academy builds
• Updated makefile to include new projects in build system

academy/makefile


Grey Divider

Qodo Logo

@qodo-code-review

qodo-code-review Bot commented Apr 4, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (9) 📎 Requirement gaps (1)

Context used

Grey Divider


Action required

1. Validated HW & SW TODOs 📎 Requirement gap ⚙ Maintainability
Description
Multiple project READMEs claim hardware validation but leave the tested hardware/software versions
as TODO, which does not document the actual tested SDK versions for the current changes. This can
mislead users about what environment was truly validated.
Code

academy/crc/crc/readme.md[R28-36]

+## Validated HW & SW
+
+This project was tested on hardware with these software versions:
+
+| Processor | Hardware | Software                                |
+| --------- | -------- | --------------------------------------- |
+| am261x    | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am263px   | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am263x    | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
Evidence
PR Compliance ID 1 requires each project README to list the SDK version(s) actually built and tested
on hardware. The updated READMEs add a validation section but leave the required version fields as
TODO (for example, MCU PLUS SDK TODO, OpenPRU TODO).

Project README lists tested SDK versions
academy/crc/crc/readme.md[28-36]
academy/getting_started_labs/c_code/solution/readme.md[13-24]
examples/fft/README.md[17-25]
examples/custom_frequency_generator/README.md[17-24]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Several project READMEs include a `Validated HW & SW` section but still contain `TODO` placeholders instead of the actual SDK/version(s) that were built and tested on real hardware.
## Issue Context
Compliance requires documenting the *actual* tested SDK versions for the current changes; placeholders are not acceptable.
## Fix Focus Areas
- academy/crc/crc/readme.md[28-36]
- academy/getting_started_labs/c_code/solution/readme.md[13-24]
- examples/fft/README.md[17-25]
- examples/custom_frequency_generator/README.md[17-24]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. OPEN_PRU_PATH CWD-dependent 📘 Rule violation ☼ Reliability
Description
The new makefiles derive OPEN_PRU_PATH using $(abspath ../../...), which depends on the caller's
working directory and can break includes when invoked from other locations. This violates the
portability requirement for computing repo root relative to the makefile directory.
Code

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile[R1-2]

+export OPEN_PRU_PATH?=$(abspath ../../../../../../..)
+include $(OPEN_PRU_PATH)/imports.mak
Evidence
PR Compliance ID 25 requires deriving the repository root from the makefile's directory (for example
via $(lastword $(MAKEFILE_LIST))). The added makefile sets OPEN_PRU_PATH using a relative
../../... expression wrapped in abspath, which is CWD-dependent.

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile[1-2]
Best Practice: Learned patterns

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`OPEN_PRU_PATH` is computed using `$(abspath ../../...)`, which can break if the makefile is invoked from a different working directory.
## Issue Context
Compliance requires computing repo-root paths relative to the current makefile location, not the invocation directory.
## Fix Focus Areas
- academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile[1-2]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. UART while loops unbounded 📘 Rule violation ☼ Reliability
Description
The new UART loopback firmware uses busy-wait while loops with no timeout, which can hang
indefinitely if UART state never changes. This violates the requirement that loops have explicit
termination conditions for deterministic PRU firmware.
Code

academy/uart/uart_loopback/firmware/main.c[R143-151]

+		/* Because we are doing loopback, wait until LSR.DR == 1
+		 * indicating there is data in the RX FIFO */
+		while ((CT_UART.LSR1_bit.DR == 0x0));
+
+		/* Read the value from RBR */
+		buffer[cnt] = CT_UART.RBR_bit.DATA;
+
+		/* Wait for TX FIFO to be empty */
+		while (!((CT_UART.IIR_bit.INTID) == 0x1));
Evidence
PR Compliance ID 4 requires loops to have explicit termination conditions/bounds. The new code polls
hardware status in while (...) ; loops without any timeout or max-iteration bound, creating a
potential infinite loop.

academy/uart/uart_loopback/firmware/main.c[143-151]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
UART polling uses unbounded busy-wait loops (`while (...) ;`) with no timeout.
## Issue Context
On PRU firmware, unbounded loops can break determinism and hang the core if the peripheral never reaches the expected state.
## Fix Focus Areas
- academy/uart/uart_loopback/firmware/main.c[143-151]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


View more (7)
4. Docs use backslashes 📘 Rule violation ⚙ Maintainability
Description
Documentation includes Windows-style backslashes in a path example, which is not portable and
violates the requirement to use forward slashes for paths/links. This can confuse users and may
break copy/paste on non-Windows environments.
Code

examples/LCD_interface/readme.md[R57-60]

+1. Clocking, pin-mux configuration and interrupts are specified graphically using
+sysconfig tool and example.syscfg file located in folder
+"\path\to\open-pru\examples\LCD_interface\am243x-lp\r5fss0-0_freertos".
+
Evidence
PR Compliance ID 27 requires paths/links to be portable and use forward slashes. The updated README
includes a backslash-delimited path string.

examples/LCD_interface/readme.md[57-60]
Best Practice: Learned patterns

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The README uses Windows-style backslashes in an example path.
## Issue Context
Documentation paths must be portable across environments and use forward slashes.
## Fix Focus Areas
- examples/LCD_interface/readme.md[57-60]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


5. i.e. used 📘 Rule violation ⚙ Maintainability
Description
Documentation uses i.e. instead of the prescribed terminology that is. This violates the
required documentation terminology standard.
Code

examples/spi_loopback/readme.md[10]

+All cycle level frequency calculations are based on a 333MHz PRU System clock, which gives 3ns per instruction cycle, i.e $t_{f} = 3ns$
Evidence
PR Compliance ID 18 requires using that is instead of i.e.. The updated SPI loopback README
includes i.e in the timing description line.

examples/spi_loopback/readme.md[10-10]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The SPI loopback README uses `i.e.` which is disallowed terminology.
## Issue Context
Docs/comments must use prescribed terminology (`that is`, `for example`, `and so on`).
## Fix Focus Areas
- examples/spi_loopback/readme.md[10-10]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


6. TODO markers in READMEs 📘 Rule violation ⚙ Maintainability
Description
New documentation introduces multiple TODO placeholders, which violates the requirement to use
only FIXME markers for pending work. This reduces searchability/standardization of pending-work
annotations across the repo.
Code

academy/getting_started_labs/assembly_code/solution/readme.md[R18-25]

+| Processor | Hardware | Software                                |
+| --------- | -------- | --------------------------------------- |
+| am243x    | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am261x    | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am263x    | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am263px   | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am62x     | TODO     | OpenPRU TODO                            |
+| am64x     | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
Evidence
PR Compliance ID 25 forbids TODO markers and requires using only FIXME for pending work. The
added/updated READMEs include multiple TODO strings in the new “Validated HW & SW” tables.

academy/getting_started_labs/assembly_code/solution/readme.md[18-25]
academy/crc/crc/readme.md[32-36]
examples/empty/readme.md[20-25]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
New/updated documentation contains `TODO` placeholders, but the repository standard requires using only `FIXME` markers for pending work.
## Issue Context
Several “Validated HW & SW” tables were added with placeholder values like `TODO` and `MCU PLUS SDK TODO`.
## Fix Focus Areas
- academy/getting_started_labs/assembly_code/solution/readme.md[18-25]
- academy/crc/crc/readme.md[32-36]
- examples/empty/readme.md[20-25]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


7. linker.cmd missing TI copyright 📘 Rule violation ⚙ Maintainability
Description
New linker command files include a filename header but omit the required Texas Instruments copyright
statement. This creates a licensing/traceability compliance gap for newly added source files.
Code

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd[R1-6]

+/*
+ * AM62x_PRU0.cmd
+ *
+ * Example Linker command file for linking programs built with the C compiler
+ * on AM62x PRU0 cores
+ */
Evidence
PR Compliance ID 20 requires new source files to include a file-name header and a TI copyright
statement. The added linker.cmd files have a brief header but no TI copyright statement.

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd[1-6]
academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd[1-6]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
New `linker.cmd` files lack the required Texas Instruments copyright statement.
## Issue Context
These files were added as part of new example ports and should carry the standard TI copyright header.
## Fix Focus Areas
- academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd[1-6]
- academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd[1-6]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


8. main.c header missing filename 📘 Rule violation ⚙ Maintainability
Description
New C firmware files include a TI copyright/license block but do not include a file-name header as
required. This reduces traceability and violates the mandated header format.
Code

academy/uart/uart_loopback/firmware/main.c[R1-4]

+/*
+ * Copyright (C) 2024-2024 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ *
Evidence
PR Compliance ID 20 requires a header that denotes the file name plus the TI copyright statement.
The new main.c files start with a copyright/license block but do not denote the file name in the
header.

academy/uart/uart_loopback/firmware/main.c[1-4]
academy/mac/mac_c/firmware/main.c[1-4]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
New C sources include the TI license but not a file-name header line.
## Issue Context
The compliance checklist requires both (1) a file name header and (2) a TI copyright statement.
## Fix Focus Areas
- academy/uart/uart_loopback/firmware/main.c[1-4]
- academy/mac/mac_c/firmware/main.c[1-4]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


9. Tabs in main.c 📘 Rule violation ⚙ Maintainability
Description
New C source files include tab characters in the header/comment formatting, violating the whitespace
standard that disallows tabs. This can lead to inconsistent formatting across tooling and editors.
Code

academy/mac/mac_c/firmware/main.c[R8-14]

+ *
+ *	* Redistributions of source code must retain the above copyright
+ *	  notice, this list of conditions and the following disclaimer.
+ *
+ *	* Redistributions in binary form must reproduce the above copyright
+ *	  notice, this list of conditions and the following disclaimer in the
+ *	  documentation and/or other materials provided with the
Evidence
PR Compliance ID 19 requires using spaces (no tabs) for indentation/whitespace. The newly added
firmware C files contain tab characters (for example in the license bullet formatting).

academy/mac/mac_c/firmware/main.c[8-15]
academy/uart/uart_loopback/firmware/main.c[8-15]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Tab characters are present in new C source files, violating the whitespace standard.
## Issue Context
The standard requires spaces-only indentation/whitespace for source and documentation.
## Fix Focus Areas
- academy/mac/mac_c/firmware/main.c[8-15]
- academy/uart/uart_loopback/firmware/main.c[8-15]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


10. Broken AM263x link 🐞 Bug ≡ Correctness
Description
README.md’s AM263x MCU+ SDK documentation link is missing the closing ')', breaking the markdown
link rendering for that bullet (and potentially affecting subsequent markdown parsing in some
renderers).
Code

README.md[R123-127]

+  - [AM64x](https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/latest/exports/docs/api_guide_am64x/CCS_PROJECTS_PAGE.html)
+  - [AM243x](https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/latest/exports/docs/api_guide_am243x/CCS_PROJECTS_PAGE.html)
+  - [AM261x](https://software-dl.ti.com/mcu-plus-sdk/esd/AM261X/latest/exports/docs/api_guide_am261x/CCS_PROJECTS_PAGE.html)
+  - [AM263Px](https://software-dl.ti.com/mcu-plus-sdk/esd/AM263PX/latest/exports/docs/api_guide_am263px/CCS_PROJECTS_PAGE.html)
+  - [AM263x](https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/CCS_PROJECTS_PAGE.html
Evidence
The AM263x link line is syntactically incomplete (no closing parenthesis), unlike the other links in
the same list, so it will not render as a clickable link.

README.md[121-129]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The AM263x markdown link in the root README is missing a closing `)`.
### Issue Context
This breaks link rendering in the main repository README.
### Fix Focus Areas
- README.md[123-127]
### Suggested change
Add the missing `)` at the end of the AM263x link so it matches the other bullets.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

11. Trailing whitespace in README 📘 Rule violation ⚙ Maintainability
Description
A newly added documentation line contains trailing whitespace, violating the documentation style
requirement to remove trailing whitespace. This can cause noisy diffs and formatting
inconsistencies.
Code

README.md[122]

+  MCU+ SDK documentation: **Developer Guides > Using SDK with CCS Projects** 
Evidence
PR Compliance ID 30 requires removing trailing whitespace. The updated root README.md includes at
least one added line that ends with a trailing space.

README.md[121-123]
Best Practice: Learned patterns

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Trailing whitespace exists on an updated README line.
## Issue Context
Trailing whitespace causes unnecessary diffs and violates the repo documentation style standard.
## Fix Focus Areas
- README.md[121-123]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


12. __R31 declared as uint8 🐞 Bug ≡ Correctness
Description
academy/mac/mac_c/firmware/main.c declares the PRU register variable __R31 as uint8_t, which
only represents the low 8 bits; if used (as implied by the comment), this would truncate
reads/writes and break any logic relying on higher R31 bits (e.g., interrupt flag bits).
Code

academy/mac/mac_c/firmware/main.c[R41-42]

+/* R31 is used to generate the "I'm done" back to the ARM */
+volatile register uint8_t __R31;
Evidence
The new MAC C firmware declares __R31 as an 8-bit type, while other PRU firmware in this repo
declares it as 32-bit and uses it with 32-bit bitmasks (e.g., HOST_INT), demonstrating that higher
bits are expected to be representable.

academy/mac/mac_c/firmware/main.c[41-43]
examples/rpmsg_echo_linux/firmware/main.c[14-15]
examples/rpmsg_echo_linux/firmware/main.c[40-44]
examples/rpmsg_echo_linux/firmware/main.c[102-105]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`__R31` is declared as `volatile register uint8_t __R31;` which only models the low 8 bits of the PRU R31 register.
### Issue Context
Other PRU firmware in this repository declares `__R31` as a 32-bit type and uses bitmasks that can rely on higher bits.
### Fix Focus Areas
- academy/mac/mac_c/firmware/main.c[41-43]
### Suggested change
Change the declaration to a 32-bit type, e.g.:

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Previous review results

Review updated until commit c1493d3

Results up to commit 622958a


Details

🐞 Bugs (2)   📘 Rule violations (9)   📎 Requirement gaps (1)   🎨 UX Issues (0)
🐞\ ≡ Correctness (2)
📘\ ☼ Reliability (2) ⚙ Maintainability (7) ⭐ New (4)
📎\ ⚙ Maintainability (1) ⭐ New (1)

Action required
1. Validated HW & SW TODOs 📎
Description
Multiple project READMEs claim hardware validation but leave the tested hardware/software versions
as TODO, which does not document the actual tested SDK versions for the current changes. This can
mislead users about what environment was truly validated.
Code

academy/crc/crc/readme.md[R28-36]

+## Validated HW & SW
+
+This project was tested on hardware with these software versions:
+
+| Processor | Hardware | Software                                |
+| --------- | -------- | --------------------------------------- |
+| am261x    | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am263px   | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am263x    | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
Evidence
PR Compliance ID 1 requires each project README to list the SDK version(s) actually built and tested
on hardware. The updated READMEs add a validation section but leave the required version fields as
TODO (for example, MCU PLUS SDK TODO, OpenPRU TODO).

Project README lists tested SDK versions
academy/crc/crc/readme.md[28-36]
academy/getting_started_labs/c_code/solution/readme.md[13-24]
examples/fft/README.md[17-25]
examples/custom_frequency_generator/README.md[17-24]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Several project READMEs include a `Validated HW & SW` section but still contain `TODO` placeholders instead of the actual SDK/version(s) that were built and tested on real hardware.

## Issue Context
Compliance requires documenting the *actual* tested SDK versions for the current changes; placeholders are not acceptable.

## Fix Focus Areas
- academy/crc/crc/readme.md[28-36]
- academy/getting_started_labs/c_code/solution/readme.md[13-24]
- examples/fft/README.md[17-25]
- examples/custom_frequency_generator/README.md[17-24]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. OPEN_PRU_PATH CWD-dependent 📘
Description
The new makefiles derive OPEN_PRU_PATH using $(abspath ../../...), which depends on the caller's
working directory and can break includes when invoked from other locations. This violates the
portability requirement for computing repo root relative to the makefile directory.
Code

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile[R1-2]

+export OPEN_PRU_PATH?=$(abspath ../../../../../../..)
+include $(OPEN_PRU_PATH)/imports.mak
Evidence
PR Compliance ID 25 requires deriving the repository root from the makefile's directory (for example
via $(lastword $(MAKEFILE_LIST))). The added makefile sets OPEN_PRU_PATH using a relative
../../... expression wrapped in abspath, which is CWD-dependent.

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile[1-2]
Best Practice: Learned patterns

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`OPEN_PRU_PATH` is computed using `$(abspath ../../...)`, which can break if the makefile is invoked from a different working directory.

## Issue Context
Compliance requires computing repo-root paths relative to the current makefile location, not the invocation directory.

## Fix Focus Areas
- academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile[1-2]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. UART while loops unbounded 📘
Description
The new UART loopback firmware uses busy-wait while loops with no timeout, which can hang
indefinitely if UART state never changes. This violates the requirement that loops have explicit
termination conditions for deterministic PRU firmware.
Code

academy/uart/uart_loopback/firmware/main.c[R143-151]

+		/* Because we are doing loopback, wait until LSR.DR == 1
+		 * indicating there is data in the RX FIFO */
+		while ((CT_UART.LSR1_bit.DR == 0x0));
+
+		/* Read the value from RBR */
+		buffer[cnt] = CT_UART.RBR_bit.DATA;
+
+		/* Wait for TX FIFO to be empty */
+		while (!((CT_UART.IIR_bit.INTID) == 0x1));
Evidence
PR Compliance ID 4 requires loops to have explicit termination conditions/bounds. The new code polls
hardware status in while (...) ; loops without any timeout or max-iteration bound, creating a
potential infinite loop.

academy/uart/uart_loopback/firmware/main.c[143-151]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
UART polling uses unbounded busy-wait loops (`while (...) ;`) with no timeout.

## Issue Context
On PRU firmware, unbounded loops can break determinism and hang the core if the peripheral never reaches the expected state.

## Fix Focus Areas
- academy/uart/uart_loopback/firmware/main.c[143-151]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


View more (7)
4. Docs use backslashes 📘
Description
Documentation includes Windows-style backslashes in a path example, which is not portable and
violates the requirement to use forward slashes for paths/links. This can confuse users and may
break copy/paste on non-Windows environments.
Code

examples/LCD_interface/readme.md[R57-60]

+1. Clocking, pin-mux configuration and interrupts are specified graphically using
+sysconfig tool and example.syscfg file located in folder
+"\path\to\open-pru\examples\LCD_interface\am243x-lp\r5fss0-0_freertos".
+
Evidence
PR Compliance ID 27 requires paths/links to be portable and use forward slashes. The updated README
includes a backslash-delimited path string.

examples/LCD_interface/readme.md[57-60]
Best Practice: Learned patterns

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The README uses Windows-style backslashes in an example path.

## Issue Context
Documentation paths must be portable across environments and use forward slashes.

## Fix Focus Areas
- examples/LCD_interface/readme.md[57-60]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


5. i.e. used 📘
Description
Documentation uses i.e. instead of the prescribed terminology that is. This violates the
required documentation terminology standard.
Code

examples/spi_loopback/readme.md[10]

+All cycle level frequency calculations are based on a 333MHz PRU System clock, which gives 3ns per instruction cycle, i.e $t_{f} = 3ns$
Evidence
PR Compliance ID 18 requires using that is instead of i.e.. The updated SPI loopback README
includes i.e in the timing description line.

examples/spi_loopback/readme.md[10-10]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The SPI loopback README uses `i.e.` which is disallowed terminology.

## Issue Context
Docs/comments must use prescribed terminology (`that is`, `for example`, `and so on`).

## Fix Focus Areas
- examples/spi_loopback/readme.md[10-10]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


6. TODO markers in READMEs 📘
Description
New documentation introduces multiple TODO placeholders, which violates the requirement to use
only FIXME markers for pending work. This reduces searchability/standardization of pending-work
annotations across the repo.
Code

academy/getting_started_labs/assembly_code/solution/readme.md[R18-25]

+| Processor | Hardware | Software                                |
+| --------- | -------- | --------------------------------------- |
+| am243x    | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am261x    | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am263x    | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am263px   | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am62x     | TODO     | OpenPRU TODO                            |
+| am64x     | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
Evidence
PR Compliance ID 25 forbids TODO markers and requires using only FIXME for pending work. The
added/updated READMEs include multiple TODO strings in the new “Validated HW & SW” tables.

academy/getting_started_labs/assembly_code/solution/readme.md[18-25]
academy/crc/crc/readme.md[32-36]
examples/empty/readme.md[20-25]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
New/updated documentation contains `TODO` placeholders, but the repository standard requires using only `FIXME` markers for pending work.
## Issue Context
Several “Validated HW & SW” tables were added with placeholder values like `TODO` and `MCU PLUS SDK TODO`.
## Fix Focus Areas
- academy/getting_started_labs/assembly_code/solution/readme.md[18-25]
- academy/crc/crc/readme.md[32-36]
- examples/empty/readme.md[20-25]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


7. linker.cmd missing TI copyright 📘
Description
New linker command files include a filename header but omit the required Texas Instruments copyright
statement. This creates a licensing/traceability compliance gap for newly added source files.
Code

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd[R1-6]

+/*
+ * AM62x_PRU0.cmd
+ *
+ * Example Linker command file for linking programs built with the C compiler
+ * on AM62x PRU0 cores
+ */
Evidence
PR Compliance ID 20 requires new source files to include a file-name header and a TI copyright
statement. The added linker.cmd files have a brief header but no TI copyright statement.

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd[1-6]
academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd[1-6]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
New `linker.cmd` files lack the required Texas Instruments copyright statement.
## Issue Context
These files were added as part of new example ports and should carry the standard TI copyright header.
## Fix Focus Areas
- academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd[1-6]
- academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd[1-6]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


8. main.c header missing filename 📘
Description
New C firmware files include a TI copyright/license block but do not include a file-name header as
required. This reduces traceability and violates the mandated header format.
Code

academy/uart/uart_loopback/firmware/main.c[R1-4]

+/*
+ * Copyright (C) 2024-2024 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ *
Evidence
PR Compliance ID 20 requires a header that denotes the file name plus the TI copyright statement.
The new main.c files start with a copyright/license block but do not denote the file name in the
header.

academy/uart/uart_loopback/firmware/main.c[1-4]
academy/mac/mac_c/firmware/main.c[1-4]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
New C sources include the TI license but not a file-name header line.
## Issue Context
The compliance checklist requires both (1) a file name header and (2) a TI copyright statement.
## Fix Focus Areas
- academy/uart/uart_loopback/firmware/main.c[1-4]
- academy/mac/mac_c/firmware/main.c[1-4]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


9. Tabs in main.c 📘
Description
New C source files include tab characters in the header/comment formatting, violating the whitespace
standard that disallows tabs. This can lead to inconsistent formatting across tooling and editors.
Code

academy/mac/mac_c/firmware/main.c[R8-14]

+ *
+ *	* Redistributions of source code must retain the above copyright
+ *	  notice, this list of conditions and the following disclaimer.
+ *
+ *	* Redistributions in binary form must reproduce the above copyright
+ *	  notice, this list of conditions and the following disclaimer in the
+ *	  documentation and/or other materials provided with the
Evidence
PR Compliance ID 19 requires using spaces (no tabs) for indentation/whitespace. The newly added
firmware C files contain tab characters (for example in the license bullet formatting).

academy/mac/mac_c/firmware/main.c[8-15]
academy/uart/uart_loopback/firmware/main.c[8-15]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Tab characters are present in new C source files, violating the whitespace standard.
## Issue Context
The standard requires spaces-only indentation/whitespace for source and documentation.
## Fix Focus Areas
- academy/mac/mac_c/firmware/main.c[8-15]
- academy/uart/uart_loopback/firmware/main.c[8-15]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


10. Broken AM263x link 🐞
Description
README.md’s AM263x MCU+ SDK documentation link is missing the closing ')', breaking the markdown
link rendering for that bullet (and potentially affecting subsequent markdown parsing in some
renderers).
Code

README.md[R123-127]

+  - [AM64x](https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/latest/exports/docs/api_guide_am64x/CCS_PROJECTS_PAGE.html)
+  - [AM243x](https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/latest/exports/docs/api_guide_am243x/CCS_PROJECTS_PAGE.html)
+  - [AM261x](https://software-dl.ti.com/mcu-plus-sdk/esd/AM261X/latest/exports/docs/api_guide_am261x/CCS_PROJECTS_PAGE.html)
+  - [AM263Px](https://software-dl.ti.com/mcu-plus-sdk/esd/AM263PX/latest/exports/docs/api_guide_am263px/CCS_PROJECTS_PAGE.html)
+  - [AM263x](https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/CCS_PROJECTS_PAGE.html
Evidence
The AM263x link line is syntactically incomplete (no closing parenthesis), unlike the other links in
the same list, so it will not render as a clickable link.

README.md[121-129]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The AM263x markdown link in the root README is missing a closing `)`.
### Issue Context
This breaks link rendering in the main repository README.
### Fix Focus Areas
- README.md[123-127]
### Suggested change
Add the missing `)` at the end of the AM263x link so it matches the other bullets.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended
11. Trailing whitespace in README 📘
Description
A newly added documentation line contains trailing whitespace, violating the documentation style
requirement to remove trailing whitespace. This can cause noisy diffs and formatting
inconsistencies.
Code

README.md[122]

+  MCU+ SDK documentation: **Developer Guides > Using SDK with CCS Projects** 
Evidence
PR Compliance ID 30 requires removing trailing whitespace. The updated root README.md includes at
least one added line that ends with a trailing space.

README.md[121-123]
Best Practice: Learned patterns

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Trailing whitespace exists on an updated README line.
## Issue Context
Trailing whitespace causes unnecessary diffs and violates the repo documentation style standard.
## Fix Focus Areas
- README.md[121-123]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


12. __R31 declared as uint8 🐞
Description
academy/mac/mac_c/firmware/main.c declares the PRU register variable __R31 as uint8_t, which
only represents the low 8 bits; if used (as implied by the comment), this would truncate
reads/writes and break any logic relying on higher R31 bits (e.g., interrupt flag bits).
Code

academy/mac/mac_c/firmware/main.c[R41-42]

+/* R31 is used to generate the "I'm done" back to the ARM */
+volatile register uint8_t __R31;
Evidence
The new MAC C firmware declares __R31 as an 8-bit type, while other PRU firmware in this repo
declares it as 32-bit and uses it with 32-bit bitmasks (e.g., HOST_INT), demonstrating that higher
bits are expected to be representable.

academy/mac/mac_c/firmware/main.c[41-43]
examples/rpmsg_echo_linux/firmware/main.c[14-15]
examples/rpmsg_echo_linux/firmware/main.c[40-44]
examples/rpmsg_echo_linux/firmware/main.c[102-105]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`__R31` is declared as `volatile register uint8_t __R31;` which only models the low 8 bits of the PRU R31 register.
### Issue Context
Other PRU firmware in this repository declares `__R31` as a 32-bit type and uses bitmasks that can rely on higher bits.
### Fix Focus Areas
- academy/mac/mac_c/firmware/main.c[41-43]
### Suggested change
Change the declaration to a 32-bit type, e.g.:

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


ⓘ The new review experience is currently in Beta. Learn more
Results up to commit 34e250f


🐞 Bugs (2) 📘 Rule violations (5) 📎 Requirement gaps (0) 🎨 UX Issues (0)

Grey Divider
Action required
1. TODO markers in READMEs 📘 Rule violation ⚙ Maintainability
Description
New documentation introduces multiple TODO placeholders, which violates the requirement to use
only FIXME markers for pending work. This reduces searchability/standardization of pending-work
annotations across the repo.
Code

academy/getting_started_labs/assembly_code/solution/readme.md[R18-25]

+| Processor | Hardware | Software                                |
+| --------- | -------- | --------------------------------------- |
+| am243x    | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am261x    | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am263x    | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am263px   | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
+| am62x     | TODO     | OpenPRU TODO                            |
+| am64x     | TODO     | MCU PLUS SDK TODO, OpenPRU TODO         |
Evidence
PR Compliance ID 25 forbids TODO markers and requires using only FIXME for pending work. The
added/updated READMEs include multiple TODO strings in the new “Validated HW & SW” tables.

academy/getting_started_labs/assembly_code/solution/readme.md[18-25]
academy/crc/crc/readme.md[32-36]
examples/empty/readme.md[20-25]
Best Practice: Repository guidelines

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
New/updated documentation contains `TODO` placeholders, but the repository standard requires using only `FIXME` markers for pending work.

## Issue Context
Several “Validated HW & SW” tables were added with placeholder values like `TODO` and `MCU PLUS SDK TODO`.

## Fix Focus Areas
- academy/getting_started_labs/assembly_code/solution/readme.md[18-25]
- academy/crc/crc/readme.md[32-36]
- examples/empty/readme.md[20-25]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. linker.cmd missing TI copyright 📘 Rule violation ⚙ Maintainability
Description
New linker command files include a filename header but omit the required Texas Instruments copyright
statement. This creates a licensing/traceability compliance gap for newly added source files.
Code

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd[R1-6]

+/*
+ * AM62x_PRU0.cmd
+ *
+ * Example Linker command file for linking programs built with the C compiler
+ * on AM62x PRU0 cores
+ */
Evidence
PR Compliance ID 20 requires new source files to include a file-name header and a TI copyright
statement. The added linker.cmd files have a brief header but no TI copyright statement.

[academy/mac/mac...

Comment on lines +18 to +25
| Processor | Hardware | Software |
| --------- | -------- | --------------------------------------- |
| am243x | TODO | MCU PLUS SDK TODO, OpenPRU TODO |
| am261x | TODO | MCU PLUS SDK TODO, OpenPRU TODO |
| am263x | TODO | MCU PLUS SDK TODO, OpenPRU TODO |
| am263px | TODO | MCU PLUS SDK TODO, OpenPRU TODO |
| am62x | TODO | OpenPRU TODO |
| am64x | TODO | MCU PLUS SDK TODO, OpenPRU TODO |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. todo markers in readmes 📘 Rule violation ⚙ Maintainability

New documentation introduces multiple TODO placeholders, which violates the requirement to use
only FIXME markers for pending work. This reduces searchability/standardization of pending-work
annotations across the repo.
Agent Prompt
## Issue description
New/updated documentation contains `TODO` placeholders, but the repository standard requires using only `FIXME` markers for pending work.

## Issue Context
Several “Validated HW & SW” tables were added with placeholder values like `TODO` and `MCU PLUS SDK TODO`.

## Fix Focus Areas
- academy/getting_started_labs/assembly_code/solution/readme.md[18-25]
- academy/crc/crc/readme.md[32-36]
- examples/empty/readme.md[20-25]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +1 to +6
/*
* AM62x_PRU0.cmd
*
* Example Linker command file for linking programs built with the C compiler
* on AM62x PRU0 cores
*/

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

2. linker.cmd missing ti copyright 📘 Rule violation ⚙ Maintainability

New linker command files include a filename header but omit the required Texas Instruments copyright
statement. This creates a licensing/traceability compliance gap for newly added source files.
Agent Prompt
## Issue description
New `linker.cmd` files lack the required Texas Instruments copyright statement.

## Issue Context
These files were added as part of new example ports and should carry the standard TI copyright header.

## Fix Focus Areas
- academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd[1-6]
- academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd[1-6]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +1 to +4
/*
* Copyright (C) 2024-2024 Texas Instruments Incorporated - http://www.ti.com/
*
*

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

3. main.c header missing filename 📘 Rule violation ⚙ Maintainability

New C firmware files include a TI copyright/license block but do not include a file-name header as
required. This reduces traceability and violates the mandated header format.
Agent Prompt
## Issue description
New C sources include the TI license but not a file-name header line.

## Issue Context
The compliance checklist requires both (1) a file name header and (2) a TI copyright statement.

## Fix Focus Areas
- academy/uart/uart_loopback/firmware/main.c[1-4]
- academy/mac/mac_c/firmware/main.c[1-4]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +8 to +14
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

4. Tabs in main.c 📘 Rule violation ⚙ Maintainability

New C source files include tab characters in the header/comment formatting, violating the whitespace
standard that disallows tabs. This can lead to inconsistent formatting across tooling and editors.
Agent Prompt
## Issue description
Tab characters are present in new C source files, violating the whitespace standard.

## Issue Context
The standard requires spaces-only indentation/whitespace for source and documentation.

## Fix Focus Areas
- academy/mac/mac_c/firmware/main.c[8-15]
- academy/uart/uart_loopback/firmware/main.c[8-15]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment thread README.md Outdated
Comment on lines +123 to +127
- [AM64x](https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/latest/exports/docs/api_guide_am64x/CCS_PROJECTS_PAGE.html)
- [AM243x](https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/latest/exports/docs/api_guide_am243x/CCS_PROJECTS_PAGE.html)
- [AM261x](https://software-dl.ti.com/mcu-plus-sdk/esd/AM261X/latest/exports/docs/api_guide_am261x/CCS_PROJECTS_PAGE.html)
- [AM263Px](https://software-dl.ti.com/mcu-plus-sdk/esd/AM263PX/latest/exports/docs/api_guide_am263px/CCS_PROJECTS_PAGE.html)
- [AM263x](https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/CCS_PROJECTS_PAGE.html

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

5. Broken am263x link 🐞 Bug ≡ Correctness

README.md’s AM263x MCU+ SDK documentation link is missing the closing ')', breaking the markdown
link rendering for that bullet (and potentially affecting subsequent markdown parsing in some
renderers).
Agent Prompt
### Issue description
The AM263x markdown link in the root README is missing a closing `)`.

### Issue Context
This breaks link rendering in the main repository README.

### Fix Focus Areas
- README.md[123-127]

### Suggested change
Add the missing `)` at the end of the AM263x link so it matches the other bullets.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

/* Perform numMacs MAC operations */
for (i = 0; i < numMacs; i++) {
result += (uint64_t)buf[i].op1 * (uint64_t)buf[i].op2;
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mac firmware based example uses broadside accelerator to do multiplication

But mac_c example, multiplication code ( (uint64_t)buf[i].op1 * (uint64_t)buf[i].op2 ) code in main.c file will get split into series of additions in generated assembly file, should we consider documenting this ?

Comment thread academy/crc/crc/readme.md
This project was tested on hardware with these software versions:

| Processor | Hardware | Software |
| --------- | -------- | --------------------------------------- |

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we plan to replace these TODO with specific hardware and MCU PLU SDK verision, OpenPRU version at which this example is supported before merging this PR ?

@nsaulnier-ti nsaulnier-ti force-pushed the a0226750_ai_import_pssp branch from 34e250f to 622958a Compare April 8, 2026 23:21
@qodo-code-review

Copy link
Copy Markdown

Review Summary by Qodo

Port UART and MAC C examples from PSSP and update all repository documentation

✨ Enhancement 📝 Documentation

Grey Divider

Walkthroughs

Description
• Port HW UART loopback project from PRU Software Support Package (PSSP) with firmware
  implementation for AM62x processor
• Port MAC (Multiply-Accumulate) C code example from PSSP with support for AM62x and AM64x
  processors
• Add comprehensive build configuration files (makefiles, linker scripts, CCS project
  specifications) for both new projects across multiple processor variants
• Standardize and update all README files across the repository to align with OpenPRU v2026.01.00
• Add "Training" section to main README with links to PRU Academy resources
• Improve build instructions documentation with dedicated "Building MCU+ projects in CCS" subsection
• Standardize documentation format across all academy labs and examples with consistent "Validated
  HW & SW" sections
• Update academy project registry and build system to include new MAC C and UART loopback projects
Diagram
flowchart LR
  PSSP["PSSP Examples<br/>UART & MAC"]
  UART["UART Loopback<br/>Firmware"]
  MAC["MAC C<br/>Firmware"]
  BUILD["Build Config<br/>Makefiles & Linker"]
  DOCS["README Updates<br/>Standardization"]
  REGISTRY["Academy Registry<br/>& Build System"]
  
  PSSP -->|"Port"| UART
  PSSP -->|"Port"| MAC
  UART -->|"Configure"| BUILD
  MAC -->|"Configure"| BUILD
  BUILD -->|"Document"| DOCS
  UART -->|"Register"| REGISTRY
  MAC -->|"Register"| REGISTRY
  DOCS -->|"Update"| REGISTRY
Loading

Grey Divider

File Changes

1. academy/uart/uart_loopback/firmware/main.c ✨ Enhancement +161/-0

PRU UART loopback firmware implementation in C

• New UART loopback firmware implementation for PRU cores
• Initializes PRU UART at 115200 baud with FIFO and loopback mode enabled
• Sends "Hello!" message through UART and receives it back in loopback mode
• Demonstrates UART register configuration and data transmission/reception

academy/uart/uart_loopback/firmware/main.c


2. academy/mac/mac_c/firmware/main.c ✨ Enhancement +97/-0

PRU MAC hardware accelerator C firmware example

• New MAC (Multiply-Accumulate) example firmware in C language
• Allocates 256 pairs of 32-bit operands in PRU Data RAM
• Performs 256 multiply-accumulate operations with 64-bit result accumulation
• Ported from PRU Software Support Package (PSSP) example

academy/mac/mac_c/firmware/main.c


3. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/linker.cmd ⚙️ Configuration changes +100/-0

AM64x PRU1 linker configuration for C compilation

• New linker command file for AM64x PRU1 core compilation
• Defines memory layout for PRU instruction RAM, data RAM, shared RAM, and peripherals
• Maps sections (.text, .bss, .data, etc.) to appropriate memory regions
• Includes constant register definitions for CREGISTER assignments

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/linker.cmd


View more (43)
4. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/linker.cmd ⚙️ Configuration changes +99/-0

AM64x PRU0 linker configuration for C compilation

• New linker command file for AM64x PRU0 core compilation
• Defines memory layout for PRU instruction RAM, data RAM, shared RAM, and peripherals
• Maps sections (.text, .bss, .data, etc.) to appropriate memory regions
• Includes constant register definitions for CREGISTER assignments

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/linker.cmd


5. academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd ⚙️ Configuration changes +90/-0

AM62x PRU0 linker configuration for C compilation

• New linker command file for AM62x PRU0 core compilation
• Defines memory layout for PRU instruction RAM, data RAM, shared RAM, and peripherals
• Maps sections (.text, .bss, .data, etc.) to appropriate memory regions
• Includes constant register definitions for CREGISTER assignments

academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd


6. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd ⚙️ Configuration changes +90/-0

AM62x PRU0 linker configuration for C compilation

• New linker command file for AM62x PRU0 core compilation
• Defines memory layout for PRU instruction RAM, data RAM, shared RAM, and peripherals
• Maps sections (.text, .bss, .data, etc.) to appropriate memory regions
• Includes constant register definitions for CREGISTER assignments

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/linker.cmd


7. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/linker.cmd ⚙️ Configuration changes +90/-0

AM62x PRU1 linker configuration for C compilation

• New linker command file for AM62x PRU1 core compilation
• Defines memory layout for PRU instruction RAM, data RAM, shared RAM, and peripherals
• Maps sections (.text, .bss, .data, etc.) to appropriate memory regions
• Includes constant register definitions for CREGISTER assignments

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/linker.cmd


8. README.md 📝 Documentation +50/-32

Update README with training resources and build instructions

• Added new "Training" section with links to PRU Academy resources for AM243x and AM64x
• Reorganized and simplified "Building With CCS" section with clearer step-by-step instructions
• Added new "Building MCU+ projects in CCS" subsection with MCU+ specific guidance
• Renamed "Information about using EVM boards" to "Using EVM boards" and added clarification about
 EVM signal availability
• Updated "Creating a new OpenPRU project" section with references to PRU Academy labs
• Improved line wrapping and formatting for better readability

README.md


9. academy/getting_started_labs/c_and_assembly/solution/readme.md 📝 Documentation +24/-31

Standardize training lab documentation format

• Simplified introduction to describe as training lab instead of getting started point
• Replaced detailed "Supported Combinations" table with reference to academy/readme.md
• Added "Validated HW & SW" section with TODO placeholders for processor/software versions
• Replaced detailed CCS and makefile build steps with references to PRU Academy labs
• Removed redundant "Writing PRU code" section

academy/getting_started_labs/c_and_assembly/solution/readme.md


10. academy/getting_started_labs/c_and_inline_assembly/solution/readme.md 📝 Documentation +23/-29

Standardize training lab documentation format

• Simplified introduction to describe as training lab instead of getting started point
• Replaced detailed "Supported Combinations" table with reference to academy/readme.md
• Added "Validated HW & SW" section with TODO placeholders for processor/software versions
• Replaced detailed CCS and makefile build steps with references to PRU Academy labs
• Removed redundant "Writing PRU code" section

academy/getting_started_labs/c_and_inline_assembly/solution/readme.md


11. academy/getting_started_labs/assembly_code/solution/readme.md 📝 Documentation +24/-30

Standardize training lab documentation format

• Simplified introduction to describe as training lab instead of getting started point
• Replaced detailed "Supported Combinations" table with reference to academy/readme.md
• Added "Validated HW & SW" section with TODO placeholders for processor/software versions
• Replaced detailed CCS and makefile build steps with references to PRU Academy labs
• Removed redundant "Writing PRU code" section

academy/getting_started_labs/assembly_code/solution/readme.md


12. academy/getting_started_labs/c_code/solution/readme.md 📝 Documentation +23/-30

Standardize training lab documentation format

• Simplified introduction to describe as training lab instead of getting started point
• Replaced detailed "Supported Combinations" table with reference to academy/readme.md
• Added "Validated HW & SW" section with TODO placeholders for processor/software versions
• Replaced detailed CCS and makefile build steps with references to PRU Academy labs
• Removed redundant "Writing PRU code" section

academy/getting_started_labs/c_code/solution/readme.md


13. examples/empty/readme.md 📝 Documentation +23/-28

Standardize example documentation format

• Replaced detailed "Supported Combinations" table with reference to examples/readme.md
• Added "Validated HW & SW" section with TODO placeholders for processor/software versions
• Replaced detailed CCS and makefile build steps with reference to PRU Academy labs
• Added "Overview" section with reference to project creation documentation
• Simplified "Steps to Run the Example" to reference PRU Academy labs

examples/empty/readme.md


14. examples/empty_c/readme.md 📝 Documentation +21/-27

Standardize example documentation format

• Replaced detailed "Supported Combinations" table with reference to examples/readme.md
• Added "Validated HW & SW" section with TODO placeholders for processor/software versions
• Replaced detailed CCS and makefile build steps with reference to PRU Academy labs
• Added "Overview" section with reference to project creation documentation
• Simplified "Steps to Run the Example" to reference PRU Academy labs

examples/empty_c/readme.md


15. examples/spi_loopback/readme.md 📝 Documentation +31/-25

Standardize SPI loopback example documentation

• Fixed markdown formatting for section headers and tables
• Replaced detailed "Supported Combinations" table with reference to examples/readme.md
• Added "Validated HW & SW" section with processor and software version information
• Improved readability by adjusting indentation and spacing

examples/spi_loopback/readme.md


16. examples/LCD_interface/readme.md 📝 Documentation +36/-8

Standardize LCD interface example documentation

• Added "Introduction" section header and reorganized content
• Added "Supported Combinations" section with reference to examples/readme.md
• Added "Validated HW & SW" section with processor and software version information
• Improved "How to Run" section with better formatting and step-by-step clarity
• Enhanced readability with better line breaks and section organization

examples/LCD_interface/readme.md


17. academy/mac/mac_c/makefile ⚙️ Configuration changes +106/-0

MAC C example project makefile configuration

• New makefile for MAC C example project supporting am62x and am64x processors
• Defines build targets for PRU firmware compilation with device-specific paths
• Implements prebuild checks for processor support and dependencies
• Provides make targets for all, pru, host, and clean operations

academy/mac/mac_c/makefile


18. academy/mac/mac_c/README.md 📝 Documentation +52/-0

MAC C example project documentation

• New README documenting MAC (Multiply-Accumulate) C firmware example
• Explains PRU MAC hardware accelerator usage with 256 operand pairs
• Provides supported processor combinations and validated hardware/software versions
• Includes running and validation steps with expected result calculation
• References PRU Getting Started Labs for detailed build and debug procedures

academy/mac/mac_c/README.md


19. academy/uart/uart_loopback/makefile ⚙️ Configuration changes +100/-0

UART loopback project build configuration

• New makefile for UART loopback project with build configuration for AM62x processor
• Includes prebuild checks for device compatibility and dependency validation
• Defines PRU firmware and host code build targets with clean functionality
• Specifies AM62x-SK as the supported processor with PRUSS0 PRU0 core

academy/uart/uart_loopback/makefile


20. academy/uart/uart_loopback/README.md 📝 Documentation +47/-0

UART loopback example documentation

• New README documenting UART loopback example ported from PRU Software Support Package
• Includes introduction, overview, and hardware requirements sections
• Provides validated hardware/software versions and step-by-step running instructions
• Specifies no external connections required due to internal loopback mode

academy/uart/uart_loopback/README.md


21. academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile ⚙️ Configuration changes +50/-0

UART loopback AM62x firmware makefile

• New makefile for AM62x-SK UART loopback PRU firmware build
• Configures PRU version 3 (PRUSS, PRU-ICSS) with expected device AM62x
• Sets up compiler and linker flags with standard include paths and libraries
• Defines output name and hex array generation for MCU+ projects

academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile


22. academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/example.projectspec ⚙️ Configuration changes +81/-0

UART loopback AM62x CCS project specification

• New CCS project specification for UART loopback AM62x-SK PRU0 firmware
• Configures compiler with PRU0, SLICE0, and SOC_AM62X definitions
• Sets up linker options with stack/heap sizes and library dependencies
• Includes Debug and Release configurations with post-build hex array generation

academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/example.projectspec


23. academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile_projectspec ⚙️ Configuration changes +16/-0

UART loopback CCS project build automation

• New makefile for CCS project build automation of UART loopback firmware
• Provides targets for building, cleaning, and exporting CCS projects
• Uses CCS Eclipse command-line interface for project management
• Supports Release and Debug profile configurations

academy/uart/uart_loopback/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile_projectspec


24. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile ⚙️ Configuration changes +50/-0

MAC C AM62x PRU0 firmware makefile

• New makefile for AM62x-SK MAC C PRU0 firmware build
• Configures PRU version 3 with AM62x device and standard build options
• Sets up compiler flags with PRU0, SLICE0, and SOC_AM62X definitions
• Defines hex array output for MCU+ projects with PRU0Firmware prefix

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile


25. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/example.projectspec ⚙️ Configuration changes +81/-0

MAC C AM62x PRU0 CCS project specification

• New CCS project specification for MAC C AM62x-SK PRU0 firmware
• Configures compiler with PRU0, SLICE0, and SOC_AM62X definitions
• Sets up linker options with stack/heap sizes and library dependencies
• Includes Debug and Release configurations for project building

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/example.projectspec


26. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile_projectspec ⚙️ Configuration changes +16/-0

MAC C AM62x PRU0 CCS project build automation

• New makefile for CCS project build automation of MAC C PRU0 firmware
• Provides targets for building, cleaning, and exporting CCS projects
• Uses CCS Eclipse command-line interface with Release/Debug profiles
• Enables automated project creation from projectspec file

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile_projectspec


27. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/makefile ⚙️ Configuration changes +50/-0

MAC C AM62x PRU1 firmware makefile

• New makefile for AM62x-SK MAC C PRU1 firmware build
• Configures PRU version 3 with AM62x device and standard build options
• Sets up compiler flags with PRU1, SLICE1, and SOC_AM62X definitions
• Defines hex array output for MCU+ projects with PRU1Firmware prefix

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/makefile


28. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/example.projectspec ⚙️ Configuration changes +81/-0

MAC C AM62x PRU1 CCS project specification

• New CCS project specification for MAC C AM62x-SK PRU1 firmware
• Configures compiler with PRU1, SLICE1, and SOC_AM62X definitions
• Sets up linker options with stack/heap sizes and library dependencies
• Includes Debug and Release configurations for project building

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/example.projectspec


29. academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/makefile_projectspec ⚙️ Configuration changes +16/-0

MAC C AM62x PRU1 CCS project build automation

• New makefile for CCS project build automation of MAC C PRU1 firmware
• Provides targets for building, cleaning, and exporting CCS projects
• Uses CCS Eclipse command-line interface with Release/Debug profiles
• Enables automated project creation from projectspec file

academy/mac/mac_c/firmware/am62x-sk/pruss0_pru1_fw/ti-pru-cgt/makefile_projectspec


30. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/makefile ⚙️ Configuration changes +48/-0

MAC C AM64x PRU0 firmware makefile

• New makefile for AM64x-EVM MAC C PRU0 firmware build
• Configures PRU version 4 (PRU_ICSSG) with AM64x device
• Sets up compiler flags with PRU0, SLICE0, and SOC_AM64X definitions
• Defines hex array output for MCU+ projects with PRU0Firmware prefix

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/makefile


31. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/example.projectspec ⚙️ Configuration changes +83/-0

MAC C AM64x PRU0 CCS project specification

• New CCS project specification for MAC C AM64x-EVM PRU0 firmware
• Configures compiler with PRU0, SLICE0, and SOC_AM64X definitions
• Sets up linker options with stack/heap sizes and library dependencies
• Includes Debug and Release configurations with post-build hex array generation

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/example.projectspec


32. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/makefile_projectspec ⚙️ Configuration changes +16/-0

MAC C AM64x PRU0 CCS project build automation

• New makefile for CCS project build automation of MAC C AM64x PRU0 firmware
• Provides targets for building, cleaning, and exporting CCS projects
• Uses CCS Eclipse command-line interface with Release/Debug profiles
• Enables automated project creation from projectspec file

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru0_fw/ti-pru-cgt/makefile_projectspec


33. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/makefile ⚙️ Configuration changes +48/-0

MAC C AM64x PRU1 firmware makefile

• New makefile for AM64x-EVM MAC C PRU1 firmware build
• Configures PRU version 4 (PRU_ICSSG) with AM64x device
• Sets up compiler flags with PRU1, SLICE1, and SOC_AM64X definitions
• Defines hex array output for MCU+ projects with PRU1Firmware prefix

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/makefile


34. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/example.projectspec ⚙️ Configuration changes +83/-0

MAC C AM64x PRU1 CCS project specification

• New CCS project specification for MAC C AM64x-EVM PRU1 firmware
• Configures compiler with PRU1, SLICE1, and SOC_AM64X definitions
• Sets up linker options with stack/heap sizes and library dependencies
• Includes Debug and Release configurations with post-build hex array generation

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/example.projectspec


35. academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/makefile_projectspec ⚙️ Configuration changes +16/-0

MAC C AM64x PRU1 CCS project build automation

• New makefile for CCS project build automation of MAC C AM64x PRU1 firmware
• Provides targets for building, cleaning, and exporting CCS projects
• Uses CCS Eclipse command-line interface with Release/Debug profiles
• Enables automated project creation from projectspec file

academy/mac/mac_c/firmware/am64x-evm/icss_g0_pru1_fw/ti-pru-cgt/makefile_projectspec


36. academy/mac/mac_multiply/readme.md 📝 Documentation +22/-11

MAC multiply example documentation standardization

• Removed duplicate "Overview" section heading
• Updated "Supported Combinations" section to reference central documentation
• Added "Validated HW & SW" table with processor, hardware, and software versions
• Added "Steps to Run the Example" section with register inspection instructions

academy/mac/mac_multiply/readme.md


37. academy/mac/mac/readme.md 📝 Documentation +22/-8

MAC example documentation standardization

• Updated "Supported Combinations" section to reference central documentation
• Added "Validated HW & SW" table with processor, hardware, and software versions
• Added "Steps to Run the Example" section with register inspection instructions
• Changed from parameter table format to standardized documentation structure

academy/mac/mac/readme.md


38. academy/crc/crc/readme.md 📝 Documentation +22/-8

CRC example documentation standardization

• Updated "Supported Combinations" section to reference central documentation
• Added "Validated HW & SW" table with processor, hardware, and software versions
• Added "Steps to Run the Example" section with register inspection instructions
• Changed from parameter table format to standardized documentation structure

academy/crc/crc/readme.md


39. academy/intc/intc_mcu/readme.md 📝 Documentation +22/-8

INTC MCU example documentation standardization

• Updated "Supported Combinations" section to reference central documentation
• Added "Validated HW & SW" table with processor, hardware, and software versions
• Added "Steps to Run the Example" section with register inspection instructions
• Changed from parameter table format to standardized documentation structure

academy/intc/intc_mcu/readme.md


40. academy/gpio/gpio_toggle/readme.md 📝 Documentation +21/-8

GPIO toggle example documentation standardization

• Updated "Supported Combinations" section to reference central documentation
• Added "Validated HW & SW" table with processor, hardware, and software versions
• Added "Steps to Run the Example" section with hardware connection instructions
• Changed from parameter table format to standardized documentation structure

academy/gpio/gpio_toggle/readme.md


41. examples/custom_frequency_generator/README.md 📝 Documentation +19/-3

Custom frequency generator documentation standardization

• Added "Introduction" section header with project description
• Added "Supported Combinations" section referencing central documentation
• Added "Validated HW & SW" table with processor, hardware, and software versions
• Fixed trailing whitespace on lines 72 and 75

examples/custom_frequency_generator/README.md


42. examples/logic_scope/README.md 📝 Documentation +17/-1

Logic scope example documentation standardization

• Added "Introduction" section header with project description
• Added "Supported Combinations" section referencing central documentation
• Added "Validated HW & SW" table with processor, hardware, and software versions
• Fixed trailing whitespace on final line

examples/logic_scope/README.md


43. examples/fft/README.md 📝 Documentation +15/-0

FFT example documentation standardization

• Added "Supported Combinations" section referencing central documentation
• Added "Validated HW & SW" table with processor, hardware, and software versions
• Provides hardware and software validation information for AM243x and AM261x

examples/fft/README.md


44. examples/pru_emif/readme.md 📝 Documentation +13/-0

PRU EMIF example documentation standardization

• Added "Supported Combinations" section referencing central documentation
• Added "Validated HW & SW" table with processor, hardware, and software versions
• Includes C2000Ware and C2000 CGT version information for AM243x

examples/pru_emif/readme.md


45. academy/readme.md 📝 Documentation +10/-2

Academy projects documentation and support matrix updates

• Added mac/mac_c project entry for MAC module in C language
• Added uart/uart_loopback project entry for UART peripheral example
• Updated mac/mac and mac/mac_multiply descriptions to clarify assembly language
• Updated project support matrix with new mac/mac_c and uart/uart_loopback rows

academy/readme.md


46. academy/makefile ⚙️ Configuration changes +2/-1

Academy makefile project list updates

• Added mac/mac_c to SUBDIRS list for academy projects
• Added uart/uart_loopback to SUBDIRS list for academy projects
• Enables building of new MAC C and UART loopback example projects

academy/makefile


Grey Divider

Qodo Logo

@qodo-code-review

qodo-code-review Bot commented Apr 8, 2026

Copy link
Copy Markdown

Persistent review updated to latest commit 622958a

Comment thread academy/crc/crc/readme.md
Comment on lines +28 to +36
## Validated HW & SW

This project was tested on hardware with these software versions:

| Processor | Hardware | Software |
| --------- | -------- | --------------------------------------- |
| am261x | TODO | MCU PLUS SDK TODO, OpenPRU TODO |
| am263px | TODO | MCU PLUS SDK TODO, OpenPRU TODO |
| am263x | TODO | MCU PLUS SDK TODO, OpenPRU TODO |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. validated hw & sw todos 📎 Requirement gap ⚙ Maintainability

Multiple project READMEs claim hardware validation but leave the tested hardware/software versions
as TODO, which does not document the actual tested SDK versions for the current changes. This can
mislead users about what environment was truly validated.
Agent Prompt
## Issue description
Several project READMEs include a `Validated HW & SW` section but still contain `TODO` placeholders instead of the actual SDK/version(s) that were built and tested on real hardware.

## Issue Context
Compliance requires documenting the *actual* tested SDK versions for the current changes; placeholders are not acceptable.

## Fix Focus Areas
- academy/crc/crc/readme.md[28-36]
- academy/getting_started_labs/c_code/solution/readme.md[13-24]
- examples/fft/README.md[17-25]
- examples/custom_frequency_generator/README.md[17-24]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +1 to +2
export OPEN_PRU_PATH?=$(abspath ../../../../../../..)
include $(OPEN_PRU_PATH)/imports.mak

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

2. open_pru_path cwd-dependent 📘 Rule violation ☼ Reliability

The new makefiles derive OPEN_PRU_PATH using $(abspath ../../...), which depends on the caller's
working directory and can break includes when invoked from other locations. This violates the
portability requirement for computing repo root relative to the makefile directory.
Agent Prompt
## Issue description
`OPEN_PRU_PATH` is computed using `$(abspath ../../...)`, which can break if the makefile is invoked from a different working directory.

## Issue Context
Compliance requires computing repo-root paths relative to the current makefile location, not the invocation directory.

## Fix Focus Areas
- academy/mac/mac_c/firmware/am62x-sk/pruss0_pru0_fw/ti-pru-cgt/makefile[1-2]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +143 to +151
/* Because we are doing loopback, wait until LSR.DR == 1
* indicating there is data in the RX FIFO */
while ((CT_UART.LSR1_bit.DR == 0x0));

/* Read the value from RBR */
buffer[cnt] = CT_UART.RBR_bit.DATA;

/* Wait for TX FIFO to be empty */
while (!((CT_UART.IIR_bit.INTID) == 0x1));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

3. Uart while loops unbounded 📘 Rule violation ☼ Reliability

The new UART loopback firmware uses busy-wait while loops with no timeout, which can hang
indefinitely if UART state never changes. This violates the requirement that loops have explicit
termination conditions for deterministic PRU firmware.
Agent Prompt
## Issue description
UART polling uses unbounded busy-wait loops (`while (...) ;`) with no timeout.

## Issue Context
On PRU firmware, unbounded loops can break determinism and hang the core if the peripheral never reaches the expected state.

## Fix Focus Areas
- academy/uart/uart_loopback/firmware/main.c[143-151]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +57 to +60
1. Clocking, pin-mux configuration and interrupts are specified graphically using
sysconfig tool and example.syscfg file located in folder
"\path\to\open-pru\examples\LCD_interface\am243x-lp\r5fss0-0_freertos".

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

4. Docs use backslashes 📘 Rule violation ⚙ Maintainability

Documentation includes Windows-style backslashes in a path example, which is not portable and
violates the requirement to use forward slashes for paths/links. This can confuse users and may
break copy/paste on non-Windows environments.
Agent Prompt
## Issue description
The README uses Windows-style backslashes in an example path.

## Issue Context
Documentation paths must be portable across environments and use forward slashes.

## Fix Focus Areas
- examples/LCD_interface/readme.md[57-60]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

| m_transfer_packet_spi_master_gpo_sclk | SPI Master side macro to read 1 data packet and write 1 data packet concurrently through the SPI interface. | (4+d1)+(6+d2) cycles | 27.77MHz | d1 =9, d2 =7 | 12.8MHz
## Overview
### Timing Parameters
All cycle level frequency calculations are based on a 333MHz PRU System clock, which gives 3ns per instruction cycle, i.e $t_{f} = 3ns$

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

5. i.e. used 📘 Rule violation ⚙ Maintainability

Documentation uses i.e. instead of the prescribed terminology that is. This violates the
required documentation terminology standard.
Agent Prompt
## Issue description
The SPI loopback README uses `i.e.` which is disallowed terminology.

## Issue Context
Docs/comments must use prescribed terminology (`that is`, `for example`, `and so on`).

## Fix Focus Areas
- examples/spi_loopback/readme.md[10-10]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Import PRU Software Support Package (PSSP) project
https://git.ti.com/cgit/pru-software-support-package/pru-software-support-package/tree/examples/am62x/PRU_MAC_Multiply_Accum
https://git.ti.com/cgit/pru-software-support-package/pru-software-support-package/tree/examples/am64x/PRU_MAC_Multiply_Accum

into the OpenPRU repository.

This is a test of new documentation to guide AI agents to perform specific
actions in the OpenPRU project. This project tested the action
"create a new OpenPRU project", when the project does not require any pinmux,
SysConfig, etc.

The project creation was done by claude code. However, I had to code quite a few
manual fixes after the initial project creation.

Signed-off-by: Nick Saulnier <nsaulnier@ti.com>
Import PRU Software Support Package (PSSP) project
https://git.ti.com/cgit/pru-software-support-package/pru-software-support-package/tree/examples/am62x/PRU_Hardware_UART

into the OpenPRU repository.

This is a test of new documentation to guide AI agents to perform specific
actions in the OpenPRU project. This project tested the action
"create a new OpenPRU project", when the project does not require any pinmux,
SysConfig, etc.

The project creation was done by claude code. However, I had to code quite a few
manual fixes after the initial project creation.

Signed-off-by: Nick Saulnier <nsaulnier@ti.com>
Add the new mac_c and uart projects to the academy/makefile &
academy/readme.md files.

Signed-off-by: Nick Saulnier <nsaulnier@ti.com>
These projects are used as the template for most new projects created in
the OpenPRU repository. Update the README template to look the way we expect
new project README files to look.

Additionally, point to central documentation for creating a new project or
building a project, instead of replicating that information per-project.

Signed-off-by: Nick Saulnier <nsaulnier@ti.com>
Standardize the README format to match examples/empty.

Signed-off-by: Nick Saulnier <nsaulnier@ti.com>
Standardize the README format to match examples/empty.

Signed-off-by: Nick Saulnier <nsaulnier@ti.com>
@nsaulnier-ti nsaulnier-ti force-pushed the a0226750_ai_import_pssp branch from 622958a to c1493d3 Compare May 7, 2026 18:57
@qodo-code-review

qodo-code-review Bot commented May 7, 2026

Copy link
Copy Markdown

Persistent review updated to latest commit c1493d3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants