TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] CCS/F28M36P63C2:F28M36x 上的 FFT

Guru**** 2048030 points
Other Parts Discussed in Thread: C2000WARE, CONTROLSUITE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/785280/ccs-f28m36p63c2-fft-on-f28m36x

器件型号:F28M36P63C2
Thread 中讨论的其他器件:C2000WAREcontrolSUITE

工具/软件:Code Composer Studio

我正在尝试在我正在使用的 F28m36x 电路板上实现 FFT。 我已将2837x_vcu0_rfft_512示例用作模板。 我认为电路板上的 vcu0单元配置正确。 编译后、我查看了存储器、并看到 vcu0_CFFT_utils.asm 和 vcu0_CFFT_256.asm 中定义的函数被写入存储器。 我从 rfft_512_data.asm 中获取了示例输入、并将 FFT 输入指针指向数据、然后运行代码以查看来自 FFT 的输出是否与预期输出相匹配。 当我查看反汇编时、我看到函数标签被加载到工作寄存器中、但我在反汇编窗口中看不到函数的汇编代码。 我继续单步执行代码、看到工作缓冲区中填充了新数据、但在完成代码后、我查看了输入缓冲区的内容、数据没有发生变化。 它认为、如果点数是偶数、汇编函数应该写回输入缓冲器、在这种情况下是偶数。 我有点被骗了

cfft16_t FFT = rfft16_512P_DEFAULTS;

ComplexShort FFT_Work_buffer[256];

void rfft16 (cfft16_t * FFT_HND);

void main (void){

FFT.ipcbptr =(int *) RFFT16_512p_in_data + 0;
   FFT.workptr =(int *) FFT_work_buffer + 0;
   fft.init(&fft);
   rfft16(&FFT);
   int k;
   int s、t、v;
   对于(k = 0;<DATA_LENGTH; k++){ 为0.8MHz
       if (abs (RFFT16_512p_out_data[k]- RFFT16_512p_in_data[k])> Epsilon){     
           S = RFFT16_512p_OUT_DATA[k];
           t = RFFT16_512p_in_data[k];
           V =绝对(s-t);
           FAIL++;
       }
       否则{
           pass ++;
       }
   }

在迭代 for 循环后、我有512个失败。 FFT 结构和函数包含在 DSP 库 v2_10_00_00/include/vcu0下的 vc0_FFT.h/vcu_types.h 文件中

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    约书亚、

    请给我一整天左右的时间来回顾一下、并告诉我。

    谢谢、
    Sira
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Sira,

    因此、我能够弄清楚如何单步执行汇编并查看汇编代码。 问题现在似乎与 vcu0_CFFT_utils.asm 中的函数_cfft16_flip_re_img 中的这一部分代码有关

    RPTB       FLIP_LOOP、AR1
    MOV        AH、*+ XAR2[0];
    MOV        AL、*+ XAR2[1];
    MOVL       *XAR2++,ACC

    我可以在寄存器中看到加载到累加器中的存储器的正确值、但在存储步骤中、存储器似乎没有变化。

    例如:

    @0x0013250A 0xFA60

    @0x0013250B 0xF876

    AH:0xFA60、AL:0xF876、XAR2: 0x0013250A

    写回 XAR2时、内容不会改变。 我不确定问题是什么。

    谢谢、

    Josh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    约书亚、您好!

    在详细介绍您遇到的问题的技术之前、我想先询问您是否可以从使用 VCU FFT 切换到 FPU FFT。 C2000Ware v1_06_00_00在 DSP 库文件夹下支持 FPU 和 VCU 库。 但是、接下来、我们将删除对 VCU FFT 库的支持。 考虑到这一点、并且 F28M36x 器件包含 FPU、因此我请求进行更改。

    如果这起作用、您能否使用 FPU FFT 库重复您的步骤、并让我知道结果如何。
    谢谢、
    Sira
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Sira,
    感谢您的回答。 因此、我相信我已经正确设置了项目。 我将2833x_RFFT 示例用作模板。 我已正确配置了属性(我希望)并编译了项目。 我现在卡在调试器中。 我调用 RFFT_F32 (&rfft)函数并单步执行汇编:
    _RFFT_F32:
    ADDB SP、#2
    MOVL *-SP[2]、XAR4
    LCR _rfft_F32_Stages1和2和3以及位反向
    MOVL XAR4、*-SP[2]
    LCR _rfft_F32_Stages4和 Up
    SubB SP、#2
    LRETR
    在 LRETR 指令执行之前、一切都平稳运行。 调试器会抛出一条消息、指出程序指令内存位置存在中断。 我认为这是函数调用末尾的返回指令?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Sira,

    很抱歉、我不断向您提出问题、但我对拆卸窗口很好奇。 部分代码如下所示:

    1293c5:   761F002B   MOVW        DP、#0x2b
    1293c7:   4A2F       TBIT        @0x2F、#0xA
    1293c8:   6C07       SB          C$L18、NTC
    1293c9:   482F       TBIT        @0x2F、#0x8
    1293ca:   6D03       SB          C$L17、TC
    1293cb:   492F       TBIT        @0x2F、#0x9
    1293cc:   6C03       SB          C$L18、NTC
    417             返回(0);

    它的其他部分看起来是什么样的

    1293d2:   FE02       ADD2        SP、#2
    140            MOVL *-SP[2]、XAR4
    1293d3:   A842       MOVL        *-SP[2]、XAR4
    141            LCR _rfft_F32_Stages1和2和3以及位反向
    1293d4:   765293DB   LCR         $C:/ti/controlSUITE/libs/dsp/FPU/v131/source/C28x_FPU_LIB/RFFT_f32.asm:192:356$
    142            MOVL XAR4、*-SP[2]
    1293d6:   8A42       MOVL        XAR4、*- SP[2]
    143            LCR _rfft_F32_Stages4和 Up
    1293d7:   76529447   LCR         C:/ti/controlSUITE/libs/dsp/FPU/v131/source/C28x_FPU_LIB/RFFT_f32.asm:363:590$
    144            SubB SP、#2
    1293d9:   FE82       SubB        SP、#2
    145            LRETR
    1293da:   0006       LRETR        
    192             按    XAR1

    我可以看到它们是指汇编文件中的行。 区别是否源于.asm 文件中的汇编与通过 C 代码生成的汇编?

    此外、函数的一些标签作为目录路径编写、而其他标签则是基本标签。 这是我很难出错的原因吗?

    例如:

    0x1293DB:$C:/ti/controlSUITE/libs/dsp/FPU/v131/source/C28x_FPU_LIB/RFFT_f32.asm:192:356$、rfft_F32_Stages1and2and3and BitReverse

    0x12943A:rfft_32_last  

    两个函数都写入同一个文件中、因此它们的显示方式不同看起来很奇怪。

    谢谢、

    Josh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    约书亚、

    由于您的问题与 CCS 调试(反汇编等)有关、而不是与 FFT 库指令本身有关、因此我已向同事征求建议。 您可能会看到 Vamsi 的一些注释。

    同时、我假设您只是执行示例代码并运行到一个问题中?? 这是令人惊讶的。 您应该能够在控制卡硬件(例如)上运行示例而不会出现问题。 或者、程序是否实时正确运行、并且您正在调试程序(以便更好地理解或其他原因)并运行到这些问题中?

    谢谢、
    Sira
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Sira,
    我意识到我的问题是由于我从未初始化 FFT 结构、因此 FFT.FFTize 为零。 设置一个值后、函数运行。 现在、我要处理的问题来自这一行代码

    RFFTin1Buff[i]= sin (Rad)+ cos (Rad*2.3567);

    在调试器中、代码在该函数中似乎失败
    float cosf (float x)

    int 符号; /*结果的符号*/
    float xn、f、g、rg、result;
    int n;

    / /
    /* cos (x)= cos (-x) *
    / /
    x = fabsf (x);

    / /
    /*将0视为特殊情况。 *
    / /
    如果(x = 0.0)返回1.0;

    / /
    /* n =舍入(x/PI + 1/2)(可以通过这种方式舍入、因为是正数)*/
    / /
    N =(int)((((x + HALFPI)* INVSPI)+ 0.5f);
    Xn =(浮点) n - 0.5;

    / /
    /*如果 n 是奇数、则取反符号 *
    / /
    符号= n % 2;

    / /
    /* f = x - xn * pi (但数学上更稳定) *
    / /
    f =(x - xn * C1)- xn * C2;

    / /
    /*确定多项式表达式 *
    / /
    G = f * f;

    RG =(((R4 * g + R3)* g + R2)* g + R1)* g;

    结果= f + f * Rg;
    返回标志? 结果:结果;


    拆卸:
    cos、cosf():
    12986a:FE02 ADDK SP、#2
    101. x = fabsf (x);
    12986b:E6950000 ABSF32 R0H、R0H
    106. 如果(x = 0.0)返回1.0;
    12986d:E5A0 CMPF32 R0H、#0.0
    12986e:AD14 MOVST0 NF、ZF
    12986f:6004 SB C$L1、NEQ
    129870:E801FC00 MOVIZ R0、#0x3f80
    129872:6F57 SB C$L2、UNC //代码在此位置跳转
    129. RG =(((R4 * g + R3)* g + R2)* g + R1)* g;
    C$L1:
    129873:E801FE49 MOVIZ R1、#0x3fc9
    129875:E801F512 MOVIZ R2、#0x3ea2
    129877:E8087ED9 MOVXI R1H、#0xfdb
    129879:E7100009 ADDF32 R1H、R1H、R0H
    12987b:E80FCC1A MOVXI R2H、#0xf983
    12987d:E7000051 MPYF32 R1H、R2H、R1H
    12987f:7700 NOP
    129880:E88FC009 ADDF32 R1H、#0x3f00、R1H
    129882:7700 NOP
    129883:E68C0009 F32TOI16 R1H、R1H
    129885:7700 NOP
    129886:3B01 SETC SXM
    129887:BFA90F16 MOV32 @ACC、R1H
    129889:85A9 MOV ACC、@AL
    12988a:BDA90F16 MOV32 R1H、@Ω 附件
    12988c:7700 NOP
    12988d:7700 NOP
    12988e:7700 NOP
    12988f:7700 NOP
    129890:E689000A I32TOF32 R2H、R1H
    129892:7700 NOP
    129893:E8AFC012 ADDF32 R2H、#bbf00、R2H
    129895:E801D3E9 MOVIZ R1、#0x3a7d
    129897:E8501253 MPYF32 R3H、#0x4049、R2H
    129899:E80D5111 MOVXI R1H、#0xaa22
    12989b:E7518089 MPYF32 R1H、R1H、R2H
    || SUBF32 R0H、R0H、R3H
    12989d:E805CA7B MOVIZ r3、#b0x94f
    12989f:E7200041 SUBF32 R1H、R0H、R1H
    1298a1:E801B172 MOVIZ R2、#0x362e
    1298a3:E7000048 MPYF32 R0H、R1H、R1H
    1298a5:E80CE2DA MOVXI R2H、#0x9c5b
    1298a7:E7000012 MPYF32 R2H、R2H、R0H
    1298a9:E80D9113 MOVXI R3H、#b2222
    1298ab:E710009B ADDF32 R3H、R3H、R2H
    1298AD:E801E042 MOVIZ R2、#0x3c08
    1298af:E70000C3 MPYF32 R3H、R0H、R3H
    1298b1:E80C39F2 MOVXI R2H、#0x873e
    1298b3:E710009B ADDF32 R3H、R3H、R2H
    1298b5:E805F152 MOVIZ R2、#0xbe2a
    1298b7:E70000C3 MPYF32 R3H、R0H、R3H
    1298b9:E80D5522 MOVXI R2H、#0xaaa4
    1298bb:E71000D2 ADDF32 R2H、R2H、R3H
    1298bd:7700 NOP
    1298be:E7000080 MPYF32 R0H、R0H、R2H
    1298c0:7700 NOP
    131. 结果= f + f * Rg; //This is it jumps to.(是它跳到的。
    1298c1:E7000040 MPYF32 R0H、R0H、R1H
    132. 返回标志? 结果:结果;
    1298c3:40A9 TBIT @AL、#0x0
    131. 结果= f + f * Rg;
    1298c4:E7100040 ADDF32 R0H、R0H、R1H
    132. 返回标志? 结果:结果;
    1298c6:6C03 SB C$L2、NTC
    1298c7:E6AF0000 NEGF32 R0H、R0H、UNCF
    132. 返回标志? 结果:结果;
    C$L2:
    1298c9:FE82 子 B SP、#2
    1298ca:0006 LRETR

    代码达到 x = fabsf (x);但从不进入函数。
    然后、如果(x = 0.0)返回1.0;。
    之后、它跳至结果= f + f * Rg;
    然后、它将完全保留该函数、并且我的 RFFTinBuf 从未写入。 我查看了2833x_RFFT 示例项目属性、并将其与我的项目进行了比较、我相信我的项目配置正确、但我不确定。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    约书亚、

    您是否能够在不进行任何修改的情况下从 C2000Ware 中成功运行 TI 提供的2833x_RFFT 示例项目? 这将是第一步。

    然后、我们可以讨论您的项目中正在发生的情况。 您的项目2833x_RFFT 项目有何区别? 我假设您的项目是您想要实现 FFT 功能的特定应用、并且您正在引入2833x_RFFT 项目中的各个部分?

    在您的项目中需要检查的内容包括链接器命令文件、项目中链接到的库(请参阅下图)、要包含的头文件(math.h)、并注意构建后生成的任何警告。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Josh、

    Sira 请我就您发布的与反汇编视图相关的问题发表评论。

    关于您复制的两个反汇编视图之间的差异:是的、您发布的两个代码段之间的差异是由直接汇编与生成的汇编引起的。

    关于标签显示差异:我认为它基于全局功能与局部功能。 如果需要、我可以进一步检查和确认。 但我认为这与你所面临的问题没有任何关系。

    谢谢、此致、
    Vamsi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    因此、我最终测试这些函数是否正常工作、我创建了一个名为 float sinf_new (void)/cosf_new 的新函数、并从在 s_cosf.c 和 s_ssinf.c 中定义的 sinf ()/cosf ()复制到代码上、然后运行我的代码。 它似乎在工作。 因此、我看到的是、当我运行原始代码时、我被带到函数内部、但函数背景呈灰色显示、我之前看到的是我没有定义预处理器符号的情况。  

    #if __TI_has_F32_hardware &&!__TI_has_F64_hardware 包含在函数定义上方。 我应该将其放置在预定义符号中吗?

    现在、我删除了所有2833x_RFFT 代码、并将其替换为2837x_RFFT 代码、我将每次插入一个代码段、以查看在何处发生任何错误、同时使用 sin 和 cos 函数的重新定义。

    谢谢

    Josh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    约书亚、

    我认为2833x_RFFT 或2837x_RFFT 示例之间没有真正的区别。 它只是一个不同的器件、因此链接器命令文件可能不同。

    由于您的目标是 F28M36x、因此您可以从 F28M36x 项目开始、controlSUITE 具有这些项目(例如 C:\ti\controlSUITE\device_support\f28m36x\V200\F28M36x_examples_Dual -也许 Internal_Loopback _Serial 是一个不错的选择)。 然后是移植文件(源文件和头文件-例如 main.c)、修改链接器命令文件(为 FFT 缓冲区分配正确的位置、例如输入、输出、系数)、以及获取库并在项目中链接到它的问题。

    如果完成了这些操作、您就不必执行太多其他操作、尤其是将正弦和余弦函数内容复制到不同函数中等操作

    谢谢、
    Sira
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Sira,

    因此、我从 C28x 端的 ADC_SoC f28m36x 项目和 ARM 端的 UART 项目开始。 我能够正确实现我希望实现的功能。 这时、我开始尝试从控制套件中提供的示例移植 FFT 算法。 现在、我让 FPU 工作、并且在调用 sin cos 函数后正确填充 FFT 数组。 我认为我的链接器设置正确、因为我运行了我拥有的内容、并查看了程序在反汇编和存储器查看器中的执行方式。 我现在看到的唯一问题是调用 sinf.c 和 cosf.c 中的 sin 和 cos 定义两个函数的整个块都是灰色的、因此我认为这意味着在编译期间不会包含这些函数、因为当我从#ifdef FPU32 &&!FPU64块中删除代码时会执行代码。 我认为它是预处理器符号问题的原因是、当我添加 USE_TABTIONS 语句时、我看到该标签下灰显的代码段变为白色。

    谢谢、

    Josh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Josh、

    如果我理解正确的话,您说正弦和余弦调用在代码块中,代码块中有#ifdef FPU32 &&!FPU64条件?

    如果正确:
    1.我很困惑为何会出现这种情况。 因为如果器件包含 FPU、它应该能够生成本机浮点指令(针对 sin 和 cos)、如果不包含、它应该能够无论如何仿真它们。 您能告诉我哪个项目和哪个文件具有此条件块吗?
    2、无论如何、由于 F28M36x 具有 FPU32且没有 FPU64、因此在您的项目中此条件应为真。 在项目属性中、在 C2000编译器-处理器选项下、-FPU_support 应设置为 FPU32。

    谢谢、
    Sira
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Sira,

    我终于能够让项目运行了。 我唯一剩下的问题是对犯罪和余弦的调用。 正如我之前说过的、我必须定义一个新函数来实现 cos 和 sin 函数。 当我将语句 __TI_HAS_F32_hardware &&添加到预定义的符号中时,编译器会告诉我,我有一个错误,该错误指出没有源代码,它没有任何作用。 但除此之外、其他一切都很完美。

    谢谢、

    Josh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Josh、

    请回答我之前提出的2个问题、我感到困惑的另一点是、您之前提到了#ifdef FPU32 &&!FPU64块、而现在您提到了_TI_HARS_F32_hardware &&!__TI_HART_F64_hardware。 我想知道提及这些内容的文件。

    当然、您要包含这些内容 ,对吗?

    谢谢、
    Sira
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Sira,
    很抱歉、我没有注意到您之前写过的回复。 我在前一份答复中有误写。 确切措辞为:
    #if __TI_has_F32_hardware &&!__TI_has_F64_hardware
    /*------------------ *
    /*此硬件具有快速的32位硬件,但不具有64位硬件。 我们 *
    /*不要为了*/牺牲硬件计算的 O (100x)加速
    /*非常小的64位计算额外精度。 *
    /*------------------ *

    #define INVSPI0.31830988618379067154f
    #define HALFPI1.57079632679489661923f
    define C13.140625f
    #define C29.6765358973e-4F
    #define R1-0.1666665668e+0f
    #define R20.8333025139e-2f
    #define R3-0.1980741872e-3f
    #define R40.2601903036e-5F

    / /
    /* COS()-余弦*
    /**
    /*基于"初级软件手册"中的算法 *
    /* Functions"、Cody 和 Waite、Prentice Hall 1980、第8章。 *
    /**
    /* N =舍入(x / PI + 1/2)- 0.5*
    /* f = x - N * PI*
    /* g = f * f*
    /* R =多项式表达式*
    /**
    /*结果= f + f * R*
    /*如果 N 为偶数,则结果=-结果*
    /**
    /*这将返回 x >= MAXINT * PI 的错误结果*
    / /
    float cosf (float x)

    int 符号; /*结果的符号*/
    float xn、f、g、rg、result;
    int n;

    / /
    /* cos (x)= cos (-x) *
    / /
    x = fabsf (x);

    / /
    /*将0视为特殊情况。 *
    / /
    如果(x = 0.0)返回1.0;

    / /
    /* n =舍入(x/PI + 1/2)(可以通过这种方式舍入、因为是正数)*/
    / /
    N =(int)((((x + HALFPI)* INVSPI)+ 0.5f);
    Xn =(浮点) n - 0.5;

    / /
    /*如果 n 是奇数、则取反符号 *
    / /
    符号= n % 2;

    / /
    /* f = x - xn * pi (但数学上更稳定) *
    / /
    f =(x - xn * C1)- xn * C2;

    / /
    /*确定多项式表达式 *
    / /
    G = f * f;

    RG =(((R4 * g + R3)* g + R2)* g + R1)* g;

    结果= f + f * Rg;
    返回标志? 结果:结果;


    其他....
    这是在 s_cosf.c 文件中定义的。 我在 TI 文件夹中进行了搜索、以查看文件的路径、以查看文件所在的位置、但搜索不会返回文件。 我猜它是 C28x_Fpu_DSP_library.lib 或 rts2800_fpu32.lib 的一部分、但我不确定。
    至于其他问题,是的,我在 C200->处理器选项下的“指定浮点支持(--float_support)”选项中设置了 fpu32,我已经包括了该选项

    我的 include 语句;
    #include "DSP28x_Project.h"
    #include "F28M36x_IPC_DRIVERS.h"
    #include
    #include

    //rfft 包括
    //
    #include "fpu_rfft.h"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Josh、

    我运行了2837x_RFFT 工程(当我实时运行时该工程会正常运行)、然后我单步执行该工程并找到以下内容:
    1. s_cosf.c 位于 C:\ti\ccsv8\tools\compiler\ti-cgt-C2000-18.1.3.LTS lib\src 中(根据您的 CCS 版本和工程使用的编译器、此路径会相应地发生更改
    2.我找到 了#if 部分、正如您提到的、它是灰色的、但这是执行的部分(与我们使用的内容相反、即灰色表示它不会执行。 不知道原因、但这是很好的了解。 我尝试将断点放置在#else 部分、但 CCS 不会这样做)。 它还会按照您之前提到的方式执行一些消息。 因此、您的执行流程和我的执行流程看起来非常相似。
    基于此、我相信您的项目将能够实时正常运行。 我看不到您的正弦或余弦没有任何问题、您不必创建自己的实现方案。 您是否尝试实时运行并检查它是否通过了测试?
    4.如果仍然失败、您能否尝试 F2833x 或 F2837x 示例项目(如果您有相应的硬件)?
    5.如果您没有硬件、并且 F28M36x 项目实时失败、您可以尝试使用 USE_Tables 宏、看看它是否实时运行良好?

    谢谢、
    Sira
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Sira,

    感谢您的回答。 在返回项目之前、我需要做一些工作。 当我获得机会时、我会尝试实时运行它、并让您知道发生了什么。  

    谢谢、  

    Josh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Josh、

    听起来不错。 请在您有机会尝试后恢复。

    我们提供了及时关闭 TT 的指标、因此感谢您及时提供反馈。

    谢谢、
    Sira
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Sira,

    Code Composer 中是否有用于测量 FFT 执行时间的工具?

    谢谢、

    Josh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Josh、

    是的、当您处于调试模式时、您可以转至 Run-Clock-Enable (同时确保选中 Run-Clock-Show)、然后您将在 CCS 窗口的右下角看到一个具有周期计数的时钟符号。 在任何时候双击该选项可重置为0。 然后、您可以设置断点、运行并查看周期计数变化。
    谢谢、
    Sira
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Sira,

    我的问题已经解决,只想感谢所有的帮助。

    谢谢、

    Josh