This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MCU-PLUS-SDK-AM263X: AM263X

Part Number: MCU-PLUS-SDK-AM263X

Can you please provide details of the supported assembly instructions available on the PRU-ICSS in the AM263X devices.

The only assembly instruction user guide I can find is spruij2 April 2018.

However the instructions mentioned are generating errors when assembling the .asm files using these instructions.

...

Building file: "../main.asm"
Invoking: PRU Compiler
"C:/ti/ccs1120/ccs/tools/compiler/ti-cgt-pru_2.3.3/bin/clpru" -v4 --include_path="C:/ti/ccs1120/ccs/tools/compiler/ti-cgt-pru_2.3.3/include" --include_path="C:/ti/mcu_plus_sdk_am263x_09_00_00_35/source" --include_path="C:/ti/mcu_plus_sdk_am263x_09_00_00_35/source/pru_io/firmware/common" --include_path="C:/Dev/SDR/ti_ccs_ws/application__ICSSM_PRU_0" --define=PRU0 --define=SLICE0 --define=SOC_AM263X --define=_DEBUG=1 -g --diag_warning=225 --diag_wrap=off --display_error_number --endian=little --preproc_with_compile --preproc_dependency="main.d_raw" --include_path="C:/Dev/SDR/ti_ccs_ws/application__ICSSM_PRU_0/Debug/syscfg" "../main.asm"
2 Assembly Errors, No Assembly Warnings

>> Compilation failure
subdir_rules.mk:9: recipe for target 'main.obj' failed
"../main.asm", ERROR! at line 51: [E0003] Invalid instruction
L1: qbbs L1, R31.t31

"../main.asm", ERROR! at line 53: [E0003] Invalid instruction
    WBC R31.t30


Errors in Source - Assembler Aborted
gmake: *** [main.obj] Error 1
gmake: Target 'all' not remade because of errors.

...

I am unable to get information on which instructions are supported and which are not on this MCU.
Also I cannot find any documentation on the assembly errors being generated.


Thank you for any help.

Ralph G.

  • Hi

    L1: qbbs L1, R31.t31

    Can you modify your code to have the label and instruction in separate lines and check again?
    L1:
    qbbs L1, R32.t31

    Regards
    Dhaval


  • Unfortunately this made no difference, here is the listing showing the error on both forms of the  instruction.

    PRU Assembler PC v2.3.3 Wed Nov 29 10:53:10 2023
    
    Tools Copyright (c) 2012-2018 Texas Instruments Incorporated
    ../main.asm                                                          PAGE    1
    
           1
           2;************************************************************************************
           3;   File:     main.asm
           4;************************************************************************************
           5
           6; CCS/makefile specific settings
           7    .retain     ; Required for building .out with assembly file
           8    .retainrefs ; Required for building .out with assembly file
           9
          10    .global     main
          11 00000000                     .sect       ".text"
          12
          13;************************************* includes *************************************
          14; icss_constant_defines.inc: Defines symbols corresponding to Constant Table Entries
          15    .include "icss_constant_defines.inc"
          16;    .include "defines.inc"
          17
          18;************************************************************************************
          19
          20;************************************************************************************
          21
          22
          23;********
          24;* MAIN *
          25;********
          26
          27 00000000                 main:
          28
          29 00000000                 init:
          30;----------------------------------------------------------------------------
          31;   Clear the register space
          32;   Before begining with the application, make sure all the registers are set
          33;   to 0. PRU has 32 - 4 byte registers: R0 to R31, with R30 and R31 being special
          34;   registers for output and input respectively.
          35;----------------------------------------------------------------------------
          36
          37; Give the starting address and number of bytes to clear.
          38 00000000 0000002EFFBB80      zero &r0, 120
          39
          40;----------------------------------------------------------------------------
          41
          42
          43 00000004                 loop_process:
          44
          45 00000004 00000011C07F00      and     r0.b0, r31.b3,  0xC0
          46
          47 00000008 000000570000FF      qbeq        loop_process,r0.b0,0
          48
          49; Do something here
          50 0000000c 00000010000000      nop
          51
          52l1: qbbs  l1, R31.t31
     "../main.asm", ERROR!   at line 52: [E0003] Invalid instruction
          53
          54 00000010                 l2:
    PRU Assembler PC v2.3.3 Wed Nov 29 10:53:10 2023
    
    Tools Copyright (c) 2012-2018 Texas Instruments Incorporated
    ../main.asm                                                          PAGE    2
    
          55    qbbs  l2, R31.t31
     "../main.asm", ERROR!   at line 55: [E0003] Invalid instruction
          56
          57
          58 00000010 0000007F0000FD      qba loop_process
          59
    
    2 Assembly Errors, No Assembly Warnings
    

  • Hi

    Can you please try using the other format for this instruction? So you can modify the instruction like following:

    qbbs L1, R31.t31

    to 

    qbbs L1, R31, 31

    Regards
    Dhaval