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/TMS320F28335:_IQ 数学表达式的不同时间执行

Guru**** 2530350 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/602921/ccs-tms320f28335-different-time-execution-of-_iq-math-expression

器件型号:TMS320F28335

工具/软件:Code Composer Studio

大家好、我已经比较了在主中断中调用的源函数内部或直接在主中断中执行某些_IQ 指令的时间。 我经历了不同的时间执行、大约2次。 不同地址分配的 cmd 影响是否会导致时间的变化? 或源函数内包含的不可编辑性(我通常包含 IQmath 库)。 其他建议已被接受。 提前感谢您。

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

    您好!

    Simone Paolini 说:
    不同地址分配的命令影响是否会对时间发生变化?

    我唯一看到这种情况的地方是使用 DMAC (或 IMACL QMACL 等)指令时。 请特别参阅 CPU 指令集指南、SPRU430、1.4.2节、表1-3。

    DMAC 基本上使用数据读取和程序读取总线来读取 DMAC 乘法部分的两个参数、因此、如果这两个操作数位于同一个物理 RAM 块中、则会导致操作减慢、因为两个总线无法同时访问块。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我应该已经添加了:确保这些指令的操作数位于不同的 RAM 块中、您可以使用链接器命令文件来执行此操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、感谢您的回答。 我使用结构管道、因此如果我将结构的2个元素相乘、它们位于同一个块存储器中。 如何解决此问题? 如果我直接在中断主 ISR 中执行相同的指令、为什么时间执行会不同? 谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您的 IQMath 代码从何处运行? 如果它从闪存运行、它将遇到闪存等待状态。 通常、中断服务例程被放置在"ramfuncs"段中、以便它们从 RAM 运行;这可能是您看到执行时间差异的原因。