大家好、
我想在 CM 内核中从一个地址跳转到另一个地址。
我正在使用" __asm (" LB 0x00210000 "); 指令来实现这一点。
但编译器正在向我抛出 "[E0002]指定的非法助记符。
有人能帮我解决这个问题吗?
谢谢、此致、
Pranay。
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.
大家好、
我想在 CM 内核中从一个地址跳转到另一个地址。
我正在使用" __asm (" LB 0x00210000 "); 指令来实现这一点。
但编译器正在向我抛出 "[E0002]指定的非法助记符。
有人能帮我解决这个问题吗?
谢谢、此致、
Pranay。
Pranay、
请多多包涵、我不太熟悉 ARM ASM、例如 C28x ASM。 您可以尝试 B 而不是 LB 吗? 我认为 ARM 中的 B 应该支持更长的地址范围。 老实说、我没有尝试将 asm 与 ARM 内核内联、只是 C28x、因此我不能完全确定语法是相同的、即 asm (");
在这种情况下使用汇编代码是否有特殊原因、尤其是对于分支而言(这意味着编译器可能不会缺少优化)?
最棒的
Matthew
我正在使用" __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这起作用了。 但是,如果地址存储在变量中而不是作为字面常量,该怎么办??
--普拉奈。