ARM的System Mode

发布者:boyhxz最新更新时间:2016-07-25 来源: eefocus关键字:ARM  System  Mode 手机看文章 扫描二维码
随时随地手机看文章
在ARM v4以后的版本里,ARM核都有7中工作模式:User, FIQ, IRQ, Supervisor, Abort, Undefined,和System。

7种processor mode又分为3类:

User mode

Privileged mode

system mode

对于System mode的作用一直有些模糊,今天在arm的网站上找到了一份说明文档,对这个问题的解析很到位,特记录如下:

The ARM Architecture defines a User mode that has 15 general purpose registers, a pc, and a CPSR.

除User Mode外,还有5种privileged modes

每一种Priviledged mode都有一个SPSR and a number of registers that replace some of the 15 User mode general purpose registers. 

当exception发生时:

 the current PC is copied into the link register for the exception mode,

the CPSR is copied into the SPSR for the exception mode.

The CPSR is then altered in an exception-dependent way, and the program counter is set to an exception-defined address to start the

exception handler.

 

BL指令 copies the return address into r14 before changing the PC, so the subroutine return instruction moves r14 to pc (MOV pc,lr).

Together these actions imply that ARM modes that handle exceptions must ensure that another exception of the same type cannot

occur if they call subroutines, because the subroutine return address will be overwritten with the exception return address.

(要防止lr被覆盖)

(In earlier versions of the ARM architecture, this problem has been solved by either carefully avoiding subroutine calls in exception

code, or changing from the privileged mode to User mode.The first solution is often too restrictive, and the second means the task

may not have the privileged access it needs to run correctly.)

从ARMv4架构开始,提供了system mode来解决lr覆盖问题.

System mode is a privileged processor mode that shares the User mode registers. (与User Mode共用registers)

Privileged mode tasks can run in this mode, and exceptions no longer overwrite the link register.

注意:

System mode cannot be entered by an exception.

The exception handlers modify the CPSR to enter System mode. See Reentrant interrupt handlers for an example.

就不逐字翻译了,大体意思如下:

当处理器异常出现时,当前程序计数器(也就是 PC+offset,offset与异常种类相关)会被拷贝的相应异常模式的LR,CPSR也会被拷贝到

相应异常模式的SPSR。然后CPSR会被设置为相应的异常模式, PC被设置到对应异常的入口处执行其处理函数。

(上面这些都是ARM核自动操作的)

ARM的子程序转移指令BL会在改变PC前将返回地址放到LR中,所以从子程序返回时可以把r14放到PC来操作。如MOV pc, lr。

所有上面的动作都暗示了如果异常处理函数会调用子程序(使用 BL),那么各异常模式都必须保证异常处理函数执行的过程中不能出现

同样的异常,因为子函数的返回地址会被异常的返回地址覆盖掉。(在早期的ARM版本中,可以通过禁止异常处理函数调用子函数或者切

换处理模式到User模式来解决这个问题。第一种方式过于严格,而第二种方式可以会由于User模式缺少相应的权限而不能执行某些动

作)。

为此,ARM v4及之后的版本提供了system mode这样一种处理器模式来解决这个问题。System mode是一种privileged的模式,而且共用

User模式的所有寄存器。Privileged模式的程序可以运行在这个模式,而不用担心处理器异常会擦除LR。

关键字:ARM  System  Mode 引用地址:ARM的System Mode

上一篇:ARMv7的非对齐地址访问
下一篇:ARM TCM(紧耦合内存)内存--简介

推荐阅读最新更新时间:2024-03-16 15:01

嵌入式系统设计中ARM仿真器的作用
本文提供了一些关于在线 ARM 仿真器的信息,以及给作为嵌入式系统设计师的你带来的好处。根据你的需要,你将在产品开发中对开发工具作出更恰当的选择。 一、嵌入式产品的开发周期 典型的嵌入式微控制器开发项目的第一个阶段是用C编译器从源程序生成目标代码,生成的目标代码将包括物理地址和一些调试信息。目前代码可以用软件模拟器、目标Monitor或在线仿真器来执行和调试。软件模拟器是在PC机或工作站平台上,以其CPU(如x86)及其系统资源来模拟目标CPU(如P51XA),并执行用户的目标代码;而目标Monitor则是将生成的目标代码下载到用户目标板的程序存储器中,并在下载的代码中增加一个Monitor任务软件,用来监视和控制用户
[单片机]
ARM发布全新处理器架构 性能提升3.5倍
ARM周二发布了新的处理器设计,提升了处理器的计算性能和图形处理能力,从而满足未来一年智能手机和平板电脑的需求。    ARM Cortex-A72架构基于ARM 64位v8-A指令集,官方宣称新架构的性能相比五年前提升了50倍,也是去年主流的Cortex-A15性能的3.5倍,同时其功耗更是降低了75%之多。    而功耗的降低很大程度上源自该架构转为16纳米FinFET工艺技术,这将相比20纳米的设计提升能耗效率,可允许核心主频最高至2.5GHz。同时ARM也正在改善其big.LITTLE大小核技术,如此将额外降低40%-60%的功耗。      ARM也在此次介绍了全新CoreLink CC
[单片机]
ARM笔记: GPIO口LED程序
leds.bin:crt0.S leds.c arm-linux-gcc -g -c -o crt0.o crt0.S arm-linux-gcc -g -c -o leds.o leds.c arm-linux-ld -Ttext 0x00000000 -g crt0.o leds.o -o leds_elf arm-linux-objcopy -O binary -S leds_elf leds.bin arm-linux-objdump -D -m arm leds_elf leds.dis clean: rm -f leds.dis leds.bin leds_elf *.o .text .gl
[单片机]
ARM】制作Linux 文件系统
#1从零开始由busybox 建立文件系统 ##1.1文件系统在LINUX 中的结构图 ##1.2编译好kernel 编译linux kernel的具体操作在之前文章讲过,下面简要提示一下。 修改编译器PATH,指定寻找路径。 cd kernel-2.6.13 (进入内核目录) cp config_n35 .config make (编译内核,假设已经设置好了) cd arch/arm/boot (进入生成的zImage 目录) mkimage.sh (产生有uboot 可以引导的uImage 内核文件) ##1.3Uboot 状态下显示的环境设置信息 setenv bootcmd tftp 30008000 uimage;b
[单片机]
【<font color='red'>ARM</font>】制作Linux 文件系统
ucos在s3c2410上运行过程整体剖析之基础知识- ARM9芯片知识
阅读这些内容前,希望你对计算机有了一点简单的概念,最好学习过计算机组成原理并知道一些最基本的概念。如果你学习过51系列的单片机并且利用51系列的单片机做过一些开发,那看这些内容就很简单了。如果你没这些知识也没关系,以我的学习经历来看,可以给大家一个学习计算机组成原理的建议。你可以先大致学习一下计算机组成原理,学完之后一般会对计算机有一个大体的了解,计算机专业在开设这门课时一般会安排计算机组成原理实验,这个实验大家要好好去做,这样会打消你对计算机很神秘的认识。有了这些基础之后,建议大家去学51系列的单片机,在这个小型计算机上做一些开发,这样你就会对计算机组成原理有了更真实更深刻的认识。学习了51系列单片机后,你也对计算机语言有了进一
[单片机]
ARM JTAG SWD SWO SWV
JTAG - Joint Test Action Group JTAG(Joint Test Action Group)联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容) Test Access Port and Boundary-Scan Architecture 主要用于芯片内部测试及对系统进行仿真、调试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。通常所说的JTAG大致分两类, 一类用于测试芯片的电气特性,检测芯片是否有问题; 一类用于Debug;一般支持JTAG的CPU内都包含了这两个模块。 一个含有JTAG Debug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU
[单片机]
<font color='red'>ARM</font> JTAG SWD SWO SWV
新未来芯飞翔,Arm未来之芯助力青少年科技教育
在中国电子学会的指导下,在上海市电子学会的支持下,由Arm China、中国电子学会主办,安芯教育、上海市电子学会承办,First Landing Education、重庆微芯比特教育科技有限公司协办,英国驻上海总领事馆、英国国际贸易部提供支持的新未来–芯飞翔2019 Arm未来之芯国际挑战赛暨全国青少年电子信息智能创新大赛国际站(以下简称“竞赛”)启动仪式在英国驻上海总领事馆成功举办。 出席此次启动仪式的有英国驻上海总领事馆副总领事Tony Clemson、中国电子学会科普部主任杨晋、Arm中国全球服务总经理陈鹏、Arm中国教育生态部总监陈炜、Arm中国亚太区教育经理薛浩、上海市科学技术协会学术部部长潘祺、上海
[单片机]
新未来芯飞翔,<font color='red'>Arm</font>未来之芯助力青少年科技教育
交交变频器用于交流提升机控制系统的研究ResearchofControlSystemACLiftbyUseofAC/ACFrequencyConverter(F
    摘要:通过SIMOREGK6RA24全数字直流调速装置的运用实践,根据交交变频器主电路和基本控制的特点,提出一构成交流提升机全数字拖动控制系统的方法,对其主电路接线及控制部分进行论述。     Abstract:By means of operational practiceof SIMOREG K 6RA24 full digital DC governerunit, according to main circuit of AC/AC FC and fundamental control feature,a method of constitute AC lift with full digital
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved