gpt4 book ai didi

arm - SVC 处理程序以哪种模式启动?

转载 作者:行者123 更新时间:2023-12-02 00:25:23 26 4
gpt4 key购买 nike

ARM SVC 处理程序以哪种模式启动? 基本上,我想知道引发 SVC 异常时 ARM 内核处于哪种模式?

似乎无法在 ARM ARM 中找到它,但我的猜测是它在 Supervisor 中启动。

最佳答案

您是在谈论 SWI 处理程序吗?是的,我看到有些地方将其称为 SWI 指令,但有时也称为 SVC 指令。

注意:在旧版本的 ARM 架构中,SVC 称为 SWI,软件中断。

来自 ARM ARM

Exception type           Mode       Address
----------------------------------------------
Reset Supervisor 0x00000000
Undefined Instruction Undefined 0x00000004
Software Interrupt (SWI) Supervisor 0x00000008
Prefetch Abort Abort 0x0000000C
Data Abort Abort 0x00000010
IRQ IRQ 0x00000018
FIQ FIQ 0x0000001C

...

软件中断异常

软件中断指令 (SWI) 进入管理员模式以请求特定的管理员(操作系统)功能。执行 SWI 时,将执行以下操作:

R14_svc = address of next instruction after the SWI instruction
SPSR_svc = CPSR
CPSR[4:0] = 0b10011 /* Enter Supervisor mode */
CPSR[5] = 0 /* Execute in ARM state */
/* CPSR[6] is unchanged */
CPSR[7]= 1 /* Disable normal interrupts */
/* CPSR[8] is unchanged */
CPSR[9] = CP15_reg1_EEbit /* Endianness on exception entry */
PC = 0x00000008

执行SWI操作后返回,使用如下指令恢复PC(from R14_svc)和CPSR(from SPSR_svc),返回SWI之后的指令:MOVS PC,R14

关于arm - SVC 处理程序以哪种模式启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9044258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com