繁体   English   中英

使用TI代码编写器工作室(适用于ARM)在C代码中进行内联汇编

[英]Inline assembly in C code using TI code composer studio (for ARM)

有人可以告诉我,如何使用TI代码编写器工作室(针对ARM)在C代码中执行内联汇编代码?

我搜索并尝试但没有任何效果。

例如,当我尝试这个非常简单的代码时:

asm("push r0\n");

或这个

__asm("push r0\n");

我总是得到:

[E0002]非法助记符指定推r0

1装配错误,无装配警告

我读到的东西说我以前的代码是GCC风格,TI编译器不接受它! 那么我该如何执行自己的内联汇编代码呢?

最后我找到了解决方案!!

主要问题将通过在汇编指令之前添加空格或制表符来解决,如下所示:

asm(" MOVS R0, #5\n");

这不起作用:

asm("MOVS R0, #5\n");

在推动中,我们必须将寄存器放在大括号{R0}中

asm(" PUSH {R0}\n");

希望有所帮助。

我不知道ARM Code Composer Studio。 但是我知道一个TI Code Composer Studio,如果是的话,我可以给你一些提示。 使用asm volatile ("...")可能有所帮助。 但是使用该方法,您无法访问C变量。 使用所谓的内部函数/方法会更好,它们是将C链接到汇编程序的函数。 以下是TI文档的链接: http ://www.ti.com/lit/ug/spru187o/spru187o.pdf第7.5.4节。 以下是我从中得到这个想法的链接: https//e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/3660

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM