![]() |
1
1
链接错误是由尝试使用分支指令跳转到指针引起的。这会生成类似代码的
正如我在注释中提到的,ARM中断处理程序声明为
您可以尝试使用gcc的扩展语法在特定的寄存器中声明变量,
|
![]() |
2
0
好吧,我现在知道出了什么问题。
直接跳到另一个函数的整个概念在arm cortex上是没有意义的,因为tricore每次调用另一个函数时都使用上下文保存区域(context save area,CSA)来保存整个CPU上下文。把它看作是第二个独立的堆栈,每个堆栈都随着
另一方面,arm cortex使用一个简单的标准栈(好吧,它知道一个系统栈和一个线程栈,但这在这里并不重要),而gcc只保存了每个函数所需的内容,所以每个帧都有不同的大小。因此,直接跳到另一个函数是不可能的,因为一旦跳到函数开始保存它使用的非易失性寄存器,堆栈就会损坏。
关于链接器错误和未定义的引用R6…嗯,我应该更仔细地阅读说明集文档。
所以,在交换之后
|
![]() |
AstralHex · 矩阵乘法代码工作不正常 5 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 5 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 5 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 5 月前 |