我正在尝试远程调用从具有平坦代码段,平坦数据段和环0特权级别的任务到具有相同权限级别在偏移零处的另一个代码段,但我确实得到GP错误。
我如何做远程呼叫:
__asm__ volatile ("lcall *%0" :: "m" (ptr));
其中ptr是以下数据的变量(far_ptr_t):
typedef struct {
void* offset;
uint16_t sel;
} __attribute__((packed)) far_ptr_t;
当我调试它时,我看到它在调用指令上失败了,有什么理由我应该考虑以便知道为什么我会得到GP错误?