ZHCU876Z July 2001 – October 2023 SM320F28335-EP
以下固有函数使用三角函数加速器 (TMU) 来执行更快的三角函数计算。如果使用了 --tmu_support=tmu0 或 --tmu_support=tmu1 编译器选项,则会启用这些内在函数。阴影行列出了仅 --tmu_support=tmu1 时受支持以及仅针对 EABI 受支持的固有函数。
如果您使用 COFF ABI,作为浮点 (float) 型列出的参数和返回值也可以使用双精度 (double) 型,因为两者都是 32 位类型。如果使用 EABI,这些函数要求使用浮点型,因为双精度型为 64 位。
内在函数 | 汇编指令 | 说明 |
---|---|---|
float __atan( float src ); | ATANPUF32 dst, src MPY2PIF32 dst, src |
返回 src 弧度的反正切主值。 |
float __atanpuf32( float src ); | ATANPUF32 dst, src | 返回 src 的反正切主值,作为标幺值提供。 |
float __atan2( float y , float x); | QUADF32 quadrant, ratio, y, x ATANPUF32 atanpu, ratio ADDF32 atan2pu, atanpu MPY2PIF32 atan2, atan2pu |
返回 x、y 的反正切主值和象限。 |
float __atan2puf32( float y, float x); | QUADF32 quadrant, ratio, y, x ATANPUF32 atanpu, ratio ADDF32 dst, atanpu |
返回 y、x 的反正切主值和象限值。该值作为标幺值返回。 |
float __cos( float src ); | DIV2PIF32 dst, src COSPUF32 dst, src |
返回 src 的余弦,其中 src 以弧度形式提供。 |
float __cospuf32( float src ); | COSPUF32 dst, src | 返回 src 的余弦,其中 src 以标幺值形式提供。 |
float __divf32( float num , float denom); | DIVF32dst, num, denom | 返回使用 TMU 浮点除法硬件指令将 num 除以 denom 的值。 |
float __div2pif32( float src ); | DIV2PIF32 dst, src | 返回将 src 乘以 1/2pi(实际上是除以 2pi)的结果。这会将弧度值转换为标幺值。 |
float __fmodf( float x, float y); | DIVF32 R0H,R2H,R1H NOP; NOP; NOP; NOP; F32TOI32 R0H,R0H NOP I32TOF32 R0H,R0H NOP MPYF32 R0H,R1H,R0H NOP SUBF32 R0H,R2H,R0H |
返回除法运算 x/y 的浮点余数,该运算使用 x - ((int)(x/y)) * y 进行计算。(如果使用了 --fp_mode=relaxed,则可以使用 fmodf() RTS 函数来执行此内在函数。) |
float __iexp2( float x ); | IEXP2F32result, x | 返回 2^^-|x| 的结果,其与 (1.0 / 2^^|x|) 相同。(仅限 tmu1 和 EABI) |
float __log2( float x ); | LOG2F32logarithm,x | 返回二进制对数,也就是为获得值 x 而必须将数字 2 提升到的幂。(仅限 tmu1 和 EABI) |
float __mpy2pif32( float src ); | MPY2PIF32 dst, src | 返回 src 乘以 2pi 的结果。这会将标幺值转换为弧度值。标幺值通常用在控制应用中来表示标准化弧度。 |
float __quadf32( float ratio, float y, float x ); | QUADF32 quadrant, ratio, y, x | 返回 x 和 y 的象限值(0.0、+/-0.25 或 +/-0.5)和比率,并且都以标幺值形式提供。 |
float __sin( float src ); | DIV2PIF32 dst, src SINPUF32 dst, src |
返回 src 的正弦,其中 src 以弧度形式提供。 |
float __sinpuf32( float src ); | SINPUF32 dst, src | 返回 src 的正弦,其中 src 以标幺值形式提供。 |
float __sqrt( float src ); | SQRTF32 dst, src | 返回 src 的平方根。 |