我正在研究一个简单的内核,并在支持RasPi3的Qemu上对其进行测试。
在启动阶段,Ras Pi进入EL3级别,我将spsr_el3设置为1,将elr_el3设置为kernel_main,然后使用eret进入EL1模式。
我的问题是:我创建了一个仍处于EL1级别的内核线程。我想将内核线程切换到用户级别。
我所做的是,此内核线程还将spsr_el1设置为0,并将elr_el1设置为函数指针,然后设置为eret。但是这种情况下,我认为是由同步错误引起的同步中断?
答案 0 :(得分:0)
您需要查看异常综合征寄存器ESR_EL1或ESR_EL3,但是您还必须弄清楚您是将异常用于EL1还是EL3。有可能是原因。