Iar环境c语言调用汇编函数,如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数?...
我在硬故障處理程序中有一些程序集。程序集基本上是為了傳遞當(dāng)前堆棧指針作為參數(shù)(在R0中)。它看起來像這樣...如何在IAR EWARM中通過內(nèi)聯(lián)匯編程序在另一個(gè)模塊中調(diào)用C函數(shù)?
__asm(" mov r0, sp\n"
" bl SavePC\n"
" bx lr");
當(dāng)SavePC在同一個(gè)c文件中時(shí),這工作正常。但是,當(dāng)SavePC被放置在另一個(gè)c文件中時(shí),我沒有運(yùn)氣。我試圖導(dǎo)入這樣的功能...
__asm("IMPORT SavePC\n"
" mov r0, sp\n"
" bl SavePC\n"
" bx lr");
...但我必須做一些不正確的事情。編譯器報(bào)告以下...
Error[Og005]: Unknown symbol in inline assembly: "IMPORT"
Error[Og005]: Unknown symbol in inline assembly: "SavePC"
Error[Og006]: Syntax error in inline assembly: "Error[54]: Expression can not be forward"
Error[Og005]: Unknown symbol in inline assembly: "SavePC"
Error while running C/C++ Compiler
與組件C文件包括與SavePC原型的頭文件...
extern void SavePC(unsigned long);
建議?
2012-10-05
Jason
+0
你具備的功能** SavePC **在文件中定義為extern這個(gè)asm代碼駐留? –
+0
@ maths-help-seeker我包含SavePC的頭文件,它的原型定義為extern - 'extern void SavePC(unsigned long);'。好? –
+0
是的。我正在通過匯編程序的手冊(cè)。它使用EXTERN 。你能否檢查一下,而不是導(dǎo)入? –
總結(jié)
以上是生活随笔為你收集整理的Iar环境c语言调用汇编函数,如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 姐妹个性签名说说大全
- 下一篇: 求一个好听的俩字名字。