TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F2800157: 如何在软件中启用芯片的TMU功能

Part Number:TMS320F2800157

芯片有TMU功能(如下图),

1、如何在软件中启用芯片的TMU功能?

2、如何确认软件是否启用了TMU功能?

Yale Li:

TMU实际上的工作对于用户来讲是不可知的,简单来说,就是在工程属性中配置两个地方,使能TMU即可。

请看一下这个链接:TMS320F28377D: 开启了TMU选项,除法计算未调用相关函数 – C2000Tm︎ 微控制器论坛 – C2000 微控制器 – E2ETm 设计支持

,

John Pan:

1、

两个整数类型的数相除,编译出来的代码如下,

好像没有用到TMU,而且实测发现这个除法花费了很多个CPU cycle

两个浮点数相除,编译出来的代码如下,

应该是用到了TMU,实测发现这个除法花费的CPU cycle比较少

请问如何让整数相除也编译成TMU指令??

=============================================================================

sTmpUint32_3 = sTmpUint32_1 / sTmpUint32_2;   —- 两个整数类型的数相除0849e8: A306 MOVL P, @0x60849e9: 0200 MOVB ACC, #00849ea: F61F RPT #310849eb: 56170008 || SUBCUL ACC, @0x8     —- 没有用到TMU, 实测发现这个除法花费了很多个CPU cycle0849ed: A90A MOVL @0xa, P

=============================================================================

sTmpFloat32_3 = sTmpFloat32_1 / sTmpFloat32_2;   —- 两个浮点数相除

084a60: E2AF0100 MOV32 R1H, @0x0, UNCF084a62: E2AF0002 MOV32 R0H, @0x2, UNCF084a64: E2740008 DIVF32 R0H, R1H, R0H     —- 用到了TMU指令, 实测发现这个除法花费的CPU cycle比较少084a66: 7700 NOP 084a67: 7700 NOP 084a68: 7700 NOP 084a69: 7700 NOP 084a6a: E2030004 MOV32 @0x4, R0H

2、调用sin函数,编译出来的代码如下

sTmpFloat32_3 = sin(sTmpFloat32_1);             — 调用sin函数084a82: E2AF0000 MOV32 R0H, @0x0, UNCF084a84: 76485E99 LCR __relaxed_sinf          —- 跳转到 __relaxed_sinf函数,如何编译成下图中的SINPUF32指令???084a86: 761F0265 MOVW DP, #0x265084a88: E2030004 MOV32 @0x4, R0H

,

Yale Li:

1. 可以把整数定义成浮点数试一下,但是取值范围会缩小;

2. 请看一下这两篇帖子:

TMS320F280025: TMU instructions – C2000 microcontrollers forum – C2000Tm︎ microcontrollers – TI E2E support forums

TMS320F280037C: How to use sine and cossine in my code – C2000 microcontrollers forum – C2000Tm︎ microcontrollers – TI E2E support forums

,

John Pan:

1. 可以把整数定义成浮点数试一下,但是取值范围会缩小;

—– 写代码的时候,不会时时刻刻去提醒自己要这样做,所以经常会忘记的,有没有一劳永逸的办法,不管整数相除还是浮点数相除,都编译成TMU指令

,

Yale Li:

每一种变量类型都是在头文件中重新定义的,可以根据自己的需求把这个头文件更改一下。

,

John Pan:

加法减法乘法,用整数还是比浮点数有优势的。  如果用这个方法,对除法好了,但是对加法减法乘法不好,所以这个方法不可取

,

Yale Li:

我已经咨询了相关工程师,请关注下方链接;

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1313965/tms320f2800157-integer-division-using-tmu

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F2800157: 如何在软件中启用芯片的TMU功能
分享到: 更多 (0)