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.

Unable to get CCS to see HWAFFT routines on EVM5515 board

test

i'm trying to test out the FFT routines on the Specturm Digital EVM5515 board. After following the instructions as outlined in the application notes (SPRABB6A), I've updated the command linker file with the memory locations of the HWAFFT functions. I've even verified I have the updated memory locations, based on a forum post I ran across. Unfortunately, I can't get the Code Composer Studio to recognize the functions, resulting in the implicit function definition warning when i try and compile the code.

I have a feeling this might be a CCS setting that's wrong or something along those lines.  Any thoughts?

Adam

  • I'd be happy to provide more information if that would help.


    Thanks,

    Adam

  • Hi Adam,

    Can you post the contents of your .cmd file and the build console output with the errors?

    Thanks,
    Mark

  • Basically in my main.c, I'm trying to call the hwafft_1024pts function and it's not seeing it. I'm not overly familiar with linker file structure, so it could be I simply don't have the memory locations defined properly in the file.

    Thanks again for any help you can provide.

    ___________________________________________________________________

    Linker File:

    -c

    -stack 0x2000                /* PRIMARY STACK SIZE               */

    -sysstack 0x1000             /* SECONDARY STACK SIZE             */

    -heap  0x2000                /* HEAP AREA SIZE                   */ 

     

    /*_RTDX_interrupt_mask = ~0x06000010; */

     

    /* Set entry point to Reset vector                                  */

    /* - Allows Reset ISR to force IVPD/IVPH to point to vector table.  */

    /*-e reset_isr */

     

    MEMORY

    {

     

     PAGE 0:

        MMR     (RW) : origin = 0000000h length = 0000c0h /* MMRs */

     

        DARAM (RW)    : origin = 00000c0h length = 00ff40h  /* on-chip DARAM */

        SARAM   (RW)  : origin = 0030000h length = 01e000h /* on-chip SARAM */

        SAROM_0 (RX)  : origin = 0fe0000h length = 008000h      /* on-chip ROM 0 */

        SAROM_1 (RX)  : origin = 0fe8000h length = 008000h      /* on-chip ROM 1 */

        SAROM_2 (RX)  : origin = 0ff0000h length = 008000h      /* on-chip ROM 2 */

        SAROM_3 (RX)  : origin = 0ff8000h length = 008000h      /* on-chip ROM 3 */

       

        EMIF_CS0 (RWIX)  : origin = 0050000h  length = 07B0000h   /* mSDR */

          EMIF_CS2 (RWIX)  : origin = 0800000h  length = 0400000h   /* ASYNC1 : NAND */

          EMIF_CS3 (RWIX)  : origin = 0C00000h  length = 0200000h   /* ASYNC2 : NAND  */

          EMIF_CS4 (RWIX)  : origin = 0E00000h  length = 0100000h   /* ASYNC3 : NOR */

          EMIF_CS5 (RWIX)  : origin = 0F00000h  length = 00E0000h   /* ASYNC4 : SRAM */

     

    PAGE 2:  /* -------- 64K-word I/O Address Space -------- */

     

      IOPORT (RWI) : origin = 0x000000, length = 0x020000

     

    }

     

     

    SECTIONS

    {

        vectors (NOLOAD)

        .bss        : > SARAM /*, fill = 0 */

        vector      : > DARAM      ALIGN = 256

        .stack      : > DARAM 

        .sysstack   : > DARAM 

        .sysmem     : > DARAM

        .text       : > SARAM 

        .data       : > DARAM

        .cinit            : > DARAM

        .const            : > DARAM

        .cio        : > DARAM

        .usect      : > DARAM

        .switch     : > DARAM

        .emif_cs0   : > EMIF_CS0

        .emif_cs2   : > EMIF_CS2

        .emif_cs3   : > EMIF_CS3

        .emif_cs4   : > EMIF_CS4

        .emif_cs5   : > EMIF_CS5

        data_buf    : > DARAM

        scratch_buf : > DARAM

        

        .ioport   >  IOPORT PAGE 2         /* Global & static ioport vars */

    }

     

    /* HWAFFT Routines ROM Addresses */

    /* C5505/C5515 (PG 2.0) */

    _hwafft_br = 0x00ff6cd6;

    _hwafft_8pts = 0x00ff6cea;

    _hwafft_16pts = 0x00ff6dd9;

    _hwafft_32pts = 0x00ff6f2f;

    _hwafft_64pts = 0x00ff7238;

    _hwafft_128pts = 0x00ff73cd;

    _hwafft_256pts = 0x00ff75de;

    _hwafft_512pts = 0x00ff77dc;

    _hwafft_1024pts = 0x00ff7a56;

    _____________________________________________________________

    Build Problems:

    Problems:

    Severity and Description            Path     Resource          Location           Creation Time    Id

    function declared implicitly        EVM_Sample    main.c  line 414 1312981134893 18591

     

    __________________________________________________________________

    Console Output during build:

     

    **** Build of configuration Debug for project EVM_Sample ****

     

    C:\Program Files\Texas Instruments\ccsv4\utils\gmake\gmake -k all

    'Building file: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/asm/aic_test_i2c.asm'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/bin/cl55" -v5515 -g --define="_DEBUG" --define="C55X" --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/include" --include_path="/packages/ti/xdais" --include_path="/include" --include_path="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/inc" --diag_warning=225 --ptrdiff_size=32 --algebraic --memory_model=huge --obj_directory="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/EVM_Sample/Debug" --preproc_with_compile --preproc_dependency="aic_test_i2c.pp"  "C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/asm/aic_test_i2c.asm"

    'Finished building: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/asm/aic_test_i2c.asm'

    ' '

    'Building file: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/dma.c'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/bin/cl55" -v5515 -g --define="_DEBUG" --define="C55X" --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/include" --include_path="/packages/ti/xdais" --include_path="/include" --include_path="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/inc" --diag_warning=225 --ptrdiff_size=32 --algebraic --memory_model=huge --obj_directory="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/EVM_Sample/Debug" --preproc_with_compile --preproc_dependency="dma.pp"  "C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/dma.c"

    'Finished building: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/dma.c'

    ' '

    'Building file: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/i2s.c'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/bin/cl55" -v5515 -g --define="_DEBUG" --define="C55X" --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/include" --include_path="/packages/ti/xdais" --include_path="/include" --include_path="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/inc" --diag_warning=225 --ptrdiff_size=32 --algebraic --memory_model=huge --obj_directory="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/EVM_Sample/Debug" --preproc_with_compile --preproc_dependency="i2s.pp"  "C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/i2s.c"

    'Finished building: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/i2s.c'

    ' '

    'Building file: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/asm/i2s_register.asm'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/bin/cl55" -v5515 -g --define="_DEBUG" --define="C55X" --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/include" --include_path="/packages/ti/xdais" --include_path="/include" --include_path="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/inc" --diag_warning=225 --ptrdiff_size=32 --algebraic --memory_model=huge --obj_directory="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/EVM_Sample/Debug" --preproc_with_compile --preproc_dependency="i2s_register.pp"  "C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/asm/i2s_register.asm"

    'Finished building: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/asm/i2s_register.asm'

    ' '

    'Building file: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/lcd.c'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/bin/cl55" -v5515 -g --define="_DEBUG" --define="C55X" --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/include" --include_path="/packages/ti/xdais" --include_path="/include" --include_path="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/inc" --diag_warning=225 --ptrdiff_size=32 --algebraic --memory_model=huge --obj_directory="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/EVM_Sample/Debug" --preproc_with_compile --preproc_dependency="lcd.pp"  "C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/lcd.c"

    'Finished building: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/lcd.c'

    ' '

    'Building file: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/main.c'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/bin/cl55" -v5515 -g --define="_DEBUG" --define="C55X" --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/include" --include_path="/packages/ti/xdais" --include_path="/include" --include_path="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/inc" --diag_warning=225 --ptrdiff_size=32 --algebraic --memory_model=huge --obj_directory="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/EVM_Sample/Debug" --preproc_with_compile --preproc_dependency="main.pp"  "C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/main.c"

    "C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/main.c", line 414: warning: function declared implicitly

    'Finished building: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/main.c'

    ' '

    'Building file: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/rtc.c'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/bin/cl55" -v5515 -g --define="_DEBUG" --define="C55X" --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/include" --include_path="/packages/ti/xdais" --include_path="/include" --include_path="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/inc" --diag_warning=225 --ptrdiff_size=32 --algebraic --memory_model=huge --obj_directory="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/EVM_Sample/Debug" --preproc_with_compile --preproc_dependency="rtc.pp"  "C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/rtc.c"

    'Finished building: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/rtc.c'

    ' '

    'Building file: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/sar.c'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/bin/cl55" -v5515 -g --define="_DEBUG" --define="C55X" --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/include" --include_path="/packages/ti/xdais" --include_path="/include" --include_path="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/inc" --diag_warning=225 --ptrdiff_size=32 --algebraic --memory_model=huge --obj_directory="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/EVM_Sample/Debug" --preproc_with_compile --preproc_dependency="sar.pp"  "C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/sar.c"

    'Finished building: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/sar.c'

    ' '

    'Building file: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/timer.c'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/bin/cl55" -v5515 -g --define="_DEBUG" --define="C55X" --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/include" --include_path="/packages/ti/xdais" --include_path="/include" --include_path="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/inc" --diag_warning=225 --ptrdiff_size=32 --algebraic --memory_model=huge --obj_directory="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/EVM_Sample/Debug" --preproc_with_compile --preproc_dependency="timer.pp"  "C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/timer.c"

    'Finished building: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/src/timer.c'

    ' '

    'Building file: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/asm/vector.asm'

    'Invoking: Compiler'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/bin/cl55" -v5515 -g --define="_DEBUG" --define="C55X" --include_path="C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/include" --include_path="/packages/ti/xdais" --include_path="/include" --include_path="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/inc" --diag_warning=225 --ptrdiff_size=32 --algebraic --memory_model=huge --obj_directory="C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/EVM_Sample/Debug" --preproc_with_compile --preproc_dependency="vector.pp"  "C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/asm/vector.asm"

    'Finished building: C:/Program Files/Texas Instruments/ccsv4/emulation/boards/evm5515_v1/tests/demo/EVM_Samples/asm/vector.asm'

    ' '

    'Building target: EVM_Sample.out'

    'Invoking: Linker'

    "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/C5500 Code Generation Tools 4.3.8/bin/cl55" -@ccsLinker.opt -o "EVM_Sample.out"

    <Linking>

    'Finished building target: EVM_Sample.out'

    ' '

    Build complete for project EVM_Sample

     

  • Hi Adam,

    Your linker .cmd file looks fine for C5515.

    Maybe you are not passing the right parameters to the hwafft functions. That would cause an implicit declaration warning. [1]

    Take a look at the parameters passed to the hwafft functions.

    The parameters of the functions are shown in the prototypes in hwafft.h:

    void hwafft_br(
        Int32 *data,  
        Int32 *data_br,
        Uint16 data_len
    );

    Uint16 hwafft_8pts(
        Int32 *data,
        Int32 *scratch,
        Uint16 fft_flag,
        Uint16 scale_flag
    );
    ...

    The symbol address is defined in the linker .cmd file with the underscore in front of the symbol name:

    _hwafft_br = 0x00ff6cd6;

    _hwafft_8pts = 0x00ff6cea;
    ...

    The functions like below with the following variables/flags passed:

    hwafft_br(scratch, data_br, FFT_LENGTH)

    out_sel = hwafft_8pts(data, scratch, fft_flag, scale_flag);

    Hope this helps,
    Mark