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.

TMS320F280025C: 程序中调用了sincosf函数,用C2prog烧录出现Unable to pad and align after processing hex data?

Part Number: TMS320F280025C
Other Parts Discussed in Thread: UNIFLASH

程序中调用了sincosf函数,用C2prog烧录出现Unable to pad and align after processing hex data?

  • 你好,sincosf函数是你自己编写的一个函数吗?或者你是引用的哪里的函数源,函数内容是什么?

    程序中没有调用sincosf函数的情况下程序能否正常烧写?以及,该工程使用其他方式能否烧写?比如CCS, UNIFLASH等。

  • 引用TI自带的函数库内容,生成out文件没有问题,不引用这个sincos函数用C2PROG烧录没有问题,引用这个就提示问题所说内容,用于板子的原因不能用其它工具升级,只能用这个

  • 具体是哪个函数(全名)?引用的位置是哪里?

  • FPUmathTables,三角函数,在ROM中

  • 额,这样吧,方便把调用这个函数的代码提供一下吗?

  • #ifndef C28X_FPU_FAST_RTS_H
    #define C28X_FPU_FAST_RTS_H


    #ifdef __cplusplus
    extern "C" {
    #endif

    //-----------------------------------------------------------------------------
    // Standard C28x Data Types
    //-----------------------------------------------------------------------------


    #ifndef DSP28_DATA_TYPES
    #define DSP28_DATA_TYPES
    typedef int int16;
    typedef long int32;
    typedef long long int64;
    typedef unsigned int Uint16;
    typedef unsigned long Uint32;
    typedef unsigned long long Uint64;
    typedef float float32;
    typedef long double float64;
    #endif


    //-----------------------------------------------------------------------------
    // Function Prototypes
    //-----------------------------------------------------------------------------
    float32 sqrt(float32 X);
    float32 isqrt(float32 X);
    //float32 atan2(float32 y, float32 x);
    void sincos(float32 radian, float32* PtrSin, float32* PtrCos);

    //-----------------------------------------------------------------------------
    //
    //-----------------------------------------------------------------------------

    #ifdef __cplusplus
    }
    #endif /* extern "C" */

    #endif // - end of C28X_FPU_FAST_RTS_H

    //===========================================================================
    // End of file.
    //===========================================================================

  • CMD程序

    BOOTROM : origin = 0x003F0000, length = 0x00001402
    IQTABLES : origin = 0x003F1402, length = 0x0000166D /* IQ Math Tables in Boot ROM */
    FPUTABLES : origin = 0x003F2A70, length = 0x0000081A /* FPU Tables in Boot ROM */
    BOOTROM_EXT : origin = 0x003F8000, length = 0x00007FC0
    RESET : origin = 0x003FFFC0, length = 0x00000002

       FPUmathTables    : > FPUTABLES, ALIGN(8)

  • 你好,我帮你问一下其他工程师,看是否C2Prog烧写有什么需要注意的。

  • 问题:如果 FPUmathTables 在 ROM 中,为什么不将其设为 TYPE = NOLOAD?

    请注意,F280025C 具有 TMU。请看一下这篇文章:https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/626783/ccs-tms320f28075-calculation-error-when-use-sincos-function 

    如果将此函数映射到flash:此函数映射到flash中的哪个位置?链接器 cmd 文件中的该部分是否使用 ALIGN(8) 与 128 位边界对齐?可以提供一下map文件和链接器 cmd 文件吗?