历史上的今天
返回首页

历史上的今天

今天是:2025年02月22日(星期六)

2020年02月22日 | ARM体系结构_DAY2

2020-02-22 来源:eefocus

程序状态寄存器(CPSR)

Mode位[4:0]:处理器模式为

  USER模式不能直接切换到特权模式,在特权模式下可以直接修改mode位[4:0]为10000,切换到USER模式。

 

T bit位[5]:处理器状态位

  T = 0,J= 0处于ARM指令集状态

  T = 1,J= 0处于Thumb指令集状态  

  T = 1,J = 1处于ThumbEE指令集状态

中断禁止位[7:6]

  I = 1 进制IRQ

  F = 1 进制FIQ

条件位[31:27]

  • N位  Negative result from ALU  ALU运算结果为一个负数时, 此为自动置 1 否则为 0

  • Z位  Zero result from ALU  ALU运算结果为 0 时,此位自动置 1,否则为 0

  • C位  分为加法运算和减法运算两种情况:


    1. 进行加法运算,如果产生进位 C位自动置一

    2. 进行减法运算时,如果产生借位, C位自动置 0

  • V位  符号位溢出,(最高为产生变化,针对于有符号数来说) V位自动置 1

      计算机系统中,所有的数据都以 二进制补码 方式存储。

   

异常处理                                                                                                         

ARM 有 7 类中断源:

      偏移量  异常类别

  1.   0x1C  FIQ 快速响应中断

  2.   0x18  IRQ  外部中断

  3.   0x10  Data Abort  数据终止  当访问数据时,CPU不允许访问请求 会进入此种中断

  4.   0x0C  Perfetch Abort

  5.   0x08  software interrupt

  6.   0x04  Undefined Instruction  指令未定义异常  CPU取出一条指令,如果不能执行,此时会  将数据交由协处理器执行。若没有协处理器或者协处理器也不能处理,就会触发此中断

  7.   0x00  Reset  复位中断

7种异常对应的5种模式

异常源:  FIQ  IRQ  Reset/软中断      DataAbort/PerfetchAbort       Undef

CPU模式:  FIQ  IRQ  Supervisor(SVC)  Abort                   Undef  

 

异常处理过程:

  当异常产生异常时,ARM core(自动执行但不包括压栈操作):

  • 拷贝 CPSR(current program status register)内容到 SPSR_(saved program status     register)指的是具体哪一个状态的SPSR

  • 设置适当的 CPSR 位:

    1. 改变处理器状态进入ARM状态(处理异常时,必须在ARM状态下进行)

    2. 改变处理器模式进入相应的异常(特权)模式

    3. 设置中断禁止位,防止中断处理过程中产生中断(如果需要)

       Cortex A系列处理器,不允许同一类的中断嵌套   (处理FIQ时,不响应IRQ;处理IRQ时,可嵌套FIQ)

  • 保存返回地址到 lr_

  • 设置 pc 为相应的异常向量

  • ARM7、ARM9的异常向量表固定为0x00开始的一端内存中,cortex A系列默认为 0x00 但可以手动设置

  返回时,异常处理需要(中断处理程序中手动执行):

  • 从 SPSR_恢复 CPSR

  • 从 lr_ 恢复 PC

  • Note:这些操作只能在 ARM 状态执行

异常源类型,对应处理器模式。

 

异常优先级
  Reset ——> Data Abort ——> FIQ > IRQ ——> Prefetch Abort ——> SWI→Undefined

 

FIQ 比 IRQ 快? 三方面原因:

  1. FIQ优先级高

  2. FIQ在中断向量表的最高偏移地址,在编程时可以直接在FIQ后面添加中断处理程序,省去了跳转指令。

  3. FIQ有多个私有寄存器(r8_r14),在中断处理程序中使用这几个寄存器时可以省去压栈,弹栈操作

指令流水线

三级流水线:

PC(program count)指向正在取指的指令。

PC - 4 为正在译码的指令。

PC - 8 为正在执行的指令。


推荐阅读

史海拾趣

爱浦电子(AIPULNION)公司的发展小趣事

爱浦电子自成立以来,一直致力于模块电源技术的研发与创新。在成立初期,公司便凭借其专业的研发团队和先进的生产设备,成功研发出多款具有竞争力的模块电源产品。随着技术的不断进步,爱浦电子不断对产品进行升级和优化,以满足市场日益增长的需求。公司不仅通过了ISO9001质量管理体系认证,还成功获得了CE、RoHS等国际认证,进一步提升了产品的品质和竞争力。

ELDECO公司的发展小趣事

面对全球电子记录仪市场的快速增长,ELDECO公司制定了国际化发展战略。公司首先在欧洲市场设立了研发中心和生产基地,通过与当地合作伙伴的紧密合作,成功将产品打入欧洲市场。随后,公司又在美国、亚洲等地设立了分支机构,进一步拓展全球市场。通过国际化战略布局,ELDECO公司不仅提高了品牌影响力,还获得了更多的市场机会和客户资源。

Datakey Electronics公司的发展小趣事

在电子产品行业,产品质量是企业生存和发展的基石。Datakey Electronics始终坚守品质至上的原则,从原材料采购到生产流程控制,再到产品检验和售后服务,每一个环节都严格把关。正是这种对品质的执着追求,使Datakey Electronics的产品在市场上树立了良好的口碑,赢得了客户的信赖。

Aearo Technologies公司的发展小趣事

在发展过程中,Aearo Technologies经历了一次重要的收购事件。3M公司看中了Aearo在能量控制领域的领先地位和技术实力,于XXXX年将其收购。收购后,Aearo Technologies成为了3M旗下的一家子公司,继续保留其品牌和技术优势。通过业务整合和资源共享,Aearo Technologies在3M的支持下实现了更快速的发展。

Altitude Technology公司的发展小趣事

随着公司的不断发展,Altitude Technology逐渐在电子行业中崭露头角。然而,市场竞争也日趋激烈,为了保持领先地位,公司决定加大研发投入,致力于技术突破。经过长时间的研发,Altitude Technology成功推出了一款采用最新芯片技术的智能手机,这款手机在性能、功耗和拍照效果等方面均达到了行业领先水平,为公司赢得了更多的市场份额。

Ericsson公司的发展小趣事

Ericsson公司始终将创新作为企业发展的核心动力。从早期生产电话机、电话交换机到今天提供端到端全面通信解决方案以及专业服务,Ericsson不断定义电信行业“进步”的含义,并通过实现每一个“进步”引领全球电信业的技术发展与变革。特别是在移动通信领域,Ericsson一直处于领先地位,为全球所有主要移动通信标准提供设备和服务。

问答坊 | AI 解惑

谁有mini SD卡座的PCB图库

我没有实物也没有样图,如果谁有,就发个pcb图给我就好了…

查看全部问答>

想学Linux的先把C语言指针基础教程给看了----顶嵌

以下是顶嵌嵌入式培训学员延小伟所写的C语言技术文章:     说白了,指针就是地址,地址里面放着不同的值,用操作指针的方法来操作这些值。     在32位机中,指针本身占4位,定义时,可以 int *p=&a,其中int *是一部 ...…

查看全部问答>

c#中如何将图片转为字节数组

我想用网络发送一张图片,把图片转为字节数组时遇到了问题 MemoryStream ms = new MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] bt = ms.GetBuffer(); 这种方法在wince中不可以用,弹出NotSupportedExcep ...…

查看全部问答>

单片机LCD12864显示原理及驱动命令?

写驱动程序时要注意的问题有哪些?…

查看全部问答>

linux下如何使用arm-linux-gcc编译器

如题linux下如何使用arm-linux-gcc编译器…

查看全部问答>

Cyclone V试用报告一 远程程序下载初试

收到开发板两周多了,白天公司事忙的不行,晚上还得抱孩子,本来要好好试试PCIe,结果耽搁了不少时日,也连累了玲珑小姐,实在对不住! 总体来说有以下两方面   优点:     1,开发板设计还是比价人性化,供电可以PCIe也可 ...…

查看全部问答>

探讨可编程增益放大器驱动参考引脚

可编程增益放大器 (PGA) 是特殊的放大器结构(请参见图 1),具有经过修整的内部电阻器网络,拥有比采用离散式电阻器组件的放大器更高的性能。正如图 1 中 PGA 传输函数所显示那样,PGA 输出的绝对误差与内部偏移电压(VOS)、增益精度和 VREF 绝对精 ...…

查看全部问答>

这本书,确实不错。

这本书确实很好, 很久以前我就希望自己能写一本这样的书,可是岁月蹉跎,时光流逝了,自己的技术还是没有很大的提升,现在看到你们写到了,真是内心里无比的激动。…

查看全部问答>

AD09中原理图参数预先设定或者模板

图中框到的那个部分的内容,我在设计自己的原理图时候,我希望不用每次都去添加个人信息。因为自己画的原理图都是没有方框里的东西的,我想问下可不可以预先设定一个模板直接调用就可以了,不用每次都去添加个人信息…

查看全部问答>

【R7F0C809】第十三篇--项目第二阶段详细设计2

本帖最后由 陌路绝途 于 2015-11-8 11:04 编辑           输入项: 输出项: 算法由于该程序所用的数据结构简单,所以该程序所使用的查找算法只是简单的按照关键字查找。流程逻辑当用户在下位机触摸屏上按下对应 ...…

查看全部问答>