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.

Assembly language programs on TMS320F2808

    .text                                   ; Program Start
    .global SIN                      ; Define entry point
SIN:                                        ; Specifying program entry point for the output module
    .asg    10.0e-6, t
    .asg    50, fg
    .asg    3.14, p
va    .set    $cos(2*p*fg*t)
Va    .float    va

     MOV        AR1, #Va

    EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO0        .set     0        ; ERROR [E0002]
GpioCtrlRegs.GPAMUX1.bit.GPIO0        .set     1        ; ERROR [E0002] [E0300]
    EDIS;

**** Build of configuration sin_debug for project sin ****

"C:\\ti\\ccsv5\\utils\\bin\\gmake" -k all
'Building file: ../sin.asm'
'Invoking: C2000 Compiler'
"C:/ti/ccsv5/tools/compiler/c2000_6.1.3/bin/cl2000" -v28 -ml -mt -g --include_path="C:/ti/ccsv5/tools/compiler/c2000_6.1.3/include" --include_path="C:/ti/xdais_7_21_01_07/packages/ti/xdais" --include_path="C:/Users/ITER/Desktop/2808 Support Files/boards/2808eZdspUSB/2808eZdspUSBDiags/Target/DSP280x_common/include" --include_path="C:/Users/ITER/Desktop/2808 Support Files/boards/2808eZdspUSB/2808eZdspUSBDiags/Target/DSP280x_headers/include" --include_path="C:/ti/ccsv5/ccs_base/c2000/include" --include_path="C:/ti/ccsv5/tools/compiler/c2000_6.1.3/lib" --include_path="C:/ti/ccsv5/tools/compiler/c2000_6.1.3/include" --diag_warning=225 --display_error_number --diag_wrap=off --preproc_with_compile

--preproc_dependency="sin.pp"  "../sin.asm"
"../sin.asm", ERROR!   at line 13: [E0002] Invalid mnemonic specification
3 Assembly Errors, No Assembly Warnings
    GpioCtrlRegs.GPAPUD.bit.GPIO0        .set     0        ; Enable pull-up on GPIO0 (EPWM1A)

"../sin.asm", ERROR!   at line 14: [E0300] Symbol GpioCtrlRegs has already been defined
    GpioCtrlRegs.GPAMUX1.bit.GPIO0        .set     1        ; Configure GPIO0 as EPWM1A (GPIO0=EPWM1A)

"../sin.asm", ERROR!   at line 14: [E0002] Invalid mnemonic specification
    GpioCtrlRegs.GPAMUX1.bit.GPIO0        .set     1        ; Configure GPIO0 as EPWM1A (GPIO0=EPWM1A)


Errors in Source - Assembler Aborted

>> Compilation failure
gmake: *** [sin.obj] Error 1
gmake: Target `all' not remade because of errors.

**** Build Finished ****

  • You can't use .set to set bits in registers. The .set directive only works when defining symbols. You'll need to use an OR instruction.
    Try creating a C file which sets GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1, and seeing what instruction the compiler generates.
  • I know writing in term of C file. but i'm using assembly language (.asm) file, so on that way you guide me how to configure GPIO0 pin for EPWM purpose.
  • asim kumar dey said:
    I know writing in term of C file

    The idea is to use the compiler as a way to learn what assembly language you should write.  Write the C code, then compile.  Use the option --src_interlist in addition to other build options.  That option causes the compiler to keep the assembly language source file it generates.  It will be the same name as the C file, but with the extension changed to .asm.  Inspect that file to learn about the relevant assembly instructions.  

    If this method doesn't work, I recommend you start a new thread in the C2000 device forum.

    Thanks and regards,

    -George