Skip to content

Conversation

@Aravind-Padma-Kumar
Copy link
Collaborator

@Aravind-Padma-Kumar Aravind-Padma-Kumar commented Jan 5, 2026

User description

This example demonstrates multicore time-based scheduling that uses 6 PRU cores


PR Type

Enhancement


Description

  • Added comprehensive multicore scheduler example demonstrating time-based scheduling across 6 PRU cores (PRU0, PRU1, RTU0, RTU1, TXPRU0, TXPRU1) on AM243x LaunchPad

  • Implemented IEP timer configuration with 250 MHz clock and compare registers (CMP0-CMP7) for task event triggering

  • Configured task manager for all 6 cores with event-to-task mappings and priority levels for sequential PWM control

  • Added device-specific pinmux header with GPIO pin configuration and base addresses for all cores

  • Implemented PWM toggle tasks for each core alternating between logic high and low outputs

  • Created complete build infrastructure including makefiles, linker scripts, and CCS project specifications for each core

  • Added comprehensive documentation with configuration details, timing diagrams, and step-by-step execution instructions

  • Updated top-level examples makefile to include the new multicore_scheduler example


Diagram Walkthrough

flowchart LR
  IEP["IEP Timer<br/>250 MHz Clock"]
  CMP["Compare Registers<br/>CMP0-CMP7"]
  TM["Task Manager<br/>All 6 Cores"]
  PRU0["PRU0<br/>Init & Config"]
  PRU1["PRU1<br/>PWM Toggle"]
  RTU0["RTU0<br/>PWM Toggle"]
  RTU1["RTU1<br/>PWM Toggle"]
  TXPRU0["TXPRU0<br/>PWM Toggle"]
  TXPRU1["TXPRU1<br/>PWM Toggle"]
  
  IEP -- "triggers" --> CMP
  CMP -- "events" --> TM
  TM -- "schedules" --> PRU0
  TM -- "schedules" --> PRU1
  TM -- "schedules" --> RTU0
  TM -- "schedules" --> RTU1
  TM -- "schedules" --> TXPRU0
  TM -- "schedules" --> TXPRU1
Loading

File Walkthrough

Relevant files
Configuration changes
26 files
am243_am64_pru_pinmux.h
Device pinmux configuration header for AM243x PRU cores   

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/am243_am64_pru_pinmux.h

  • Added device-specific pinmux header file with 152 lines of pin
    configuration defines
  • Defines pad partition lock/unlock keys and input/output mode constants
  • Maps GPIO pin addresses for ICSS_G0 and ICSS_G1 PRU cores (PRU0, PRU1,
    RTU0, RTU1)
  • Provides base addresses for all 20 GPIO outputs per core for direct
    PRU configuration
+152/-0 
linker.cmd
TXPRU0 linker script with memory map configuration             

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru0_fw/ti-pru-cgt/linker.cmd

  • Defines memory layout for TXPRU0 with 12 KB instruction RAM and 8 KB
    data RAM
  • Allocates 800 bytes of TX_PRU0_DMEM_0 for stack, BSS, and data
    sections
  • Maps internal peripherals including task manager, IEP, and INTC
    registers
  • Configures section placement for code and data in PRU memory regions
+98/-0   
linker.cmd
TXPRU1 linker script with memory map configuration             

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru1_fw/ti-pru-cgt/linker.cmd

  • Defines memory layout for TXPRU1 with 12 KB instruction RAM and 8 KB
    data RAM
  • Allocates 800 bytes of TX_PRU0_DMEM_1 for stack, BSS, and data
    sections
  • Maps internal peripherals including task manager, IEP, and INTC
    registers
  • Configures section placement for code and data in PRU memory regions
+98/-0   
linker.cmd
PRU0 linker script with memory map configuration                 

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/linker.cmd

  • Defines memory layout for PRU0 with 12 KB instruction RAM and 8 KB
    data RAM
  • Allocates 4 KB of PRU0_DMEM_0 for stack, BSS, and data sections
  • Maps internal peripherals including task manager, IEP, and INTC
    registers
  • Configures section placement for code and data in PRU memory regions
+98/-0   
linker.cmd
RTU1 linker script with memory map configuration                 

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_rtu_pru1_fw/ti-pru-cgt/linker.cmd

  • Defines memory layout for RTU1 with 12 KB instruction RAM and 8 KB
    data RAM
  • Allocates 800 bytes of RTU0_DMEM_1 for stack, BSS, and data sections
  • Maps internal peripherals including task manager, IEP, and INTC
    registers
  • Configures section placement for code and data in PRU memory regions
+98/-0   
linker.cmd
RTU0 linker script with memory map configuration                 

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_rtu_pru0_fw/ti-pru-cgt/linker.cmd

  • Defines memory layout for RTU0 with 12 KB instruction RAM and 8 KB
    data RAM
  • Allocates 800 bytes of RTU0_DMEM_0 for stack, BSS, and data sections
  • Maps internal peripherals including task manager, IEP, and INTC
    registers
  • Configures section placement for code and data in PRU memory regions
+97/-0   
linker.cmd
PRU1 linker script with memory map configuration                 

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru1_fw/ti-pru-cgt/linker.cmd

  • Defines memory layout for PRU1 with 12 KB instruction RAM and 8 KB
    data RAM
  • Allocates 4 KB of PRU0_DMEM_1 for stack, BSS, and data sections
  • Maps internal peripherals including task manager, IEP, and INTC
    registers
  • Configures section placement for code and data in PRU memory regions
+97/-0   
makefile
TXPRU0 firmware build makefile with compiler configuration

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru0_fw/ti-pru-cgt/makefile

  • Defines build configuration for TXPRU0 firmware with output name and
    hex array prefix
  • Configures compiler flags for PRU v4 with optimization level 2
  • Sets up linker flags with stack/heap sizes and library linking
  • Includes post-build step to generate hex array output for MCU+ SDK
    integration
+149/-0 
makefile_projectspec
RTU0 CCS project specification makefile                                   

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_rtu_pru0_fw/ti-pru-cgt/makefile_projectspec

  • Defines CCS project build configuration for RTU0 firmware
  • Configures build, clean, and export targets using CCS Eclipse
  • Sets project name and profile for Release builds
+20/-0   
makefile_projectspec
RTU1 CCS project specification makefile                                   

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_rtu_pru1_fw/ti-pru-cgt/makefile_projectspec

  • Defines CCS project build configuration for RTU1 firmware
  • Configures build, clean, and export targets using CCS Eclipse
  • Sets project name and profile for Release builds
+20/-0   
makefile_projectspec
TXPRU0 CCS project specification makefile                               

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru0_fw/ti-pru-cgt/makefile_projectspec

  • Defines CCS project build configuration for TXPRU0 firmware
  • Configures build, clean, and export targets using CCS Eclipse
  • Sets project name and profile for Release builds
+20/-0   
makefile
TX_PRU1 firmware build configuration makefile                       

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru1_fw/ti-pru-cgt/makefile

  • Added comprehensive makefile for TX_PRU1 firmware compilation with 149
    lines
  • Configures compiler and linker flags for PRU v4 silicon with
    optimization level O2
  • Sets up build output paths, include directories, and post-build hex
    array generation
  • Includes conditional MCU+ SDK integration and dependency management
+149/-0 
makefile
RTU_PRU0 firmware build configuration makefile                     

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_rtu_pru0_fw/ti-pru-cgt/makefile

  • Added makefile for RTU_PRU0 firmware compilation with identical
    structure to other cores
  • Configures output names, hex array prefixes, and build directories
  • Sets up compiler flags for PRU v4 with optimization and diagnostic
    settings
  • Implements post-build hex array generation and MCU+ SDK integration
+149/-0 
makefile
RTU_PRU1 firmware build configuration makefile                     

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_rtu_pru1_fw/ti-pru-cgt/makefile

  • Added makefile for RTU_PRU1 firmware compilation
  • Configures build system for RTU_PRU1 core with appropriate output
    naming
  • Sets up compiler and linker flags consistent with other PRU cores
  • Includes hex array generation and MCU+ SDK conditional compilation
+149/-0 
makefile
PRU0 firmware build configuration makefile                             

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/makefile

  • Added makefile for PRU0 firmware compilation with 149 lines
  • Configures build system for ICSSG0 PRU0 core targeting AM243x
  • Sets up compiler optimization, include paths, and linker configuration
  • Implements post-build hex array generation for MCU+ SDK integration
+149/-0 
makefile
PRU1 firmware build configuration makefile                             

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru1_fw/ti-pru-cgt/makefile

  • Added makefile for PRU1 firmware compilation
  • Configures build system for ICSSG0 PRU1 core with PRU v4 settings
  • Sets up compiler flags with optimization level O2 and diagnostic
    options
  • Includes hex array generation and MCU+ SDK conditional support
+149/-0 
example.projectspec
PRU0 CCS project specification and build configuration     

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/example.projectspec

  • Added CCS project specification for PRU0 firmware (81 lines)
  • Configures project metadata, compiler options, and linker settings
  • Defines build configurations for Debug and Release modes
  • Sets up post-build step for hex array generation with copyright header
+81/-0   
example.projectspec
RTU_PRU0 CCS project specification and configuration         

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_rtu_pru0_fw/ti-pru-cgt/example.projectspec

  • Added CCS project specification for RTU_PRU0 firmware (79 lines)
  • Configures project targeting ICSS_G0_RTU_PRU_0 core on AM243x
    launchpad
  • Defines compiler build options with RTU_PRU0 and SLICE0 definitions
  • Includes post-build hex array generation with appropriate naming
    conventions
+79/-0   
example.projectspec
RTU_PRU1 CCS project specification and configuration         

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_rtu_pru1_fw/ti-pru-cgt/example.projectspec

  • Added CCS project specification for RTU_PRU1 firmware (79 lines)
  • Configures project for ICSS_G0_RTU_PRU_1 core with RTU_PRU1 and SLICE1
    definitions
  • Sets up compiler and linker options for multicore scheduler firmware
  • Includes post-build hex array generation with copyright header
    integration
+79/-0   
makefile
Multicore scheduler top-level build configuration               

examples/multicore_scheduler/makefile

  • Added top-level makefile for multicore_scheduler example (96 lines)
  • Configures project dependencies on MCU+ SDK and AM243x processor
    support
  • Defines build targets for all 6 PRU cores (PRU0, PRU1, RTU_PRU0,
    RTU_PRU1, TX_PRU0, TX_PRU1)
  • Implements prebuild checks and conditional compilation logic
+96/-0   
example.projectspec
TX_PRU0 CCS project specification and configuration           

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru0_fw/ti-pru-cgt/example.projectspec

  • Added CCS project specification for TX_PRU0 firmware (79 lines)
  • Configures project targeting ICSS_G0_TX_PRU_0 core on AM243x launchpad
  • Defines compiler options with TX_PRU0 and SLICE0 definitions
  • Sets up post-build hex array generation with TXPRU0Firmware prefix
+79/-0   
example.projectspec
TX_PRU1 CCS project specification and configuration           

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru1_fw/ti-pru-cgt/example.projectspec

  • Added CCS project specification for TX_PRU1 firmware (79 lines)
  • Configures project for ICSS_G0_TX_PRU_1 core with TX_PRU1 and SLICE1
    definitions
  • Sets up compiler and linker options for transmit PRU firmware
  • Includes post-build hex array generation with TXPRU1Firmware naming
+79/-0   
makefile_projectspec
TX_PRU1 CCS project build wrapper makefile                             

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru1_fw/ti-pru-cgt/makefile_projectspec

  • Added auto-generated makefile wrapper for TX_PRU1 CCS project (20
    lines)
  • Provides build, clean, and export targets using CCS Eclipse
    command-line interface
  • Configures Release profile as default build configuration
  • Enables project creation from projectspec file
+20/-0   
makefile_projectspec
PRU0 CCS project build wrapper makefile                                   

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/makefile_projectspec

  • Added auto-generated makefile wrapper for PRU0 CCS project (20 lines)
  • Provides build, clean, and export targets for CCS Eclipse integration
  • Sets Release as default profile for compilation
  • Enables automated project creation from projectspec
+20/-0   
makefile_projectspec
PRU1 CCS project build wrapper makefile                                   

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru1_fw/ti-pru-cgt/makefile_projectspec

  • Added auto-generated makefile wrapper for PRU1 CCS project (20 lines)
  • Configures build system for CCS Eclipse command-line project building
  • Provides all, clean, and export targets with Release profile default
  • Enables project creation and management through CCS automation
+20/-0   
makefile
Add multicore_scheduler to examples build list                     

examples/makefile

  • Updated SUBDIRS list to include multicore_scheduler example
  • Removed rpmsg_echo_linux from the build subdirectories
  • Maintains alphabetical ordering of example projects
+1/-1     
Enhancement
12 files
main.c
PRU0 multicore scheduler initialization and clock configuration

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/main.c

  • Implements PRU0 main initialization for multicore scheduling
  • Configures PRU and IEP clock sources (PLL0 at 250 MHz core, 333 MHz
    IEP)
  • Unlocks and configures CTRLMMR and PADMMR registers for clock and
    pinmux setup
  • Calls assembly routine FN_MCS_CFG() to configure IEP timer, compare
    registers, and task manager
+110/-0 
main.c
TXPRU0 task manager configuration for PWM toggling             

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru0_fw/ti-pru-cgt/main.c

  • Implements TXPRU0 main initialization for multicore scheduling
  • Configures task manager with general purpose mode and TS2 priority
  • Sets task address for FN_PWM_INIT_TOGGLE_TXPRU0_TASK in TS2_0
  • Preloads register r24 with PWM toggle value and enables task manager
+97/-0   
main.c
RTU1 task manager setup for scheduled PWM control               

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_rtu_pru1_fw/ti-pru-cgt/main.c

  • Implements RTU1 main initialization for multicore scheduling
  • Configures task manager with TS2 priority and task address mapping
  • Sets up FN_PWM_INIT_TOGGLE_RTU1_TASK execution in TS2_0
  • Preloads PWM toggle value and enables task manager for scheduled
    execution
+90/-0   
main.c
PRU1 task manager configuration for scheduled tasks           

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru1_fw/ti-pru-cgt/main.c

  • Implements PRU1 main initialization for multicore scheduling
  • Configures task manager with general purpose mode and TS2 priority
  • Maps FN_PWM_INIT_TOGGLE_PRU1_TASK to TS2_0 task slot
  • Preloads PWM toggle value and enables task manager
+91/-0   
main.c
RTU0 task manager initialization for PWM control                 

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_rtu_pru0_fw/ti-pru-cgt/main.c

  • Implements RTU0 main initialization for multicore scheduling
  • Configures task manager with TS2 priority and task address setup
  • Sets FN_PWM_INIT_TOGGLE_RTU0_TASK for execution in TS2_0
  • Preloads PWM toggle value and enables task manager
+89/-0   
main.c
TXPRU1 task manager configuration for PWM toggling             

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru1_fw/ti-pru-cgt/main.c

  • Implements TXPRU1 main initialization for multicore scheduling
  • Configures task manager with general purpose mode and TS2 priority
  • Maps FN_PWM_INIT_TOGGLE_TXPRU1_TASK to TS2_0 task slot
  • Preloads PWM toggle value and enables task manager
+86/-0   
pwm_toggle.asm
PRU0 multicore scheduler and PWM toggle task implementation

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/pwm_toggle.asm

  • Implements FN_MCS_CFG() assembly routine for multicore scheduling
    configuration
  • Configures IEP timer with 250 MHz clock, sets compare registers
    (CMP0-CMP7) for task triggering
  • Configures task manager for all 6 cores with event-to-task mappings
    and priority levels
  • Implements FN_PWM_INIT_TOGGLE_PRU0_TASK to toggle PWM pin via PWM init
    state
+248/-0 
pwm_toggle.asm
TXPRU1 PWM toggle task for logic low output                           

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru1_fw/ti-pru-cgt/pwm_toggle.asm

  • Implements FN_PWM_INIT_TOGGLE_TXPRU1_TASK to set PWM pin to logic low
  • Uses PWM init state register (r24.b3) to control pin output
  • Includes task yield and return to task manager
+65/-0   
pwm_toggle.asm
TXPRU0 PWM toggle task for logic high output                         

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru0_fw/ti-pru-cgt/pwm_toggle.asm

  • Implements FN_PWM_INIT_TOGGLE_TXPRU0_TASK to set PWM pin to logic high
  • Uses PWM init state register (r24.b2) to control pin output
  • Includes task yield and return to task manager
+64/-0   
pwm_toggle.asm
RTU1 PWM toggle task for logic high output                             

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_rtu_pru1_fw/ti-pru-cgt/pwm_toggle.asm

  • Implements FN_PWM_INIT_TOGGLE_RTU1_TASK to set PWM pin to logic high
  • Uses PWM init state register (r24.b2) to control pin output
  • Includes task yield and return to task manager
+65/-0   
pwm_toggle.asm
RTU0 PWM toggle task for logic low output                               

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_rtu_pru0_fw/ti-pru-cgt/pwm_toggle.asm

  • Implements FN_PWM_INIT_TOGGLE_RTU0_TASK to set PWM pin to logic low
  • Uses PWM init state register (r24.b3) to control pin output
  • Includes task yield and return to task manager
+64/-0   
pwm_toggle.asm
PRU1 PWM toggle task for logic low output                               

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru1_fw/ti-pru-cgt/pwm_toggle.asm

  • Implements FN_PWM_INIT_TOGGLE_PRU1_TASK to set PWM pin to logic low
  • Uses PWM init state register (r24.b3) to control pin output
  • Includes task yield and return to task manager
+64/-0   
Documentation
1 files
README.md
Multicore scheduler example documentation and usage guide

examples/multicore_scheduler/README.md

  • Added comprehensive documentation for multicore scheduler example (85
    lines)
  • Explains IEP timer and Task Manager usage across 6 PRU cores for
    sequential scheduling
  • Documents configuration details including compare event timings and
    task mappings
  • Provides step-by-step instructions for running on CCS with timing
    diagrams and pin information
+85/-0   
Additional files
1 files
example.projectspec +79/-0   

@qodo-code-review
Copy link

qodo-code-review bot commented Jan 5, 2026

PR Reviewer Guide 🔍

(Review updated until commit d2d6c5a)

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 4 🔵🔵🔵🔵⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Clock Config

The PRU/IEP clock programming values and comments appear inconsistent (e.g., HSDIV6 value vs documented frequency). Please confirm the intended clock sources/frequencies and that the written divider values match the desired 250 MHz behavior, especially given the later IEP sync-mode configuration in assembly.

/* ---------- PRU clock and IEP clock configuration -------------- */
    /* unlock CTRLMMR config register partition 2 */
    HW_WR_REG32((CSL_CTRL_MMR0_CFG0_BASE + CSL_MAIN_CTRL_MMR_CFG0_LOCK2_KICK0), PAD_KEY0);
    HW_WR_REG32((CSL_CTRL_MMR0_CFG0_BASE + CSL_MAIN_CTRL_MMR_CFG0_LOCK2_KICK1), PAD_KEY1);
    /*
    ; core clock options:
    ; ICSSG0_CLKMUX_SEL: bit 0 = 1 PLL0, bit 0 = 0 PLL2
    ; MAIN_PLL0_HSDIV9: 2 (333 MHz), 3 (250 MHz)
    ; MAIN_PLL2_HSDIV2: 5 (300 MHz), 7 (225 MHz)
    */
    /* bit 0: 1 selects MAIN_PLL0_HSDIV9 for core clock
     * bit 16: 1 selects MAIN_PLL0_HSDIV6 for iep clock
    */
    HW_WR_REG32(CSL_CTRL_MMR0_CFG0_BASE + CSL_MAIN_CTRL_MMR_CFG0_ICSSG0_CLKSEL, 0x00010001) ;
    /* unlock PLL0 ctrl register */
    HW_WR_REG32(CSL_PLL0_CFG_BASE + CSL_MAIN_PLL_MMR_CFG_PLL0_LOCKKEY0, PAD_KEY0);
    HW_WR_REG32(CSL_PLL0_CFG_BASE + CSL_MAIN_PLL_MMR_CFG_PLL0_LOCKKEY1, PAD_KEY1);
    /* set MAIN_PLL0_HSDIV9 to 3 for core_clock = 250 MHz */
    HW_WR_REG8(CSL_PLL0_CFG_BASE + CSL_MAIN_PLL_MMR_CFG_PLL0_HSDIV_CTRL9, 0x03);
    /* set MAIN_PLL0_HSDIV6_CLKOUT iep_clock from PLL0 (1 = 500 MHz, 2 = 333 MHz, 3 = 250 MHz) */
    HW_WR_REG8(CSL_PLL0_CFG_BASE + CSL_MAIN_PLL_MMR_CFG_PLL0_HSDIV_CTRL6, 0x02);
    /*Note : IEP timer is set to sync mode in FN_MCS_CFG() later to use core clock*/
Typo

One of the pinmux macros appears to have a naming typo that could lead to accidental misuse or missing define usage when configuring pins.

// ICSS_G1 PRU0
#define    PRG1_PRU0_GPO0            (0x000F40B8)
#define    PRG1_PRU0_GPO1            (0x000F40BC)
#define    PRG1_PRU0_GPO2            (0x000F40C0)
#define    PRG1_PRU0_GPO3            (0x000F40C4)
#define    PRG1_PRU0_GPO4            (0x000F40C8)
#define    PRG1_PRU0_GPO5            (0x000F40CC)
#define    PRG1_PRU0_GPO6            (0x000F40D0)
#define    PRG1_PRU0_GPO7            (0x000F40D4)
#define    PRG1_PRU0_GPO8            (0x000F40D8)
#define    PRG1_PRU0_GPO9            (0x000F40DC)
#define    PRG1_PRU0_GP010            (0x000F40E0)
#define    PRG1_PRU0_GPO11           (0x000F40E4)
#define    PRG1_PRU0_GPO12           (0x000F40E8)
#define    PRG1_PRU0_GPO13           (0x000F40EC)
#define    PRG1_PRU0_GPO14           (0x000F40F0)
Timing Logic

The IEP compare time macros mix “ns” wording with raw tick/count programming, and the chosen values (e.g., CMP0 vs increment) may not match the intended schedule. Please validate units, wrap/enable mask selection, and that each core’s trigger compare aligns with the documented timing diagram.

; increment value for configured clock
MS_TIMER_INC	.set	4 ; 250 Mhz, 4ns

; set CMP0 time to desired time period in ns
	; (COUNT - increment value) is set as count starts from 0
MS_CMP0_TIME	.set	(100-MS_TIMER_INC) ; cycle time
MS_CMP1_TIME	.set	2000   ; CMP1 time
MS_CMP2_TIME	.set	(2*MS_TIMER_INC)  ; CMP2 time
MS_CMP3_TIME	.set	(3*MS_TIMER_INC) ; CMP3 time
MS_CMP4_TIME	.set	(4*MS_TIMER_INC) ; CMP4 time
MS_CMP5_TIME	.set	(5*MS_TIMER_INC) ; CMP5 time
MS_CMP6_TIME	.set	(6*MS_TIMER_INC) ; CMP6 time
MS_CMP7_TIME	.set	(1*MS_TIMER_INC)  ; CMP7 time

; set TM base address
TM_REG_BASE_PRU0		.set	CSL_ICSS_G_PR1_TASKS_MGR_PRU0_PR1_TASKS_MGR_PRU0_MMR_REGS_BASE
TM_REG_BASE_PRU1		.set	CSL_ICSS_G_PR1_TASKS_MGR_PRU1_PR1_TASKS_MGR_PRU1_MMR_REGS_BASE
TM_REG_BASE_RTU0		.set	CSL_ICSS_G_PR1_TASKS_MGR_RTU0_PR1_TASKS_MGR_RTU0_MMR_REGS_BASE
TM_REG_BASE_RTU1		.set	CSL_ICSS_G_PR1_TASKS_MGR_RTU1_PR1_TASKS_MGR_RTU1_MMR_REGS_BASE
TM_REG_BASE_TXPRU0		.set	CSL_ICSS_G_PR1_TASKS_MGR_PRU_TX0_PR1_TASKS_MGR_PRU_TX0_MMR_REGS_BASE
TM_REG_BASE_TXPRU1		.set	CSL_ICSS_G_PR1_TASKS_MGR_PRU_TX1_PR1_TASKS_MGR_PRU_TX1_MMR_REGS_BASE

TASKS_MGR_GLOBAL_CFG		.set 0x00
TASKS_MGR_TS2_PC_S0			.set 0x1C
TASKS_MGR_TS2_GEN_CFG1		.set 0x40

;relevant event mappings
IEP0_CMP_0	.set	(16+0)
IEP0_CMP_1	.set	(16+1)
IEP0_CMP_2	.set	(16+2)
IEP0_CMP_3	.set	(16+3)
IEP0_CMP_4	.set	(16+4)
IEP0_CMP_5	.set	(16+5)
IEP0_CMP_6	.set	(16+6)
IEP0_CMP_7	.set	(16+7)

TRG_EVENT_PRU0				.set IEP0_CMP_7
TRG_EVENT_PRU1				.set IEP0_CMP_2
TRG_EVENT_RTU1				.set IEP0_CMP_3
TRG_EVENT_RTU0				.set IEP0_CMP_4
TRG_EVENT_TXPRU1			.set IEP0_CMP_5
TRG_EVENT_TXPRU0			.set IEP0_CMP_6

; Offset for used PWM register
ICSSG_PWM2	.set	0x138

; toggling value for pwm pin (toggling sets POS_INIT and NEG_INT to 0 or 1)
; rx.b2 --> Set PIN high
; rx.b3 --> Set PIN low
TOGGLE_VAL	.set	0x050a8000


;*************************************************
;   Function : FN_MCS_CFG
;   Description:
;       One time configurations and pre-loads for Multi-core Scheduling:
;		1. Configures IEP timer and compare register times
;		2. Configures task manager and maps tasks in all cores to events
;		3. Pre-loads r24 with value required for toggling task
;		3. Sets address of PRU0 task
;		4. Force PWM trip mode
;
;*************************************************
.asmfunc
||FN_MCS_CFG||:
	xout PRU_SPAD_B0_XID, &r3.w2, 2	; save return PC to SPAD
;* ----------- iep configuration  ----------------------- *
	; Configure ICSSG_IEPCLK_REG Register to run in sync mode
	; IEP_OCP_CLK_EN = 1 (bit 0 = 1) to set the source of the IEP Clock to ICSSGn_CORE_CLK
	ldi32 	r4, PRUx_CFG_BASE
	ldi 	r5, 0x01
	sbbo 	&r5.b0, r4, ICSS_CFG_IEPCLK, 1
	; ICSSG_SA_MX_REG: set PWM_EFC_EN mode, auto clear cmp pending flags
	sbbo 	&r5.b0, r4, (ICSS_CFG_MUXSEL+2), 1
	; reset iep0 timer
	ldi32 	r4, PRUx_IEP0_BASE
	ldi 	r5, 0x20
	sbbo 	&r5.b0, r4, 0, 1
	ldi 	r5, 0x0
	sbbo 	&r5.b0, r4, ICSS_IEP_COUNT_REG, 1
	; set time period of toggling pattern
	ldi 	r5, MS_CMP0_TIME
	sbbo 	&r5, r4, ICSS_IEP_CMP0_REG, 4
	; set PRU0 trigger time
	ldi 	r5, MS_CMP7_TIME
	sbbo 	&r5, r4, ICSS_IEP_CMP7_REG, 4
	; set PRU1 trigger time
	ldi 	r5, MS_CMP2_TIME
	sbbo 	&r5, r4, ICSS_IEP_CMP2_REG, 4
	; set RTU1 trigger time
	ldi 	r5, MS_CMP3_TIME
	sbbo 	&r5, r4, ICSS_IEP_CMP3_REG, 4
	; set RTU0 trigger time
	ldi 	r5, MS_CMP4_TIME
	sbbo 	&r5, r4, ICSS_IEP_CMP4_REG, 4
	; set TXPRU0 trigger time
	ldi 	r5, MS_CMP5_TIME
	sbbo 	&r5, r4, ICSS_IEP_CMP5_REG, 4
	; set TXPRU1 trigger time
	ldi 	r5, MS_CMP6_TIME
	sbbo 	&r5, r4, ICSS_IEP_CMP6_REG, 4
	; set CMP1 time to a high value(since PWM init toggle is used)
	ldi 	r5, MS_CMP1_TIME
	sbbo 	&r5, r4, ICSS_IEP_CMP1_REG, 4
	; Enable cmp 0,2,3,4,5,6,7 and wrap around
	ldi 	r5, 0x1fb
	sbbo 	&r5, r4, ICSS_IEP_CMP_CFG_REG, 4
	; set default increment and enable count
	; set default increment to 3 for 333 MHz , 4 for 250 MHz
	ldi 	r5, 0x441
	sbbo 	&r5, r4, ICSS_IEP_GLOBAL_CFG_REG, 2

@qodo-code-review
Copy link

qodo-code-review bot commented Jan 5, 2026

PR Code Suggestions ✨

Latest suggestions up to d2d6c5a

CategorySuggestion                                                                                                                                    Impact
Possible issue
Fix swapped compare-time programming

Fix a logic error where the trigger times for TXPRU0 and TXPRU1 are swapped
between IEP0_CMP_5 and IEP0_CMP_6. The code should be updated to correctly map
TXPRU1 to CMP5 and TXPRU0 to CMP6.

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/pwm_toggle.asm [97-157]

 TRG_EVENT_TXPRU1			.set IEP0_CMP_5
 TRG_EVENT_TXPRU0			.set IEP0_CMP_6
 ...
-	; set TXPRU0 trigger time
+	; set TXPRU1 trigger time
 	ldi 	r5, MS_CMP5_TIME
 	sbbo 	&r5, r4, ICSS_IEP_CMP5_REG, 4
-	; set TXPRU1 trigger time
+	; set TXPRU0 trigger time
 	ldi 	r5, MS_CMP6_TIME
 	sbbo 	&r5, r4, ICSS_IEP_CMP6_REG, 4

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 8

__

Why: The suggestion correctly identifies a critical logic error where the trigger times for TXPRU0 and TXPRU1 are swapped, which would break the intended scheduling and cause incorrect runtime behavior.

Medium
Stop ignoring post-build failures

Remove the leading - from post-build commands in the makefile to ensure that the
build fails if any of the hex generation, concatenation, or copy steps encounter
an error.

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/makefile [137-144]

 post-build:
-	-$(CGT_TI_PRU_PATH)/bin/hexpru --diag_wrap=off --array --array:name_prefix=$(HEX_ARRAY_PREFIX) -o $(TARGET_HEX) $(TARGET)
-	-$(CAT) $(OPEN_PRU_PATH)/source/firmware/pru_load_bin_copyright.h $(TARGET_HEX) > $(TARGET_HEX).temp
-	-$(MOVE) $(TARGET_HEX).temp $(TARGET_HEX)
+	$(CGT_TI_PRU_PATH)/bin/hexpru --diag_wrap=off --array --array:name_prefix=$(HEX_ARRAY_PREFIX) -o $(TARGET_HEX) $(TARGET)
+	$(CAT) $(OPEN_PRU_PATH)/source/firmware/pru_load_bin_copyright.h $(TARGET_HEX) > $(TARGET_HEX).temp
+	$(MOVE) $(TARGET_HEX).temp $(TARGET_HEX)
 ifeq ($(BUILD_MCUPLUS),y)
-	-$(COPY) $(TARGET_HEX) $(MCU_HEX_PATH)
+	$(COPY) $(TARGET_HEX) $(MCU_HEX_PATH)
 endif
 	@echo ' '
  • Apply / Chat
Suggestion importance[1-10]: 7

__

Why: The suggestion correctly points out that ignoring errors in the post-build step can hide failures and lead to a seemingly successful build with incorrect or missing artifacts. Removing the error-suppressing - prefix improves build reliability.

Medium
Fix incorrect pin define name

Fix a typo in the PRG1_PRU0_GP010 macro definition by changing it to
PRG1_PRU0_GPO10 to align with the naming convention of other GPIO defines.

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/am243_am64_pru_pinmux.h [119]

-#define    PRG1_PRU0_GP010            (0x000F40E0)
+#define    PRG1_PRU0_GPO10           (0x000F40E0)
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why: The suggestion correctly identifies a typo in a macro definition (PRG1_PRU0_GP010 instead of PRG1_PRU0_GPO10), which would cause compilation errors or incorrect behavior if the macro were used.

Low
Align exported header naming

Standardize the exported header filename in the makefile to match the one used
in the CCS projectspec to avoid build inconsistencies.

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru0_fw/ti-pru-cgt/makefile [11-13]

 # MCU+ projects: rename & move hex array output
-MCU_HEX_NAME := tx_pru0_load_bin.h
+MCU_HEX_NAME := txpru0_load_bin.h
 MCU_HEX_PATH := $(OPEN_PRU_PATH)/examples/multicore_scheduler/firmware/am243x-lp/$(MCU_HEX_NAME)
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why: The suggestion correctly identifies a filename mismatch between the makefile (tx_pru0_load_bin.h) and the CCS projectspec (txpru0_load_bin.h), which could lead to build failures or using stale headers depending on the build method.

Low
Standardize RTU header filenames

Standardize the exported header filename in the makefile to match the one used
in the CCS projectspec to avoid build inconsistencies.

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_rtu_pru1_fw/ti-pru-cgt/makefile [11-13]

 # MCU+ projects: rename & move hex array output
-MCU_HEX_NAME := rtu1_load_bin.h
+MCU_HEX_NAME := rtupru1_load_bin.h
 MCU_HEX_PATH := $(OPEN_PRU_PATH)/examples/multicore_scheduler/firmware/am243x-lp/$(MCU_HEX_NAME)
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why: The suggestion correctly identifies a filename mismatch between the makefile (rtu1_load_bin.h) and the CCS projectspec (rtupru1_load_bin.h), which could lead to build failures or using stale headers depending on the build method.

Low
Organization
best practice
Use portable include path separators

Replace backslashes with forward slashes in .include/#include paths to improve
portability across build environments and tools.

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/pwm_toggle.asm [44-53]

-    .include  "pru_io\firmware\common\icss_regs.inc"
-    .include  "pru_io\firmware\common\icss_cfg_regs.inc"
-    .include  "pru_io\firmware\common\icss_iep_regs.inc"
-    .include  "pru_io\firmware\common\icss_xfer_defines.inc"
+    .include  "pru_io/firmware/common/icss_regs.inc"
+    .include  "pru_io/firmware/common/icss_cfg_regs.inc"
+    .include  "pru_io/firmware/common/icss_iep_regs.inc"
+    .include  "pru_io/firmware/common/icss_xfer_defines.inc"
 
 	.cdecls C,NOLIST
 %{
-    #include <drivers\pruicss\g_v0\cslr_icss_g.h>
+    #include <drivers/pruicss/g_v0/cslr_icss_g.h>
 
 %}
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why:
Relevant best practice - Keep paths portable and consistent by using forward slashes in includes.

Low
Add missing trailing newline

Add a trailing newline at the end of the file to comply with the repository EOL
requirement and avoid tooling issues when concatenating or patching files.

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/makefile [149]

+-include $(OBJECTS:%.obj=%.pp)
 
-
  • Apply / Chat
Suggestion importance[1-10]: 5

__

Why:
Relevant best practice - Ensure Unix end-of-line (LF) and include a trailing newline at end-of-file.

Low
  • More

Previous suggestions

Suggestions up to commit 81ed265
CategorySuggestion                                                                                                                                    Impact
General
Remove redundant task trigger configuration

Remove the redundant task manager trigger configuration for TX_PRU0, as it is
already configured in the main PRU0 firmware.

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru0_fw/ti-pru-cgt/main.c [84-86]

 // set TS2_S0 trigger to cmp5
 // TS2_S0 (bit 7-0)
-HW_WR_REG32(0x3002a440, 16 + 5);
+// This is configured from PRU0 firmware
Suggestion importance[1-10]: 8

__

Why: This suggestion correctly identifies a redundant and potentially problematic task trigger configuration, which is also set in the PRU0 firmware, and recommends centralizing it to prevent race conditions and improve maintainability.

Medium
Replace magic number with macro

Replace the magic number 252 with the TM_YIELD_XID macro in the xin instruction
to improve code readability and maintainability.

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/pwm_toggle.asm [229-239]

 FN_PWM_INIT_TOGGLE_PRU0_TASK:
 
     ; GPO toggle using PWM init state
     ; rx.b2 --> Set PIN high
 	; rx.b3 --> Set PIN low
     sbco    &r24.b2,c5,0x58, 1
 
 	; return from task
-    xin    252, &R0.b3,1
+    xin    TM_YIELD_XID, &R0.b3,1
 	nop
     nop
Suggestion importance[1-10]: 5

__

Why: The suggestion correctly points out the use of a magic number 252 and suggests replacing it with the TM_YIELD_XID macro for better readability and consistency with other assembly files in the PR.

Low
Possible issue
Fix incorrect hex array prefix

In the tx_pru1_fw makefile, change the HEX_ARRAY_PREFIX from PRU0Firmware to
TXPRU1Firmware to prevent duplicate symbol errors during linking.

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru1_fw/ti-pru-cgt/makefile [6]

-HEX_ARRAY_PREFIX := PRU0Firmware
+HEX_ARRAY_PREFIX := TXPRU1Firmware

[Suggestion processed]

Suggestion importance[1-10]: 8

__

Why: This is a valid and important bug fix. The incorrect HEX_ARRAY_PREFIX is a copy-paste error that would lead to linker errors when building the entire project, and this suggestion correctly identifies and fixes it.

Medium
Use correct TX_PRU0 hex prefix

In the tx_pru0_fw makefile, change the HEX_ARRAY_PREFIX from PRU0Firmware to
TXPRU0Firmware to avoid naming conflicts.

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_tx_pru0_fw/ti-pru-cgt/makefile [6]

-HEX_ARRAY_PREFIX := PRU0Firmware
+HEX_ARRAY_PREFIX := TXPRU0Firmware
Suggestion importance[1-10]: 8

__

Why: This is a valid and important bug fix. The incorrect HEX_ARRAY_PREFIX is a copy-paste error that would lead to linker errors when building the entire project, and this suggestion correctly identifies and fixes it.

Medium
Use correct PRU1 hex prefix

In the pru1_fw makefile, change the HEX_ARRAY_PREFIX from PRU0Firmware to
PRU1Firmware to prevent naming collisions.

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru1_fw/ti-pru-cgt/makefile [6]

-HEX_ARRAY_PREFIX := PRU0Firmware
+HEX_ARRAY_PREFIX := PRU1Firmware
Suggestion importance[1-10]: 8

__

Why: This is a valid and important bug fix. The incorrect HEX_ARRAY_PREFIX is a copy-paste error that would lead to linker errors when building the entire project, and this suggestion correctly identifies and fixes it.

Medium
Correct wrong project names in instructions

Correct the project names for TX_PRU0 and TX_PRU1 in the README.md loading
instructions to point to the correct firmware projects.

examples/multicore_scheduler/README.md [71-77]

 3. Load six cores with corresponding projects as follows:
     1. Project "multicore_scheduler_am243x-lp_icss_g0_pru0_fw_ti-pru-cgt" to core ICSSG0 PRU0
     2. Project "multicore_scheduler_am243x-lp_icss_g0_pru1_fw_ti-pru-cgt" to core ICSSG0 PRU1
     3. Project "multicore_scheduler_am243x-lp_icss_g0_rtu_pru0_fw_ti-pru-cgt" to core ICSSG0 RTU_PRU0
     4. Project "multicore_scheduler_am243x-lp_icss_g0_rtu_pru1_fw_ti-pru-cgt" to core ICSSG0 RTU_PRU1
-    5. Project "multicore_scheduler_am243x-lp_icss_g0_pru0_fw_ti-pru-cgt" to core ICSSG0 TX_PRU0
-    6. Project "multicore_scheduler_am243x-lp_icss_g0_pru0_fw_ti-pru-cgt" to core ICSSG0 TX_PRU1
+    5. Project "multicore_scheduler_am243x-lp_icss_g0_tx_pru0_fw_ti-pru-cgt" to core ICSSG0 TX_PRU0
+    6. Project "multicore_scheduler_am243x-lp_icss_g0_tx_pru1_fw_ti-pru-cgt" to core ICSSG0 TX_PRU1
Suggestion importance[1-10]: 7

__

Why: This suggestion correctly identifies a critical copy-paste error in the README.md instructions, which would cause users to load the wrong firmware and prevent the example from working. Fixing this is essential for the example's usability.

Medium
Fix GPO10 macro typo

Correct the typo in the macro name from PRG1_PRU0_GP10 to PRG1_PRU0_GPO10 for
consistency.

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/am243_am64_pru_pinmux.h [119]

-#define    PRG1_PRU0_GP10            (0x000F40E0)
+#define    PRG1_PRU0_GPO10           (0x000F40E0)
Suggestion importance[1-10]: 6

__

Why: This suggestion correctly identifies a typo in the PRG1_PRU0_GP10 macro name, which breaks naming consistency and could lead to errors.

Low
Organization
best practice
Fix header include filename casing

Update the include to match the actual header filename casing
(am243_am64_pru_pinmux.h) so builds work reliably on Linux and other
case-sensitive systems.

examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/main.c [49]

-#include "AM243_AM64_PRU_pinmux.h"
+#include "am243_am64_pru_pinmux.h"
Suggestion importance[1-10]: 6

__

Why:
Relevant best practice - Any reference to a file name shall match the capitalization of the actual file name to avoid build failures on case-sensitive filesystems.

Low

@qodo-code-review
Copy link

qodo-code-review bot commented Jan 5, 2026

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
No custom compliance provided

Follow the guide to enable custom compliance check.

  • Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@qodo-code-review
Copy link

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: Build and Validate

Failed stage: Build all via top-level makefile [❌]

Failed test name: ""

Failure summary:

The action failed during the make build because the multicore_scheduler example could not be
assembled for am243x.
- In
examples/multicore_scheduler/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt/pwm_toggle.asm the PRU
compiler (clpru) reported a fatal include error:
- pwm_toggle.asm, line 51: fatal error #1965:
cannot open source file "drivers\pruicss\g_v0\cslr_icss_g.h"
- This missing header caused subsequent
.include failures (lines 44–47 in pwm_toggle.asm) and many follow-on assembler errors (invalid
instructions and undefined symbols like TM_YIELD_XID).
- The build then aborted with make[3]: ***
[makefile:104: generated/pwm_toggle.obj] Error 1, cascading up to make: *** [makefile:14: examples]
Error 2 and exiting with code 2.

Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

564:  make -C firmware/am243x-evm/icss_g0_pru0_fw/ti-pru-cgt all
565:  mkdir -p generated
566:  make[2]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty_c'
567:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/icss_g0_pru0_fw/ti-pru-cgt'
568:  mkdir -p generated
569:  Building empty_c for am243x
570:  make -C firmware/am243x-evm/icss_g0_pru0_fw/ti-pru-cgt all
571:  make[4]: Entering directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/icss_g0_pru0_fw/ti-pru-cgt'
572:  Building file: "../../../main.asm"
573:  mkdir -p generated
574:  Building file: "fn_fg_output.asm"
575:  Invoking: PRU Compiler
576:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/icss_g0_pru0_fw/ti-pru-cgt'
577:  mkdir -p generated
578:  Invoking: PRU Compiler
579:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
580:  Building file: "../../../main.asm"
581:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  fn_fg_output.asm
582:  Invoking: PRU Compiler
583:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
584:  Building file: ../../../main.c
585:  Invoking: PRU Compiler
586:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.c
587:  Finished building: "fn_fg_output.asm"
588:  Finished building: "../../../main.asm"
589:  Finished building: "../../../main.asm"
590:  mkdir -p generated
591:  Building file: main.c
592:  Invoking: PRU Compiler
593:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  main.c
594:  Building target: "generated/empty_am243x-evm_icss_g0_pru0_fw.out"
595:  Building target: "generated/pru_add_am243x-evm_icss_g0_pru0_fw.out"
596:  Invoking: PRU Linker
597:  Invoking: PRU Linker
598:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/pru_add_am243x-evm_icss_g0_pru0_fw.map --xml_link_info=generated/pru_add_am243x-evm_icss_g0_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/pru_add_am243x-evm_icss_g0_pru0_fw.out 
599:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/empty_am243x-evm_icss_g0_pru0_fw.map --xml_link_info=generated/empty_am243x-evm_icss_g0_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/empty_am243x-evm_icss_g0_pru0_fw.out 
600:  <Linking>
601:  <Linking>
602:  Finished building target: "generated/pru_add_am243x-evm_icss_g0_pru0_fw.out"
603:  Finished building target: "generated/empty_am243x-evm_icss_g0_pru0_fw.out"
604:  Finished building: "../../../main.c"
605:  /home/runner/ti/ti-cgt-pru_2.3.3/bin/hexpru --diag_wrap=off --array --array:name_prefix=PRU0Firmware -o generated/pru_add_am243x-evm_icss_g0_pru0_fw.h generated/pru_add_am243x-evm_icss_g0_pru0_fw.out
606:  Translating to Array format...
607:  "generated/pru_add_am243x-evm_icss_g0_pru0_fw.out" .text ==> .text
608:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/pru_add_am243x-evm_icss_g0_pru0_fw.h > generated/pru_add_am243x-evm_icss_g0_pru0_fw.h.temp
609:  /home/runner/ti/ti-cgt-pru_2.3.3/bin/hexpru --diag_wrap=off --array --array:name_prefix=PRU0Firmware -o generated/empty_am243x-evm_icss_g0_pru0_fw.h generated/empty_am243x-evm_icss_g0_pru0_fw.out
610:  Building target: "generated/empty_c_am243x-evm_icss_g0_pru0_fw.out"
611:  Translating to Array format...
612:  "generated/empty_am243x-evm_icss_g0_pru0_fw.out" .text ==> .text
613:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/empty_am243x-evm_icss_g0_pru0_fw.h > generated/empty_am243x-evm_icss_g0_pru0_fw.h.temp
614:  mv generated/pru_add_am243x-evm_icss_g0_pru0_fw.h.temp generated/pru_add_am243x-evm_icss_g0_pru0_fw.h
615:  Invoking: PRU Linker
616:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/empty_c_am243x-evm_icss_g0_pru0_fw.map --xml_link_info=generated/empty_c_am243x-evm_icss_g0_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --stack_size=0x100 --heap_size=0x100 -i/home/runner/ti/ti-cgt-pru_2.3.3/lib -i/home/runner/ti/ti-cgt-pru_2.3.3/include --library=libc.a -o generated/empty_c_am243x-evm_icss_g0_pru0_fw.out 
617:  mv generated/empty_am243x-evm_icss_g0_pru0_fw.h.temp generated/empty_am243x-evm_icss_g0_pru0_fw.h
618:  <Linking>
619:  cp generated/pru_add_am243x-evm_icss_g0_pru0_fw.h /home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/pru0_load_bin.h
620:  cp generated/empty_am243x-evm_icss_g0_pru0_fw.h /home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/pru0_load_bin.h
621:  make[3]: Leaving directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/icss_g0_pru0_fw/ti-pru-cgt'
622:  make -C firmware/am243x-evm/icss_g0_pru1_fw/ti-pru-cgt all
623:  make[4]: Leaving directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/icss_g0_pru0_fw/ti-pru-cgt'
624:  make -C firmware/am243x-evm/icss_g0_pru1_fw/ti-pru-cgt all
625:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/icss_g0_pru1_fw/ti-pru-cgt'
626:  mkdir -p generated
627:  make[4]: Entering directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/icss_g0_pru1_fw/ti-pru-cgt'
628:  mkdir -p generated
629:  Building file: "../../../main.asm"
630:  Invoking: PRU Compiler
631:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
632:  Building file: "../../../main.asm"
633:  Invoking: PRU Compiler
634:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
635:  Finished building: "../../../main.asm"
636:  Finished building: "../../../main.asm"
637:  Building target: "generated/empty_am243x-evm_icss_g0_pru1_fw.out"
638:  Invoking: PRU Linker
639:  Finished building target: "generated/empty_c_am243x-evm_icss_g0_pru0_fw.out"
640:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/empty_am243x-evm_icss_g0_pru1_fw.map --xml_link_info=generated/empty_am243x-evm_icss_g0_pru1_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/empty_am243x-evm_icss_g0_pru1_fw.out 
641:  Building target: "generated/pru_add_am243x-evm_icss_g0_pru1_fw.out"
642:  Invoking: PRU Linker
643:  <Linking>
644:  /home/runner/ti/ti-cgt-pru_2.3.3/bin/hexpru --diag_wrap=off --array --array:name_prefix=PRU0Firmware -o generated/empty_c_am243x-evm_icss_g0_pru0_fw.h generated/empty_c_am243x-evm_icss_g0_pru0_fw.out
645:  Translating to Array format...
646:  "generated/empty_c_am243x-evm_icss_g0_pru0_fw.out" .text:_c_int00* ==> .text:_c_int00*
647:  "generated/empty_c_am243x-evm_icss_g0_pru0_fw.out" .text ==> .text
648:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/empty_c_am243x-evm_icss_g0_pru0_fw.h > generated/empty_c_am243x-evm_icss_g0_pru0_fw.h.temp
649:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/pru_add_am243x-evm_icss_g0_pru1_fw.map --xml_link_info=generated/pru_add_am243x-evm_icss_g0_pru1_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/pru_add_am243x-evm_icss_g0_pru1_fw.out 
650:  mv generated/empty_c_am243x-evm_icss_g0_pru0_fw.h.temp generated/empty_c_am243x-evm_icss_g0_pru0_fw.h
651:  cp generated/empty_c_am243x-evm_icss_g0_pru0_fw.h /home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/pru0_load_bin.h
652:  <Linking>
653:  Finished building: "main.c"
654:  Finished building target: "generated/empty_am243x-evm_icss_g0_pru1_fw.out"
655:  make[3]: Leaving directory '/home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/icss_g0_pru0_fw/ti-pru-cgt'
656:  make -C firmware/am243x-evm/icss_g0_pru1_fw/ti-pru-cgt all
657:  Finished building target: "generated/pru_add_am243x-evm_icss_g0_pru1_fw.out"
658:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/icss_g0_pru1_fw/ti-pru-cgt'
659:  mkdir -p generated
660:  Building target: "generated/custom_frequency_generator_am243x-lp_icss_g0_pru0_fw.out"
661:  /home/runner/ti/ti-cgt-pru_2.3.3/bin/hexpru --diag_wrap=off --array --array:name_prefix=PRU1Firmware -o generated/empty_am243x-evm_icss_g0_pru1_fw.h generated/empty_am243x-evm_icss_g0_pru1_fw.out
662:  Invoking: PRU Linker
663:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/fn_fg_output.obj generated/main.obj linker.cmd -mgenerated/custom_frequency_generator_am243x-lp_icss_g0_pru0_fw.map --xml_link_info=generated/custom_frequency_generator_am243x-lp_icss_g0_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --stack_size=0x100 --heap_size=0x100 -i/home/runner/ti/ti-cgt-pru_2.3.3/lib -i/home/runner/ti/ti-cgt-pru_2.3.3/include --library=libc.a -o generated/custom_frequency_generator_am243x-lp_icss_g0_pru0_fw.out 
664:  Translating to Array format...
665:  "generated/empty_am243x-evm_icss_g0_pru1_fw.out" .text ==> .text
666:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/empty_am243x-evm_icss_g0_pru1_fw.h > generated/empty_am243x-evm_icss_g0_pru1_fw.h.temp
667:  Building file: ../../../main.c
668:  /home/runner/ti/ti-cgt-pru_2.3.3/bin/hexpru --diag_wrap=off --array --array:name_prefix=PRU1Firmware -o generated/pru_add_am243x-evm_icss_g0_pru1_fw.h generated/pru_add_am243x-evm_icss_g0_pru1_fw.out
669:  Translating to Array format...
670:  "generated/pru_add_am243x-evm_icss_g0_pru1_fw.out" .text ==> .text
671:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/pru_add_am243x-evm_icss_g0_pru1_fw.h > generated/pru_add_am243x-evm_icss_g0_pru1_fw.h.temp
672:  Invoking: PRU Compiler
673:  mv generated/pru_add_am243x-evm_icss_g0_pru1_fw.h.temp generated/pru_add_am243x-evm_icss_g0_pru1_fw.h
674:  <Linking>
675:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.c
676:  cp generated/pru_add_am243x-evm_icss_g0_pru1_fw.h /home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/pru1_load_bin.h
677:  mv generated/empty_am243x-evm_icss_g0_pru1_fw.h.temp generated/empty_am243x-evm_icss_g0_pru1_fw.h
678:  cp generated/empty_am243x-evm_icss_g0_pru1_fw.h /home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/pru1_load_bin.h
679:  make[4]: Leaving directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/icss_g0_pru1_fw/ti-pru-cgt'
680:  make -C firmware/am243x-evm/icss_g0_rtu_pru0_fw/ti-pru-cgt all
681:  make[3]: Leaving directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/icss_g0_pru1_fw/ti-pru-cgt'
682:  make -C firmware/am243x-evm/icss_g0_rtu_pru0_fw/ti-pru-cgt all
683:  make[4]: Entering directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/icss_g0_rtu_pru0_fw/ti-pru-cgt'
684:  mkdir -p generated
685:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/icss_g0_rtu_pru0_fw/ti-pru-cgt'
686:  mkdir -p generated
687:  Building file: "../../../main.asm"
688:  Invoking: PRU Compiler
689:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
690:  Building file: "../../../main.asm"
691:  Invoking: PRU Compiler
692:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
693:  Finished building: "../../../main.asm"
694:  Finished building: "../../../main.asm"
695:  Finished building: "../../../main.c"
696:  Finished building target: "generated/custom_frequency_generator_am243x-lp_icss_g0_pru0_fw.out"
697:  Building target: "generated/empty_c_am243x-evm_icss_g0_pru1_fw.out"
698:  Building target: "generated/empty_am243x-evm_icss_g0_rtu_pru0_fw.out"
699:  Building target: "generated/pru_add_am243x-evm_icss_g0_rtu_pru0_fw.out"
700:  Invoking: PRU Linker
701:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/empty_am243x-evm_icss_g0_rtu_pru0_fw.map --xml_link_info=generated/empty_am243x-evm_icss_g0_rtu_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/empty_am243x-evm_icss_g0_rtu_pru0_fw.out 
702:  Invoking: PRU Linker
703:  Invoking: PRU Linker
704:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/empty_c_am243x-evm_icss_g0_pru1_fw.map --xml_link_info=generated/empty_c_am243x-evm_icss_g0_pru1_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --stack_size=0x100 --heap_size=0x100 -i/home/runner/ti/ti-cgt-pru_2.3.3/lib -i/home/runner/ti/ti-cgt-pru_2.3.3/include --library=libc.a -o generated/empty_c_am243x-evm_icss_g0_pru1_fw.out 
705:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/pru_add_am243x-evm_icss_g0_rtu_pru0_fw.map --xml_link_info=generated/pru_add_am243x-evm_icss_g0_rtu_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/pru_add_am243x-evm_icss_g0_rtu_pru0_fw.out 
706:  /home/runner/ti/ti-cgt-pru_2.3.3/bin/hexpru --diag_wrap=off --array --array:name_prefix=PRU0Firmware -o generated/custom_frequency_generator_am243x-lp_icss_g0_pru0_fw.h generated/custom_frequency_generator_am243x-lp_icss_g0_pru0_fw.out
...

729:  make[2]: Entering directory '/home/runner/work/open-pru/open-pru/examples/fft/split_radix_fft_4k_single_core'
730:  mv generated/pru_add_am243x-evm_icss_g0_rtu_pru0_fw.h.temp generated/pru_add_am243x-evm_icss_g0_rtu_pru0_fw.h
731:  cp generated/pru_add_am243x-evm_icss_g0_rtu_pru0_fw.h /home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/rtupru0_load_bin.h
732:  Building split_radix_fft_4k_single_core for am243x
733:  make -C firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt all
734:  mv generated/empty_am243x-evm_icss_g0_rtu_pru0_fw.h.temp generated/empty_am243x-evm_icss_g0_rtu_pru0_fw.h
735:  make[4]: Leaving directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/icss_g0_rtu_pru0_fw/ti-pru-cgt'
736:  make -C firmware/am243x-evm/icss_g0_rtu_pru1_fw/ti-pru-cgt all
737:  cp generated/empty_am243x-evm_icss_g0_rtu_pru0_fw.h /home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/rtupru0_load_bin.h
738:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/fft/split_radix_fft_4k_single_core/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt'
739:  mkdir -p generated
740:  Building file: "butterfly_length_2.asm"
741:  make[3]: Leaving directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/icss_g0_rtu_pru0_fw/ti-pru-cgt'
742:  make -C firmware/am243x-evm/icss_g0_rtu_pru1_fw/ti-pru-cgt all
743:  Invoking: PRU Compiler
744:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  butterfly_length_2.asm
745:  make[4]: Entering directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/icss_g0_rtu_pru1_fw/ti-pru-cgt'
746:  mkdir -p generated
747:  Finished building target: "generated/empty_c_am243x-evm_icss_g0_pru1_fw.out"
748:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/icss_g0_rtu_pru1_fw/ti-pru-cgt'
749:  mkdir -p generated
750:  Building file: "../../../main.asm"
751:  Invoking: PRU Compiler
752:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
753:  Building file: "../../../main.asm"
754:  /home/runner/ti/ti-cgt-pru_2.3.3/bin/hexpru --diag_wrap=off --array --array:name_prefix=PRU1Firmware -o generated/empty_c_am243x-evm_icss_g0_pru1_fw.h generated/empty_c_am243x-evm_icss_g0_pru1_fw.out
755:  Invoking: PRU Compiler
756:  Translating to Array format...
757:  "generated/empty_c_am243x-evm_icss_g0_pru1_fw.out" .text:_c_int00* ==> .text:_c_int00*
758:  "generated/empty_c_am243x-evm_icss_g0_pru1_fw.out" .text ==> .text
759:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
760:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/empty_c_am243x-evm_icss_g0_pru1_fw.h > generated/empty_c_am243x-evm_icss_g0_pru1_fw.h.temp
761:  Finished building: "butterfly_length_2.asm"
762:  Finished building: "../../../main.asm"
763:  mv generated/empty_c_am243x-evm_icss_g0_pru1_fw.h.temp generated/empty_c_am243x-evm_icss_g0_pru1_fw.h
764:  mkdir -p generated
765:  cp generated/empty_c_am243x-evm_icss_g0_pru1_fw.h /home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/pru1_load_bin.h
766:  Building file: "fft_windowed_4k.asm"
767:  Invoking: PRU Compiler
768:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  fft_windowed_4k.asm
769:  Building target: "generated/pru_add_am243x-evm_icss_g0_rtu_pru1_fw.out"
770:  Finished building: "../../../main.asm"
771:  make[3]: Leaving directory '/home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/icss_g0_pru1_fw/ti-pru-cgt'
772:  Invoking: PRU Linker
773:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/pru_add_am243x-evm_icss_g0_rtu_pru1_fw.map --xml_link_info=generated/pru_add_am243x-evm_icss_g0_rtu_pru1_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/pru_add_am243x-evm_icss_g0_rtu_pru1_fw.out 
774:  make -C firmware/am243x-evm/icss_g0_rtu_pru0_fw/ti-pru-cgt all
775:  <Linking>
776:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/icss_g0_rtu_pru0_fw/ti-pru-cgt'
777:  mkdir -p generated
778:  Building file: ../../../main.c
779:  Building target: "generated/empty_am243x-evm_icss_g0_rtu_pru1_fw.out"
780:  Invoking: PRU Compiler
781:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.c
782:  Invoking: PRU Linker
783:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/empty_am243x-evm_icss_g0_rtu_pru1_fw.map --xml_link_info=generated/empty_am243x-evm_icss_g0_rtu_pru1_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/empty_am243x-evm_icss_g0_rtu_pru1_fw.out 
784:  <Linking>
785:  Finished building: "fft_windowed_4k.asm"
786:  Finished building target: "generated/pru_add_am243x-evm_icss_g0_rtu_pru1_fw.out"
787:  mkdir -p generated
788:  /home/runner/ti/ti-cgt-pru_2.3.3/bin/hexpru --diag_wrap=off --array --array:name_prefix=RTUPRU1Firmware -o generated/pru_add_am243x-evm_icss_g0_rtu_pru1_fw.h generated/pru_add_am243x-evm_icss_g0_rtu_pru1_fw.out
789:  Translating to Array format...
790:  "generated/pru_add_am243x-evm_icss_g0_rtu_pru1_fw.out" .text ==> .text
791:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/pru_add_am243x-evm_icss_g0_rtu_pru1_fw.h > generated/pru_add_am243x-evm_icss_g0_rtu_pru1_fw.h.temp
792:  Finished building target: "generated/empty_am243x-evm_icss_g0_rtu_pru1_fw.out"
793:  Building file: "lut_load.asm"
794:  Invoking: PRU Compiler
795:  mv generated/pru_add_am243x-evm_icss_g0_rtu_pru1_fw.h.temp generated/pru_add_am243x-evm_icss_g0_rtu_pru1_fw.h
796:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  lut_load.asm
797:  cp generated/pru_add_am243x-evm_icss_g0_rtu_pru1_fw.h /home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/rtupru1_load_bin.h
...

800:  "generated/empty_am243x-evm_icss_g0_rtu_pru1_fw.out" .text ==> .text
801:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/empty_am243x-evm_icss_g0_rtu_pru1_fw.h > generated/empty_am243x-evm_icss_g0_rtu_pru1_fw.h.temp
802:  make[4]: Leaving directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/icss_g0_rtu_pru1_fw/ti-pru-cgt'
803:  make -C firmware/am243x-evm/icss_g0_tx_pru0_fw/ti-pru-cgt all
804:  mv generated/empty_am243x-evm_icss_g0_rtu_pru1_fw.h.temp generated/empty_am243x-evm_icss_g0_rtu_pru1_fw.h
805:  Finished building: "lut_load.asm"
806:  cp generated/empty_am243x-evm_icss_g0_rtu_pru1_fw.h /home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/rtupru1_load_bin.h
807:  make[4]: Entering directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/icss_g0_tx_pru0_fw/ti-pru-cgt'
808:  mkdir -p generated
809:  mkdir -p generated
810:  make[3]: Leaving directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/icss_g0_rtu_pru1_fw/ti-pru-cgt'
811:  make -C firmware/am243x-evm/icss_g0_tx_pru0_fw/ti-pru-cgt all
812:  Building file: "../../../main.asm"
813:  Building file: "main.asm"
814:  Invoking: PRU Compiler
815:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  main.asm
816:  Invoking: PRU Compiler
817:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
818:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/icss_g0_tx_pru0_fw/ti-pru-cgt'
819:  mkdir -p generated
820:  Finished building: "../../../main.c"
821:  Building file: "../../../main.asm"
822:  Finished building: "main.asm"
823:  Finished building: "../../../main.asm"
824:  Invoking: PRU Compiler
825:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
826:  mkdir -p generated
827:  Building file: "window_function_4k.asm"
828:  Invoking: PRU Compiler
829:  Finished building: "../../../main.asm"
830:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  window_function_4k.asm
831:  Building target: "generated/pru_add_am243x-evm_icss_g0_tx_pru0_fw.out"
832:  Invoking: PRU Linker
833:  Building target: "generated/empty_c_am243x-evm_icss_g0_rtu_pru0_fw.out"
834:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/pru_add_am243x-evm_icss_g0_tx_pru0_fw.map --xml_link_info=generated/pru_add_am243x-evm_icss_g0_tx_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/pru_add_am243x-evm_icss_g0_tx_pru0_fw.out 
835:  Invoking: PRU Linker
836:  <Linking>
837:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/empty_c_am243x-evm_icss_g0_rtu_pru0_fw.map --xml_link_info=generated/empty_c_am243x-evm_icss_g0_rtu_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --stack_size=0x100 --heap_size=0x100 -i/home/runner/ti/ti-cgt-pru_2.3.3/lib -i/home/runner/ti/ti-cgt-pru_2.3.3/include --library=libc.a -o generated/empty_c_am243x-evm_icss_g0_rtu_pru0_fw.out 
838:  <Linking>
839:  Building target: "generated/empty_am243x-evm_icss_g0_tx_pru0_fw.out"
840:  Invoking: PRU Linker
841:  Finished building target: "generated/pru_add_am243x-evm_icss_g0_tx_pru0_fw.out"
842:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/empty_am243x-evm_icss_g0_tx_pru0_fw.map --xml_link_info=generated/empty_am243x-evm_icss_g0_tx_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/empty_am243x-evm_icss_g0_tx_pru0_fw.out 
843:  Finished building: "window_function_4k.asm"
844:  <Linking>
845:  /home/runner/ti/ti-cgt-pru_2.3.3/bin/hexpru --diag_wrap=off --array --array:name_prefix=TXPRU0Firmware -o generated/pru_add_am243x-evm_icss_g0_tx_pru0_fw.h generated/pru_add_am243x-evm_icss_g0_tx_pru0_fw.out
846:  Translating to Array format...
847:  "generated/pru_add_am243x-evm_icss_g0_tx_pru0_fw.out" .text ==> .text
848:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/pru_add_am243x-evm_icss_g0_tx_pru0_fw.h > generated/pru_add_am243x-evm_icss_g0_tx_pru0_fw.h.temp
849:  mv generated/pru_add_am243x-evm_icss_g0_tx_pru0_fw.h.temp generated/pru_add_am243x-evm_icss_g0_tx_pru0_fw.h
850:  cp generated/pru_add_am243x-evm_icss_g0_tx_pru0_fw.h /home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/txpru0_load_bin.h
851:  Building target: "generated/split_radix_fft_4k_am243x-lp_icss_g0_pru0_fw.out"
852:  make[4]: Leaving directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/icss_g0_tx_pru0_fw/ti-pru-cgt'
853:  Finished building target: "generated/empty_am243x-evm_icss_g0_tx_pru0_fw.out"
854:  Invoking: PRU Linker
855:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/butterfly_length_2.obj generated/fft_windowed_4k.obj generated/lut_load.obj generated/main.obj generated/window_function_4k.obj AM243x_PRU0.cmd -mgenerated/split_radix_fft_4k_am243x-lp_icss_g0_pru0_fw.map --xml_link_info=generated/split_radix_fft_4k_am243x-lp_icss_g0_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/split_radix_fft_4k_am243x-lp_icss_g0_pru0_fw.out 
856:  make -C firmware/am243x-evm/icss_g0_tx_pru1_fw/ti-pru-cgt all
857:  <Linking>
858:  make[4]: Entering directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/icss_g0_tx_pru1_fw/ti-pru-cgt'
859:  mkdir -p generated
860:  /home/runner/ti/ti-cgt-pru_2.3.3/bin/hexpru --diag_wrap=off --array --array:name_prefix=TXPRU0Firmware -o generated/empty_am243x-evm_icss_g0_tx_pru0_fw.h generated/empty_am243x-evm_icss_g0_tx_pru0_fw.out
861:  Translating to Array format...
862:  "generated/empty_am243x-evm_icss_g0_tx_pru0_fw.out" .text ==> .text
863:  Building file: "../../../main.asm"
864:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/empty_am243x-evm_icss_g0_tx_pru0_fw.h > generated/empty_am243x-evm_icss_g0_tx_pru0_fw.h.temp
865:  Invoking: PRU Compiler
866:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
867:  mv generated/empty_am243x-evm_icss_g0_tx_pru0_fw.h.temp generated/empty_am243x-evm_icss_g0_tx_pru0_fw.h
...

882:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/empty_c_am243x-evm_icss_g0_rtu_pru0_fw.h > generated/empty_c_am243x-evm_icss_g0_rtu_pru0_fw.h.temp
883:  mv generated/empty_c_am243x-evm_icss_g0_rtu_pru0_fw.h.temp generated/empty_c_am243x-evm_icss_g0_rtu_pru0_fw.h
884:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/icss_g0_tx_pru1_fw/ti-pru-cgt'
885:  mv generated/split_radix_fft_4k_am243x-lp_icss_g0_pru0_fw.h.temp generated/split_radix_fft_4k_am243x-lp_icss_g0_pru0_fw.h
886:  mkdir -p generated
887:  cp generated/empty_c_am243x-evm_icss_g0_rtu_pru0_fw.h /home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/rtupru0_load_bin.h
888:  cp generated/split_radix_fft_4k_am243x-lp_icss_g0_pru0_fw.h /home/runner/work/open-pru/open-pru/examples/fft/split_radix_fft_4k_single_core/firmware/am243x-lp/pru0_load_bin.h
889:  make[3]: Leaving directory '/home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/icss_g0_rtu_pru0_fw/ti-pru-cgt'
890:  make -C firmware/am243x-evm/icss_g0_rtu_pru1_fw/ti-pru-cgt all
891:  Building file: "../../../main.asm"
892:  make[3]: Leaving directory '/home/runner/work/open-pru/open-pru/examples/fft/split_radix_fft_4k_single_core/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt'
893:  make[2]: Leaving directory '/home/runner/work/open-pru/open-pru/examples/fft/split_radix_fft_4k_single_core'
894:  Building target: "generated/pru_add_am243x-evm_icss_g0_tx_pru1_fw.out"
895:  Invoking: PRU Compiler
896:  make -C mcuplus/am243x-evm/r5fss0-0_freertos/ti-arm-clang all
897:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
898:  Invoking: PRU Linker
899:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/icss_g0_rtu_pru1_fw/ti-pru-cgt'
900:  mkdir -p generated
901:  make[4]: Entering directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/mcuplus/am243x-evm/r5fss0-0_freertos/ti-arm-clang'
902:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/pru_add_am243x-evm_icss_g0_tx_pru1_fw.map --xml_link_info=generated/pru_add_am243x-evm_icss_g0_tx_pru1_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/pru_add_am243x-evm_icss_g0_tx_pru1_fw.out 
903:  Building file: ../../../main.c
904:  Invoking: PRU Compiler
905:  <Linking>
906:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.c
907:  Finished building: "../../../main.asm"
908:  Generating SysConfig files ...
909:  /home/runner/ti/sysconfig_1.23.1/nodejs/node /home/runner/ti/sysconfig_1.23.1/dist/cli.js --product /home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/.metadata/product.json --product /home/runner/work/open-pru/open-pru/.metadata/product.json --context r5fss0-0 --part ALV --package ALV --output generated/ ../example.syscfg
910:  Finished building target: "generated/pru_add_am243x-evm_icss_g0_tx_pru1_fw.out"
911:  Building target: "generated/empty_am243x-evm_icss_g0_tx_pru1_fw.out"
912:  Invoking: PRU Linker
913:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/empty_am243x-evm_icss_g0_tx_pru1_fw.map --xml_link_info=generated/empty_am243x-evm_icss_g0_tx_pru1_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/empty_am243x-evm_icss_g0_tx_pru1_fw.out 
914:  <Linking>
...

924:  "generated/empty_am243x-evm_icss_g0_tx_pru1_fw.out" .text ==> .text
925:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/empty_am243x-evm_icss_g0_tx_pru1_fw.h > generated/empty_am243x-evm_icss_g0_tx_pru1_fw.h.temp
926:  make[4]: Leaving directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-evm/icss_g0_tx_pru1_fw/ti-pru-cgt'
927:  Finished building: "../../../main.c"
928:  make -C firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt all
929:  mv generated/empty_am243x-evm_icss_g0_tx_pru1_fw.h.temp generated/empty_am243x-evm_icss_g0_tx_pru1_fw.h
930:  cp generated/empty_am243x-evm_icss_g0_tx_pru1_fw.h /home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/txpru1_load_bin.h
931:  make[4]: Entering directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt'
932:  mkdir -p generated
933:  Building file: "../../../main.asm"
934:  make[3]: Leaving directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-evm/icss_g0_tx_pru1_fw/ti-pru-cgt'
935:  make -C firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt all
936:  Invoking: PRU Compiler
937:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt'
938:  mkdir -p generated
939:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
940:  Building target: "generated/empty_c_am243x-evm_icss_g0_rtu_pru1_fw.out"
941:  Building file: "../../../main.asm"
942:  Invoking: PRU Linker
943:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/empty_c_am243x-evm_icss_g0_rtu_pru1_fw.map --xml_link_info=generated/empty_c_am243x-evm_icss_g0_rtu_pru1_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --stack_size=0x100 --heap_size=0x100 -i/home/runner/ti/ti-cgt-pru_2.3.3/lib -i/home/runner/ti/ti-cgt-pru_2.3.3/include --library=libc.a -o generated/empty_c_am243x-evm_icss_g0_rtu_pru1_fw.out 
944:  <Linking>
945:  Invoking: PRU Compiler
946:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
947:  Finished building: "../../../main.asm"
948:  Building target: "generated/pru_add_am243x-lp_icss_g0_pru0_fw.out"
949:  Invoking: PRU Linker
950:  Finished building: "../../../main.asm"
951:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/pru_add_am243x-lp_icss_g0_pru0_fw.map --xml_link_info=generated/pru_add_am243x-lp_icss_g0_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/pru_add_am243x-lp_icss_g0_pru0_fw.out 
952:  <Linking>
953:  Finished building target: "generated/pru_add_am243x-lp_icss_g0_pru0_fw.out"
954:  Finished building target: "generated/empty_c_am243x-evm_icss_g0_rtu_pru1_fw.out"
955:  Building target: "generated/empty_am243x-lp_icss_g0_pru0_fw.out"
956:  /home/runner/ti/ti-cgt-pru_2.3.3/bin/hexpru --diag_wrap=off --array --array:name_prefix=PRU0Firmware -o generated/pru_add_am243x-lp_icss_g0_pru0_fw.h generated/pru_add_am243x-lp_icss_g0_pru0_fw.out
957:  Translating to Array format...
958:  "generated/pru_add_am243x-lp_icss_g0_pru0_fw.out" .text ==> .text
959:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/pru_add_am243x-lp_icss_g0_pru0_fw.h > generated/pru_add_am243x-lp_icss_g0_pru0_fw.h.temp
960:  /home/runner/ti/ti-cgt-pru_2.3.3/bin/hexpru --diag_wrap=off --array --array:name_prefix=RTUPRU1Firmware -o generated/empty_c_am243x-evm_icss_g0_rtu_pru1_fw.h generated/empty_c_am243x-evm_icss_g0_rtu_pru1_fw.out
961:  Invoking: PRU Linker
962:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/empty_am243x-lp_icss_g0_pru0_fw.map --xml_link_info=generated/empty_am243x-lp_icss_g0_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/empty_am243x-lp_icss_g0_pru0_fw.out 
963:  Translating to Array format...
...

967:  mv generated/pru_add_am243x-lp_icss_g0_pru0_fw.h.temp generated/pru_add_am243x-lp_icss_g0_pru0_fw.h
968:  mv generated/empty_c_am243x-evm_icss_g0_rtu_pru1_fw.h.temp generated/empty_c_am243x-evm_icss_g0_rtu_pru1_fw.h
969:  <Linking>
970:  cp generated/empty_c_am243x-evm_icss_g0_rtu_pru1_fw.h /home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/rtupru1_load_bin.h
971:  cp generated/pru_add_am243x-lp_icss_g0_pru0_fw.h /home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-lp/pru0_load_bin.h
972:  make[3]: Leaving directory '/home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/icss_g0_rtu_pru1_fw/ti-pru-cgt'
973:  make -C firmware/am243x-evm/icss_g0_tx_pru0_fw/ti-pru-cgt all
974:  Finished building target: "generated/empty_am243x-lp_icss_g0_pru0_fw.out"
975:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/icss_g0_tx_pru0_fw/ti-pru-cgt'
976:  mkdir -p generated
977:  make[4]: Leaving directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt'
978:  make -C firmware/am243x-lp/icss_g0_pru1_fw/ti-pru-cgt all
979:  Building file: ../../../main.c
980:  /home/runner/ti/ti-cgt-pru_2.3.3/bin/hexpru --diag_wrap=off --array --array:name_prefix=PRU0Firmware -o generated/empty_am243x-lp_icss_g0_pru0_fw.h generated/empty_am243x-lp_icss_g0_pru0_fw.out
981:  Invoking: PRU Compiler
982:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.c
983:  Translating to Array format...
984:  "generated/empty_am243x-lp_icss_g0_pru0_fw.out" .text ==> .text
985:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/empty_am243x-lp_icss_g0_pru0_fw.h > generated/empty_am243x-lp_icss_g0_pru0_fw.h.temp
986:  make[4]: Entering directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-lp/icss_g0_pru1_fw/ti-pru-cgt'
987:  mkdir -p generated
988:  mv generated/empty_am243x-lp_icss_g0_pru0_fw.h.temp generated/empty_am243x-lp_icss_g0_pru0_fw.h
989:  cp generated/empty_am243x-lp_icss_g0_pru0_fw.h /home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-lp/pru0_load_bin.h
990:  Building file: "../../../main.asm"
991:  Invoking: PRU Compiler
992:  make[3]: Leaving directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-lp/icss_g0_pru0_fw/ti-pru-cgt'
993:  make -C firmware/am243x-lp/icss_g0_pru1_fw/ti-pru-cgt all
994:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
995:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-lp/icss_g0_pru1_fw/ti-pru-cgt'
996:  mkdir -p generated
997:  Finished building: "../../../main.c"
998:  Building file: "../../../main.asm"
999:  Invoking: PRU Compiler
1000:  Finished building: "../../../main.asm"
1001:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
1002:  Building target: "generated/empty_c_am243x-evm_icss_g0_tx_pru0_fw.out"
1003:  Invoking: PRU Linker
1004:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/empty_c_am243x-evm_icss_g0_tx_pru0_fw.map --xml_link_info=generated/empty_c_am243x-evm_icss_g0_tx_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --stack_size=0x100 --heap_size=0x100 -i/home/runner/ti/ti-cgt-pru_2.3.3/lib -i/home/runner/ti/ti-cgt-pru_2.3.3/include --library=libc.a -o generated/empty_c_am243x-evm_icss_g0_tx_pru0_fw.out 
1005:  <Linking>
1006:  Building target: "generated/pru_add_am243x-lp_icss_g0_pru1_fw.out"
1007:  Finished building: "../../../main.asm"
1008:  Invoking: PRU Linker
1009:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/pru_add_am243x-lp_icss_g0_pru1_fw.map --xml_link_info=generated/pru_add_am243x-lp_icss_g0_pru1_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/pru_add_am243x-lp_icss_g0_pru1_fw.out 
1010:  Building target: "generated/empty_am243x-lp_icss_g0_pru1_fw.out"
1011:  <Linking>
1012:  Invoking: PRU Linker
1013:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/empty_am243x-lp_icss_g0_pru1_fw.map --xml_link_info=generated/empty_am243x-lp_icss_g0_pru1_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/empty_am243x-lp_icss_g0_pru1_fw.out 
1014:  <Linking>
...

1022:  Translating to Array format...
1023:  "generated/pru_add_am243x-lp_icss_g0_pru1_fw.out" .text ==> .text
1024:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/pru_add_am243x-lp_icss_g0_pru1_fw.h > generated/pru_add_am243x-lp_icss_g0_pru1_fw.h.temp
1025:  mv generated/empty_am243x-lp_icss_g0_pru1_fw.h.temp generated/empty_am243x-lp_icss_g0_pru1_fw.h
1026:  mv generated/pru_add_am243x-lp_icss_g0_pru1_fw.h.temp generated/pru_add_am243x-lp_icss_g0_pru1_fw.h
1027:  cp generated/pru_add_am243x-lp_icss_g0_pru1_fw.h /home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-lp/pru1_load_bin.h
1028:  cp generated/empty_am243x-lp_icss_g0_pru1_fw.h /home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-lp/pru1_load_bin.h
1029:  make[4]: Leaving directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-lp/icss_g0_pru1_fw/ti-pru-cgt'
1030:  make -C firmware/am243x-lp/icss_g0_rtu_pru0_fw/ti-pru-cgt all
1031:  make[3]: Leaving directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-lp/icss_g0_pru1_fw/ti-pru-cgt'
1032:  make[4]: Entering directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-lp/icss_g0_rtu_pru0_fw/ti-pru-cgt'
1033:  mkdir -p generated
1034:  make -C firmware/am243x-lp/icss_g0_rtu_pru0_fw/ti-pru-cgt all
1035:  Building file: "../../../main.asm"
1036:  Invoking: PRU Compiler
1037:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
1038:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-lp/icss_g0_rtu_pru0_fw/ti-pru-cgt'
1039:  mkdir -p generated
1040:  Building file: "../../../main.asm"
1041:  Invoking: PRU Compiler
1042:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.asm
1043:  Finished building: "../../../main.asm"
1044:  Finished building: "../../../main.asm"
1045:  Building target: "generated/pru_add_am243x-lp_icss_g0_rtu_pru0_fw.out"
1046:  Invoking: PRU Linker
1047:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -Ooff --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/pru_add_am243x-lp_icss_g0_rtu_pru0_fw.map --xml_link_info=generated/pru_add_am243x-lp_icss_g0_rtu_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/pru_add_am243x-lp_icss_g0_rtu_pru0_fw.out 
1048:  <Linking>
1049:  Building target: "generated/empty_am243x-lp_icss_g0_rtu_pru0_fw.out"
1050:  Invoking: PRU Linker
1051:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little -z generated/main.obj linker.cmd -mgenerated/empty_am243x-lp_icss_g0_rtu_pru0_fw.map --xml_link_info=generated/empty_am243x-lp_icss_g0_rtu_pru0_fw_linkInfo.xml --display_error_number --diag_wrap=off --diag_warning=225 --diag_suppress=10063-D --warn_sections --reread_libs --entry_point=main --disable_auto_rts --ram_model -o generated/empty_am243x-lp_icss_g0_rtu_pru0_fw.out 
1052:  <Linking>
...

1068:  Translating to Array format...
1069:  "generated/empty_am243x-lp_icss_g0_rtu_pru0_fw.out" .text ==> .text
1070:  cat /home/runner/work/open-pru/open-pru/source/firmware/pru_load_bin_copyright.h generated/empty_am243x-lp_icss_g0_rtu_pru0_fw.h > generated/empty_am243x-lp_icss_g0_rtu_pru0_fw.h.temp
1071:  mv generated/pru_add_am243x-lp_icss_g0_rtu_pru0_fw.h.temp generated/pru_add_am243x-lp_icss_g0_rtu_pru0_fw.h
1072:  make[3]: Leaving directory '/home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/icss_g0_tx_pru0_fw/ti-pru-cgt'
1073:  make -C firmware/am243x-evm/icss_g0_tx_pru1_fw/ti-pru-cgt all
1074:  cp generated/pru_add_am243x-lp_icss_g0_rtu_pru0_fw.h /home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-lp/rtupru0_load_bin.h
1075:  mv generated/empty_am243x-lp_icss_g0_rtu_pru0_fw.h.temp generated/empty_am243x-lp_icss_g0_rtu_pru0_fw.h
1076:  make[3]: Entering directory '/home/runner/work/open-pru/open-pru/examples/empty_c/firmware/am243x-evm/icss_g0_tx_pru1_fw/ti-pru-cgt'
1077:  mkdir -p generated
1078:  cp generated/empty_am243x-lp_icss_g0_rtu_pru0_fw.h /home/runner/work/open-pru/open-pru/examples/empty/firmware/am243x-lp/rtupru0_load_bin.h
1079:  Building file: ../../../main.c
1080:  make[4]: Leaving directory '/home/runner/work/open-pru/open-pru/academy/getting_started_labs/assembly_code/solution/firmware/am243x-lp/icss_g0_rtu_pru0_fw/ti-pru-cgt'
1081:  make -C firmware/am243x-lp/icss_g0_rtu_pru1_fw/ti-pru-cgt all
1082:  Invoking: PRU Compiler
1083:  "/home/runner/ti/ti-cgt-pru_2.3.3/bin/clpru" --include_path=/home/runner/ti/ti-cgt-pru_2.3.3/include --include_path=/home/runner/work/open-pru/open-pru/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source --include_path=/home/runner/ti/mcu_plus_sdk_am243x_11_00_00_15/source/pru_io/firmware/common -v4 -O2 --display_error_number --diag_wrap=off --diag_warning=225 --asm_directory=generated --obj_directory=generated --pp_directory=generated -ppd -ppa -g --endian=little  ../../../main.c
1084:  make[3]: Leaving directory '/home/runner/work/open-pru/o...

Copy link
Collaborator

@pratheesh-ti pratheesh-ti left a comment

Choose a reason for hiding this comment

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

@Aravind-Padma-Kumar Can you fix the build issue following the hint from Qodo bot. This looks overall in better shape. Please respond to all bot comments


# Define build outputs
OUTPUT_NAME := multicore_scheduler_am243x-lp_icss_g0_tx_pru1_fw
HEX_ARRAY_PREFIX := PRU0Firmware

Choose a reason for hiding this comment

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

Suggestion: Fix incorrect hex array prefix

Suggested change
HEX_ARRAY_PREFIX := PRU0Firmware
HEX_ARRAY_PREFIX := TXPRU1Firmware

Signed-off-by: Aravind-Padma-Kumar <[email protected]>
@Aravind-Padma-Kumar
Copy link
Collaborator Author

Review Fixes :
1. Fixed GPIO config typo in am243_am64_pru_pinmux.h
2. Fixed redundant task manager trigger configuration for TX_PRU0
3. Timing configuration in FN_MCS_CFG() centralized using newly introduced MS_TIMER_INC parameter
4. Fixed a missed TM_YIELD_XID macro replacement on task in one core
5. Hex array prefixes fixed
6. Incorrect project name in README instructions fixed
7. Include file "am243_am64_pru_pinmux.h" case fixed

@Aravind-Padma-Kumar Aravind-Padma-Kumar force-pushed the a0510353_multicore_scheduler branch from 81ed265 to d2d6c5a Compare January 16, 2026 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants