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.

TMS320F28375S: About FPUmathTable

Part Number: TMS320F28375S

Hi,

What is the purpose of the FPUmathTable?

If you execute CFFT_f32_mag_TMU0 expanded to RAM without loading FPUmathTable into RAM, the value will be incorrect.

Thanks in advance.

  • Hi,

    The FPUMathTables contain look up tables used by sin and cos APIs in FASTRTS and are also used by FPU-DSP routines. The values will be incorrect if these lookup tables are not present.

    -Shantanu.

  • Thank you for your reply.

    I'm running a FLASH program.


    Is there a way to expand the FPUmathTable?


    Can FPUmathTable be expanded to LS?


    Is FPUmathTable correct with PAGE = 1?


    Are there any other setting items?

    The contents I have set are as follows.

    <Linker Cmd File Stting>
       FPUmathTables: LOAD = FLASHB,
                             RUN = RAMLS012345,
                             RUN_START (_FPUmathTablesRunStart),
                             LOAD_START (_FPUmathTablesLoadStart),
                             LOAD_SIZE (_FPUmathTablesLoadSize),
                             PAGE = 1
    <Source Setting>
    extern uint16_t FPUmathTablesRunStart;
    extern uint16_t FPUmathTablesLoadStart;
    extern uint16_t FPUmathTablesLoadSize;

    memcpy ((uint32_t *) & FPUmathTablesRunStart, (uint32_t *) & FPUmathTablesLoadStart,
                 (uint32_t) & FPUmathTablesLoadSize);

    2364.F2837xD_FPU_CFFT_lnk.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    //#############################################################################
    //
    // FILE: F2837xD_FPU_CFFT_lnk.cmd
    //
    // TITLE: Linker Command File for FPU library examples that run
    // on the 2837x platform
    //
    // This file includes all RAM and FLASH blocks present on the
    // 2837x and depending on the active build configuration(RAM or FLASH)
    // the appropriate sections will either be loaded into RAM or FLASH
    // blocks
    //
    //#############################################################################
    // $TI Release: C28x Floating Point Unit Library V2.03.00.00 $
    // $Release Date: May 26, 2020 $
    // $Copyright: Copyright (C) 2018 Texas Instruments Incorporated -
    // http://www.ti.com/ ALL RIGHTS RESERVED $
    //#############################################################################
    // NOTES:
    // 1. In addition to this memory linker command file, add the header linker
    // command file directly to the project. The header linker command file is
    // required to link the peripheral structures to the proper locations within
    // the memory map.
    //
    // The header linker files are found in
    // c2000\C2000Ware_X_XX_XX_XX\device_support\f2837x(d/s)\headers\cmd
    //
    // For BIOS applications add: F2837x(D/S)_Headers_BIOS_cpuX.cmd
    // For nonBIOS applications add: F2837x(D/S)_Headers_nonBIOS_cpuX.cmd
    //
    // 2. On reset all RAMGSx blocks are under the mastership of CPU1. The user
    // must configure the appropriate control registers to transfer mastership
    // of a RAMGSx block over to CPU2
    //
    // 3. Memory blocks on F2837x are uniform (ie same physical memory) in both
    // PAGE 0 and PAGE 1. That is the same memory region should not be defined
    // for both PAGE 0 and PAGE 1. Doing so will result in corruption of program
    // and/or data.
    //
    // Contiguous SARAM memory blocks can be combined if required to create a
    // larger memory block.
    //
    //#############################################################################
    // The following definitions will help to align the input buffer.For the complex FFT
    // of size N, the input buffer must be aligned to a 4N word boundary. For a real FFT
    // of size N, the input buffer must be aligned to a 2N word boundary. The user may define
    // the macro either in the linker command file, as shown here, or
    // through the project properties under,
    // C2000 Linker -> Advanced Options -> Command File Preprocessing -> --define
    --define CFFT_ALIGNMENT=512
    #if !defined(CFFT_ALIGNMENT)
    #error define CFFT_ALIGNMENT under C2000 Linker -> Advanced Options -> Command File Preprocessing -> --define
    #endif
    MEMORY
    {
    PAGE 0 :
    /* BEGIN is used for the "boot to SARAM" bootloader mode */
    #if defined(RAM)
    BEGIN : origin = 0x000000, length = 0x000002
    #elif defined(FLASH)
    BEGIN : origin = 0x080000, length = 0x000002
    #endif
    RAMGS04 : origin = 0x00C000, length = 0x005000
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Hi,

    Apologies for the late reply. Yes you can assign it to LS RAM as per your requirement. As long as in your code, you are using the memcpy function to load it into RAM, you should be good. Are you facing any issues?

    -Shantanu