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.

[参考译文] TMS320F28388D:指定了非法助记符

Guru**** 2589280 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1108160/tms320f28388d-illegal-mnemonic-specified

器件型号:TMS320F28388D

大家好、

我想在 CM 内核中从一个地址跳转到另一个地址。

我正在使用" __asm (" LB 0x00210000 "); 指令来实现这一点。

但编译器正在向我抛出 "[E0002]指定的非法助记符。

有人能帮我解决这个问题吗?

谢谢、此致、

Pranay。

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

    Pranay、

    请多多包涵、我不太熟悉 ARM ASM、例如 C28x ASM。  您可以尝试 B 而不是 LB 吗?  我认为 ARM 中的 B 应该支持更长的地址范围。  老实说、我没有尝试将 asm 与 ARM 内核内联、只是 C28x、因此我不能完全确定语法是相同的、即 asm (");

    在这种情况下使用汇编代码是否有特殊原因、尤其是对于分支而言(这意味着编译器可能不会缺少优化)?

    最棒的

    Matthew

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

    Matthew、

    B 指令用于循环、而不是用于从一个地址跳转到另一个地址。

    我尝试过、但它给我以下错误:

    谢谢、此致、

    Pranay。

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

    Pranay、

    您能否在 asm 中的"之后尝试不带"空格"的原始指令?  我知道 C28x 需要这个、但在查看 ARM 开发人员指令后、我不确定 ARM 汇编是否需要这个。

    我将尝试寻找一些可能更熟悉直列式臂组件的其他人。

    最棒的
    Matthew

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [~ userid="457894" URL"μ C/support/microset/C2000-microset-group/C2000/f/C2000-microset-forum/1108160/tms320f28388d-ilical-mnemonic specified"]

    我正在使用" __asm (" LB 0x00210000 "); 指令来实现这一点。

    但编译器正在向我抛出 "[E0002]指定的非法助记符。

    [/报价]

    我认为地址(字面常量)之前缺少#会导致该错误。

    请参阅 TMS320F28388D:在 CM 引导加载程序中、如何分支到 RAM 入口点? 有关如何分支到固定入口地址的信息-包括需要设置最低有效位来指示分支是用于 Thumb 模式。

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

    切斯特、

    感谢您的链接。

    [引用 userid="91588" URL"~/support/microcontrollers/C2000-microcontrollers-group/C2000/f/C2000-microcontrollers-forume/1108160/tms320f28388d-ilical-mnemonic specified/410888#41088888"]我认为在地址(文字常量)之前缺少一个#会导致该错误。[/quote

    这起作用了。 但是,如果地址存储在变量中而不是作为字面常量,该怎么办??

    --普拉奈。

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

    Pranay、

    您是否可以使用引用的后切斯特中提供的方法、即在该区域的基础上分配函数?

    最棒的

    Matthew

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

    Matthew、

    我已经在使用它。 我很好奇、我们是否有任何 asm 指令、而不是使用函数指针。

    但是、我们可以解决此问题。

    谢谢、此致、

    Pranay。

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

    Pranay、

    感谢您的反馈、您应该能够在 asm 中引用函数名称、并插入#_functionname、而不是直接插入函数。  

    最棒的

    Matthew