aarch64异常级别从EL1切换到EL0

时间:2019-03-20 14:30:46

标签: exception switch-statement arm64

我正在研究一个简单的内核,并在支持RasPi3的Qemu上对其进行测试。

在启动阶段,Ras Pi进入EL3级别,我将spsr_el3设置为1,将elr_el3设置为kernel_main,然后使用eret进入EL1模式。

我的问题是:我创建了一个仍处于EL1级别的内核线程。我想将内核线程切换到用户级别。

我所做的是,此内核线程还将spsr_el1设置为0,并将elr_el1设置为函数指针,然后设置为eret。但是这种情况下,我认为是由同步错误引起的同步中断?

1 个答案:

答案 0 :(得分:0)

您需要查看异常综合征寄存器ESR_EL1或ESR_EL3,但是您还必须弄清楚您是将异常用于EL1还是EL3。有可能是原因。