欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 人文社科 > 生活经验 >内容正文

生活经验

Iar环境c语言调用汇编函数,如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数?...

发布时间:2023/11/27 生活经验 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Iar环境c语言调用汇编函数,如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数?... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

我在硬故障处理程序中有一些程序集。程序集基本上是为了传递当前堆栈指针作为参数(在R0中)。它看起来像这样...如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数?

__asm(" mov r0, sp\n"

" bl SavePC\n"

" bx lr");

当SavePC在同一个c文件中时,这工作正常。但是,当SavePC被放置在另一个c文件中时,我没有运气。我试图导入这样的功能...

__asm("IMPORT SavePC\n"

" mov r0, sp\n"

" bl SavePC\n"

" bx lr");

...但我必须做一些不正确的事情。编译器报告以下...

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这个asm代码驻留? –

+0

@ maths-help-seeker我包含SavePC的头文件,它的原型定义为extern - 'extern void SavePC(unsigned long);'。好? –

+0

是的。我正在通过汇编程序的手册。它使用EXTERN 。你能否检查一下,而不是导入? –

总结

以上是生活随笔为你收集整理的Iar环境c语言调用汇编函数,如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数?...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。