ARM架构中央处理器七种运行状态解析

日期: 2026-08-25 09:10:54|浏览: 3|编号: 169855

友情提醒:信息内容由网友发布,本站并不对内容真实性负责,请自鉴内容真实性。

ARM处理器具备的7种工作模式, 乃是嵌入式开发的基石, 然而众多初学者针对它的理解, 仅仅停留在表面, 唯有掌握这些模式, 才能够切实读懂操作系统究竟是怎样调度资源、中断又是如何回应的。

存储器与指令格式

ARM体系把存储器看作是从零点地址起始的字节线性序列, 头四个字节放置首个32位字, 紧接着每四个字节逐个存放下一个字, 这样的结构使得处理器的寻址范围最大是4GB。

存储器里的数据存在大端与小端这两种存放形式, 大端格式是把高字节放置于低地址处, 小端格式是将高字节置于高地址处, ARM指令的长度为32位, 在Thumb状态下能够被压缩成16位, 处理器对字节、半字以及字这三种数据类型予以支持。

两种工作状态

存在两种状态, 在此状态下ARM处理器运行, 在ARM状态时执行的是具32位的字对齐指令, 其性能固然更高, 然而代码占用空间较大, 于Thumb状态执行的是16位的半字对齐指令, 此适配对代码密度有所要求的场景。

两种状态彼此之间能够相互进行转换, 然而转换的过程并不会对寄存器所包含的内容产生影响。处理器在接通电源之后, 其默认的状态是处于ARM状态。开发者能够依据程序的需求, 灵活地进行切换, 目的在于平衡执行的效率以及存储空间。

七种工作模式一览

有七种工作模式是由ARM处理器所定义的, 它们每一者承担相异的职责, 其中普通应用程序运行所采用的模式是用户模式。用来处理外部中断请求采用的模式是中断模式, 操作系统使用专门的模式则是管理模式。

除用户模式之外, 其余六种均为特权模式, 特权模式能够自由切换工作模式, 然而用户模式无法直接切换至其他模式, 况且当用户程序需要访问硬件资源时, 必须借助软中断或者异常方可进入特权模式。

用户与系统模式

应用程序的运行环境是用户模式, 它处于操作系统的用户态, 它没有直接操作硬件资源的权限, 它只能处理自身的数据, 它也无法切换到其他模式。

系统模式属于特权模式范畴, 不存在受用户模式约束的情况, 用户模式以及系统模式共同使用同一套寄存器组, 操作系统能够于系统模式下便利地对用户模式的寄存器进行访问, 进而执行某些受到管控的特权任务。

中断与异常模式

中断模式含有两种类别, 第一种是快速中断FIQ , 第二种是普通中断IRQ。其中, FIQ 被运用在进行高速数据传输,它存在可独立的拥有个体性质的物理寄存器作为保障, 其响应速度在这当中更为快速。而IRQ则是用于处理一般的中断请求之际所呈现的模式, 此模式是最为常见的中断处理模式。

异常模式涵盖数据访问终止ABT以及未定义指令终止UND, 当程序对没有权限的内存地址加以访问时, 便会进入ABT模式来进行处理, 而当执行未定义之指令的时候, 该处理器就会进入UND模式用以支持硬件扩展功能。

管理模式的作用

作为操作系统供给软中断服务时所特有的模式, 管理模式又被称作超级用户模式。用户程序借助软中断指令引发异常, 处理器会在此时自动切换到管理模式去执行系统调用。

身为用户程序与操作系统进行交互的那座桥梁, 管理模式发挥着关键作用。正是借助这种机制, 应用程序才能够在不拥有直接权限的情形下, 凭借操作系统的特权去达成文件读写、设备控制等操作。在处理操作完成之后, 程序会回归到用户模式进而继续执行。

ARM处理器有七种分担不同工作的模式, 你会认为在实际进行开发期间哪一种模式是最为经常被使用的? 欢迎于评论区域分享你的观点, 要是觉得这篇文章对你存有帮助, 记得点赞并转发给更多的同行!

提醒:请联系我时一定说明是从丽人有帮网上看到的!