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.

TMS320F28075: 关于Fast RTS及TMU的疑问

Part Number: TMS320F28075
Other Parts Discussed in Thread: TMS320F28335, TMS320F28069,

在用TMS320F28335或者TMS320F28069这一类具有FPU的控制器做电机算法时,我会使用Fast RTS,以28069FOC控制为例,工程配置如下:

图1. TMS320F28069 使用Fast RTS链接配置

1.将Fast RTS库置于标准RTS库之前

2.勾选Search libraries in priority order

编译完成后,从.map文件中可以看到sin及cos函数使用的是Fast RTS库中的函数,如下图所示:

图2. TMS320F28069 Fast RTS编译结果

最近在使用TMS320F28075PMSMFOC控制,该处理器具有TMUtype0

图3. TMS320F28075具有TMU

如果在配置的时候取消TMU支持,还是按照图1那样在28075上使用Fast RTS,编译的时候会报告如下警告:

图4.28075上使用Fast RTS报告的警告

Fast RTS运行需要访问FPUmathTables,如28069TRM文档中的描述如下:

图5. 28069手册中描述FAST RTS需要访问FPUmathTable

我在28075的数据手册及TRM文档中,都没有检索到FPU math table的相关信息

问题1. 是不是28075的Boot ROM中没有FPUTABLES,因此在28075上不能使用Fast RTS,而应该使用TMU

问题2. 是不是TMU和Fast RTS都是对sin、cos等函数的优化,因此做浮点运算时应该在没有TMU的处理器上使用Fast RTS,在具有TMU的处理上使用TMU

问题3. 对同样功能的函数,Fast RTS和TMU二者相比,效率上有区别吗?

对于28069,可以通过.map文件确认是否使用了Fast RTS;但是对于TMU,从.map文件中无法确认,这是不是因为,在TMU的支持下,三角函数运算就是一条指令,

问题4. 对于28075,是否使用了TMU,是不是可以通过Disassembly进行确认,如下图所示:

图6.确认使用了TMU

  • 您好

    TMU 比 FastRTS 快得多、所以我推荐在具有 TMU 的器件上使用。 是的、您会在反汇编视图中将其视为指令、也会将其视为"relaxed__sinf"或类似指令

    请注意、在上图中、您使用了内在函数和生成了 TMU 指令。 您也可以使用标准 sinf()、cosf()、函数调用、如果在编译器设置中启用了 TMU 并且--fp_mode = relaxed (宽松浮点模式)、编译器将自动为这些函数调用生成 TMU 指令。

    我不确定28075 BootROM 中的 FPUTABLES–无论如何、我的建议是使用 TMU。

x 出现错误。请重试或与管理员联系。