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.

[参考译文] 编译器/DRA829V:SDIV 指令给出"非法的数字错误"

Guru**** 2553360 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/954899/compiler-dra829v-sdiv-instruction-gives-illegal-mnumonic-error

器件型号:DRA829V

工具/软件:TI C/C++编译器

您好!

我正在尝试使用以下代码生成一个零除异常:

_asm (" mov r0、#0 ");
__asm (" sdiv{r0}、r0、r0 "); 

但我从 ti-arm 中得到以下错误:

[E0002]指定了非法助记符
           sdiv{r0}、r0、r0

请告诉我如何解决此问题。

谢谢、
Rizwan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    编译器标志:

    -mv7R5 --code_state=32 --float_support=none -Ooff -g --diag_warning=225 --diag_wrap=off --display_error_number --endian=little

    我尝试在开头添加空格、在"sdiv"之后、似乎什么都不起作用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    已连接 ARM 手动快照:

    这是因为 ti-arm 不支持 R5的这条指令吗? 如果是、将替换什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    问题已解决:

    使用 UDF #0指令、因为它在 A32中受支持并触发 UNDEF 异常。 这就是我尝试使用 div 乘以零的原因。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    为 Cortex-R5构建时、SDIV 指令只在 Thumb 模式中被接受。  也就是说、将--code_state=32更改为--code_state=16

    谢谢、此致、

    乔治