ARM模式: User and System

标签 arm

您能解释一下在进行系统调用处理时如何更改ARM模式吗?
我听说ARM模式更改只能在特权模式下发生,但是如果在ARM处于用户模式(这是非特权模式)下进行系统调用处理,ARM模式如何发生变化?

谁能解释用户模式情况下的整个操作流程,以及更一般的系统调用处理(尤其是ARM模式如何更改)?

提前致谢。

最佳答案

在ARM上进行系统调用的情况下,通常系统调用会导致执行SWI指令。每当处理器执行SWI(软件中断)指令时,处理器都会进入SVC模式(具有特权),并跳转到SWI异常处理程序。然后,SWI处理程序查看中断原因(嵌入在指令中),然后执行OS程序员决定应做的任何事情。其他异常-复位,未定义指令,预取中止,数据中止,中断和快速中断-也会导致处理器进入特权模式。

文件处理的工作方式完全取决于编写操作系统的人-完全没有ARM专用。

关于ARM模式: User and System,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8199609/

相关文章:

c - 如何在 Clang 中分支/跳转到任意地址?

c - 使用 ARM Cortex SysTick 计算运行时间;当 SysTick 计数器翻转时会发生什么?

c - 如何从嵌入式ARM处理器中的某个物理内存分配一 block 内存?

android - 任何带有 NEON 指令集的 Android 平板电脑?

linux - 在 ARM-OABI 上实现 syscall()。什么是 "svc#0x900071"?

c - ARM 指令到 C 语句

multithreading - ARM STLR 内存排序语义

linux - mprotect 是否刷新 ARM Linux 上的指令缓存?

c++ - 嵌入式应用程序写入寄存器时出现段错误

assembly - arm movw指令如何映射到机器代码?