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.

[参考译文] TMS320F28335:IQ 数学换行、带位掩码和其他优化问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/570696/tms320f28335-iq-math-wrapping-with-bit-masks-and-other-optimization-questions

器件型号:TMS320F28335

大家好、

IAM 将 28335与 CCS v6.1.2配合使用。

我的目标是实现电机控制应用。 为了独立于固定/浮点目标、我使用了 TI-DMC 库提供的宏。

一切都很好、现在我正在尝试优化我的代码以提高速度。 在这个过程中,我提出了一些问题,我希望社会可以帮助我。

问题1.

对于角度,我使用归一到 GlobalQ 编号(2 π 对应于'1'; PI 对应于0.5,-PI 对应于-0.5)。

角度需要在例程的各个阶段进行包装、我决定让它以 IQ 数学格式从[-0.5...0.5]运行。  

因此、包装目前如下所示:

#define wrap_angle (角度)\
如果(角度>_IQ (0.5))\
角度-=_Iq (1.0);/*上环绕*/\
否则、如果(角度<_IQ (-0.5))\
角度+=_Iq (1.0);/*下环绕*/\

此时全局 Q 设置为24。

现在我尝试用一个位掩码来替代它... 我的想法如下:因为我的格式是全局 Q = 24我的面具  

看起来是这样的  

MASK =(2^24 - 1)= 16777215 = 0x00FF FFFF  

用一个掩码包装一个单极信号可能看起来是这样的

角度&=遮罩

但我认为这不适用于双极信号。  

那么、问题是  、如果用双极信号的位掩码替代上述分支、如何使用这种换行算法呢?

问题2.  

此问题与 C2000系列的不同 CCS 编译器版本及其优化特性/影响有关。

现在、我的主 ISR 需要大约~50us 的计算时间。 当我尝试不同的编译器和优化设置时、这不会改变

很多(最高1-2 us 更快)-即使是使用"尽可能高的"优化设置也是如此。

我使用具有优化级别1...5的编译器版本16.9.0 LTS  

这个(新)编译器是否仍然适合我的目标28335 (几年前发布的)、或者我应该继续  

返回到一些较旧的编译器、并在那里尝试优化选项?

是否有任何通用的优化建议来加速代码? 我已经完成了以下操作:

-通过"ramfunc"属性将95%的函数打包到 ram 中(我仍有大量 RAM 剩余)

-内联更小的函数

-使用带宏的 DMC

-在编译器级别使用优化器(请参阅上文)

-“清理”代码,避免必要的操作并对其进行总结

提前感谢您的帮助!

此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我正在尝试理解您的第一个问题。 您想屏蔽该角度、以便在标么值范围内只能使用[-0.5、0.5]? 如果我想正确的话、使用单极掩膜的"包装"就会被截断。 如果没有某种逻辑、我想不出您如何截断数字并更改极性(即从-0.5 -> 0.5换行)。

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

    嗨,谢谢您的建议。  

    现在,我的解决方案运行良好,我只是在尝试提高代码的速度,因为每个 ISR 发生的“换行逻辑”~20次。 也许有人知道28335可以节省多少指令? (这很值得吗? 我的意思是大于5us 或类似的东西? 我不这么认为

    我认为这对我没有太大伤害、但"自然"溢出会很好、因为我不再需要在代码中关注它(无论如何、QEP 模块会在索引事件时重置我的角度信号)。

    请标记已回答的问题。 至于优化、我找到了一份很好的 TI 文档。 如果您能对节能潜力再作评论、我会很高兴。

    此致