[英]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.