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.

[参考译文] 编译器/TMS320F28335:是使用\n 的内联汇编时的原子代码?

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/941576/compiler-tms320f28335-is-atomic-code-when-inline-assembly-using-n

器件型号:TMS320F28335

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

您好!

我将使用_asm 语句编写内联汇编。


如下面的示例所示、它的写入方式为\n、如下面的示例所示、并在调试模式下检查。

_asm ("推送 RPC\n"
       (笑声)

"MOVL ACC、*-SP [2]);


我检查了该 asm 中的断点、并使用"step into "命令运行了行。

因此、它会立即执行、直到最后一行。 =>(MOVL ACC、*-SP [2]);

我能在原子代码中想到这个结果吗?
原子代码是在执行时运行到末尾的代码。

我想知道、当一个中断出现在属于"..."的汇编代码中间时、是否会发生上下文切换。

谢谢、此致

韩文

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

    [引用 user="Han SeungJae"]我能不能用原子代码来考虑这一结果吗?

    否  在该多行 asm 语句中的任何指令之后都可能发生中断。

    [引用用户="Han SeungJae"]

    已使用"step into (步入)"命令运行线路。

    因此、它会立即执行、直到最后一行

    [/报价]

    就调试器而言、asm 语句相当于 C 语句。  一个 C 语句通常映射到多个汇编指令。  当您步入该 C 语句时、执行会在多条指令的最后一条之后停止。

    谢谢、此致、

    乔治