我在硬故障处理程序中有一些组装。该程序集基本上是为了将当前堆栈指针作为参数传递(在 R0 中)。看起来是这样...
__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);
建议?