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/TMS320F28377S:TMS320F28377S

Guru**** 2468610 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/968971/ccs-tms320f28377s-tms320f28377s

器件型号:TMS320F28377S

工具/软件:Code Composer Studio

大家好、如果我在 CLA 的一个任务内停止并尝试在任务中更改一个局部变量、我将采取四个步骤从初始值10更改为1。 我注意到一些示例使用了此类局部变量。 如何确保变量在每个步骤发生变化?

谢谢 Vadim

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

    单步执行 CLA 只会将流水线头移动一个周期。  因此、变量的更新需要单步执行3次。  

    这与 C28x 不同、C28x 会在每个步骤上将指令推入流水线的所有阶段。  

    此致

    Lori

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

    你(们)好、Lori

    TI 有一个指向 CLA C 编译器培训系列的链接、但它在 https://processors.wiki.ti.com/index.php/C2000_CLA_C_Compiler 上不起作用 我看到这个问题是真实的、而不仅仅是一个调试步进问题。 因此、为了在 c 中为 CLA 任务执行分配、它不足以 A = B; 它将不会发生、直到我执行至少3 个额外的步骤 来确保所有内容被刷新、对吧? ;我试图弄清楚如何在第10章“优化 c 编译器”中进行分配,但 却找不到太多。 如果我 用 c 编写一个 CLA 任务、我如何确保分配发生。 是否有方法可以编写高效的分配代码而无需额外的步骤? 在 https://processors.wiki.ti.com/index.php/C2000_CLA_C_Compiler  中、它建议使用 MNOP 操作作为额外步骤、我应该在 c 中执行什么操作? 来自 TRM

    6.6.2 CLA 流水线对齐
    大多数 CLA 指令不需要任何特殊的流水线注意事项。 本节列出了
    需要特别考虑的少数操作。

    这是指 TRM 中的 c 命令还是汇编命令?

    谢谢 Vadim

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

    [引用 user="Vadim">我发现此问题确实存在、而不仅仅是调试步进问题。 因此、要在 c 中为 CLA 任务分配任务、它不足以 A = B; 只有在我执行至少3 个额外的步骤 以确保所有内容都已刷新、正确?[/QUERPLET]之后、才会发生这种情况。

    CLA 的"阶跃"和 C28x 的"阶跃"具有不同的行为。  

    • C28x 步骤从管线的 D2阶段一直到 EXE 阶段获取一条指令。  这是3个 CPU 周期(即 D2、R1、R2、EXE)。  这种行为称为每一步清除流水线。  
    • CLA"步进"只会将流水线向前移动一个周期。   请注意、在 CLA 情况下、管线内的所有指令每步移动一个相位。  没有任何无效;没有任何停顿。
    • 第1步:第1步
    • 步骤2:R2
    • 步骤3:执行

    请参阅技术参考手册 CLA 章节中的管线说明。

    [引用 user="Vadim"]

    6.6.2 CLA 流水线对齐
    大多数 CLA 指令不需要任何特殊的流水线注意事项。 本节列出了
    需要特别考虑的少数操作。

    这是指 TRM 中的 c 命令还是汇编命令?

    [/报价]

    TRM 描述的是汇编指令。  编译器将为您处理此问题。  如果您在汇编语言中编写代码、汇编器会在违反流水线注意事项时发出错误。  

    此致

    Lori

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

    Vadim、

    我已将您的相关问题拆分为另一个主题。  这将有助于我们跟踪和确保不忽略与之相关但并非相同的新问题。   将来请使用"提出相关问题"或"提出新问题"按钮。   

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/969970

    此致