TI论坛
直播中

李恩琪

8年用户 473经验值
私信 关注
[问答]

TI的例程cla_sqrt F2837xS examples V200中_sqrt是从哪里来的?

cla_sqrt例程中,CLA的task1任务内容如下:
//**********************sqrt.cla********************
__interrupt void Cla1Task1 ( void )
[
fResult = __sqrt(fVal);
]

--------------------------------------------------------------------------------
__sqrt是从哪里来的????
没有文献说明CLA支持__sqrt函数啊?该例程中也没有和sqrt相关的ASM和C代码
---------------------------------------
CLA仅支持如下函数:
CLA don't support C standard library.

abs() and fabs() are supported as intrinsics. An inline fast floating-point divide is supported.

The following intrinsics are supported:

  • float __meisqrtf32(float)
  • float __meinvf32(float)
  • float __mminf32(float, float)
  • float __mmaxf32(float, float)
  • void __mswapf(float, float)
  • short __mf32toi16r(float)
  • unsigned short __mf32toui16r(float)
  • float __mfracf32(float)
  • __mdebugstop()
  • __meallow()
  • __medis()
  • __msetflg(unsigned short, unsigned short)
  • __mnop()

回帖(2)

徐小婷

2018-12-6 11:01:28
从反汇编看,是编译成了标准的CLA库
_Cla1Task1:
.dwpsn file "C:/controlSUITE/device_support/F2837xS/v200/F2837xS_examples_Cpu1/cla_sqrt/cpu01/sqrt.cla",line 38,column 5,is_stmt,isa 0
MMOV32 MR2,@_fVal ; [CPU_] |38|
MEISQRTF32 MR1,MR2 ; [CPU_] |38|
MMPYF32 MR3,MR2,#16128 ; [CPU_] |38|
MCMPF32 MR2,#0.0 ; [CPU_] |38|
MMOV32 MR1,MR2,EQ ; [CPU_] |38|
MMPYF32 MR0,MR1,MR3 ; [CPU_] |38|
MMPYF32 MR0,MR1,MR0 ; [CPU_] |38|
MSUBF32 MR0,#16320,MR0 ; [CPU_] |38|
MMPYF32 MR1,MR1,MR0 ; [CPU_] |38|
MMPYF32 MR0,MR1,MR3 ; [CPU_] |38|
MMPYF32 MR0,MR1,MR0 ; [CPU_] |38|
MSUBF32 MR0,#16320,MR0 ; [CPU_] |38|
MMPYF32 MR1,MR1,MR0 ; [CPU_] |38|
MMPYF32 MR0,MR1,MR2 ; [CPU_] |38|
MMOV32 @_fResult,MR0 ; [CPU_] |38|
举报

李恩琪

2018-12-6 11:17:39
引用: muuwfwr 发表于 2018-12-6 10:54
从反汇编看,是编译成了标准的CLA库
_Cla1Task1:
.dwpsn file "C:/controlSUITE/device_support/F2837xS/v200/F2837xS_examples_Cpu1/cla_sqrt/cpu01/sqrt.cla",line 38,column 5,is_stmt,isa 0

这里成应该是有点问题。
汇编显示没有问题,
CLA文件应该使用__MEISQRTF32() intrinsics  
举报

更多回帖

发帖
×
20
完善资料,
赚取积分