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.
工具/软件:Code Composer Studio
最初针对 不同DSP发布错误
我正在尝试阐明在输出数据超过+/-3.2767万时从浮点转换为短整数的行为。
我可以看到编译器正在调用函数F$FTOI ,然后调用SSBX SXM
我找不到关于这两 种功能的文档。
似乎超过短整数范围的数据可能会被剪切,如果我确信它将始终发生,这将是非常好的。
原始C代码等效于....
函数doit (const浮点值)
短输出
OUTPUT =(短)(值* 3.2768万.0F);
有什么想法吗?
Glen Wardrop
[报价用户="Glen Wardrop "]
我可以看到编译器正在调用函数F$FTOI ,然后调用SSBX SXM
我找不到关于这两 种功能的文档。
[/引述]
编译器调用F$FTOI函数以将32位浮点转换为16位整数(或短整数)。 此函数的源代码位于编译器软件包f_ftoi.asm文件中。 该文件位于zip文件compiler_install_root/lib/rtssrc.zip中。
指令SSBX SXM在状态寄存器中设置符号扩展模式位。 更多详细信息可在 C54x助记符指令集手册中找到。
Glen Wardrop 说:似乎超过短整数范围的数据可能会被截取,如果我确信它将始终发生,这将非常好。[/QUOT]
是的。 f_ftoi.asm中的注释也是如此。
Glen Wardrop 说:原始C代码等效于....[/QUOT]
为了进行编译,我将您的C代码更改为...
短道(常量浮点值) { 返回(短)(值* 3.2768万.0F); }
当我编译此代码时,我没有获得SSBX指令。 我怀疑这与这个问题有关。 但我想无论如何我会指出这一点。
谢谢,此致,
-George