簡體   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