当前位置: 首页 > news >正文

做楼盘网站小说网站需求分析

做楼盘网站,小说网站需求分析,英文版网站怎么做,网站建设情况的汇报ARM中断返回地址详细分析 在ARM体系中#xff0c;通常有以下3种方式控制程序的执行流程#xff1a;1、在正常执行过程中#xff0c;每执行一条ARM指令#xff0c;程序计数器PC的值加4个字节#xff1b;每执行一条Thumb指令#xff0c;程序计数器PC加2个字节。整个过程是顺… ARM中断返回地址详细分析 在ARM体系中通常有以下3种方式控制程序的执行流程 1、在正常执行过程中每执行一条ARM指令程序计数器PC的值加4个字节每执行一条Thumb指令程序计数器PC加2个字节。整个过程是顺序执行的 2、跳转 B指令执行跳转操作BL指令在执行跳转的同时保存子程序返回地址BX指令执行跳转的同时根据目标地址的最低位可以将程序状态切换到Thumb状态BLX指令执行上述3个操作 3、当异常中断发生时系统执行完当前指令后将跳转到相应的异常中断处理程序处执行。在进入异常中断处理程序时要保存被中断的程序的执行现场在从异常中断处理程序退出时要恢复被中断的程序的执行现场。当异常中断处理程序执行完成后程序返回到发生中断的指令的下一条指令处执行。 重点ARM处理器对异常中断的响应过程 ㈠、保存当前程序状态寄存器CPSR到对应异常中断的处理器模式下的SPSR中 ㈡、设置当前程序状态寄存器CPSR的处理器模式位M(4:0)为对应的处理器模式并禁止IRQ中断(设置I位1当进入的是FIQ模式时,禁止FIQ中断(设置F位1) ㈢、将对应异常中断的处理器模式下的LR设置成返回地址 ㈣、将程序计数器PC值设置成该异常中断向量地址从而跳转到相应的异常中断处理程序处执行。 上述处理器对异常中断的响应过程可以用伪代码描述如下 R14exception_modereturn Link SPSRexception_modeCPSR CPSR[4:0]exception mde number CPSR[5] 0        //所有异常均在ARM状态下处理 ifexception_modeReset or FIQ then CPSR[6]1 //禁止FIQ中断 CPSR[7] 1 //禁止IRQ中断 PC exception vetor address 程序将自动跳转到对应异常中断的处理程序中。 上述过程完全由处理器自动完成所以当发生一种异常中断时寄存器R14 、CPSR、SPSR和PC的值将是上述的结果 ARM处理器中主要有7个异常2个中断异常 1、复位异常在以ARM为核的单片机中常把下列事件作为引起复位的原因。 1上电复位在上电后复位使内部达到预定的状态特别是程序跳到初始入口 2复位引脚上的复位脉冲这是由外部其他控制信号引起的 3对系统电源检测发现过压或欠压 4时钟异常复位。 ARM处理器复位后处理器硬件将进行以下操作 1强制进入管理模式0b10011 2强制进入ARM状态T0 3跳转到绝对地址PC0x00000000处执行 4禁止IRQ中断和FIQ中断。I1,F1; 复位后程序状态寄存器如下        ...... I  F  T  M4  M3  M2  M1  M0 1  1  0   1    0    0    1   1 上电复位后进入管理模式执行操作系统程序一般用做对系统初始化例如开中断等然后切换到用户模式开始执行正常的用户程序。 切换到用户模式可使用下列程序 MRS R0,CPSR     读状态寄存器 BIC R0,R0,#03   把末两位清0 MSR CPRS_c,R0   把修改后的值加载给状态寄存器切换结束 ......          用户程序 2、未定义指令异常由于ARM使用32位代码包含的信息量很大可达2的31方4G。ARM指令集不能用尽所有代码。当ARM处理器遇到无法译码的指令时就会发生未定义指令异常。进入中断处理程序。 ARM的未定义指令异常有以下两种情况 1遇到一条无法执行的指令此指令没有定义 2执行一条对协处理器的操作指令在正常情况下协处理器应该应答但协处理器没有应答。 未定义异常中断时处理器硬件将进行以下操作 1把下一条指令的地址拷贝给LR 2把程序状态寄存器CPSR拷贝给SPSR_und 3强制进入未定义模式 0b11011 4强制进入到ARM模式T0 5跳转到绝对地址PC0x00000004处执行 6禁止IRQ中断。 I0 7状态寄存器中的F位不变。 进入中断后程序状态寄存器如下 ...... I  F  T  M4  M3  M2  M1  M0 1  x  0   1    1    0   1    1 使用下列指令退出异常中断返回原程序 。 MOVS PC,R14. 3、软件中断异常是由指令SWI引起的。程序在执行这一指令后进入异常中断。 SWI和未定义指令异常中断是由当前执行的指令自身产生的。当SWI和未定义指令异常中断产生时程序计数器PC的值还未更新它指向当前指令后面第2条指令(对于ARM指令来说8字节对于Thumb指令来说4字节的位置)。当SWI和未定义指令异常中断产生时处理器将值(PC-4)保存到异常模式下的寄存器LR_mode中。这时(PC-4)即指向当前指令的下一条指令地址。因此返回操作可以通过下面的指令来实现MOV PC,LR。该指令将寄存器LR中的值复制到程序计数器PC中实现程序返回同时将SPSR_mode寄存器内容复制到当前程序状态寄存器CPSR中。 处理器响应中断硬件执行如下的操作。 1把下一条指令的地址拷贝给LR 2把程序状态寄存器CPSR拷贝给SPSR_svc 3强制进入管理模式0b10011 4强制进入到ARM状态T0 5跳转到绝对地址PC0x00000008处执行 6禁止IRQ中断。 I1 F保持不变 进入中断后的程序状态寄存器如下 ...... I  F  T  M4  M3  M2  M1  M0 1  x  0   1    0    0   1    1 软件中断处理程序完成后使用下列指令返回到原中断处MOVS PC,R14. 4、预取指中止异常由程序存储器引起的中止异常叫做预取指中止异常由数据存储器引起的中止异常叫做数据中止异常。由于ARM的指令是3级流水线结构读取指令周期是提前进行的因此把读取指令的过程一般称预取指。如果在取得指令的同时程序存储器发出中止信号则ARM处理器把这一条指令标记位无效然后等待执行。 在指令预取时如果目标地址是非法的该指令将被标记成有问题的指令。这时流水线上该指令之前的指令继续执行。当执行到该被标记成有问题的指令时处理器产生指令预取中止异常中断。 当发生指令预取中止异常中断时程序要返回到该有问题的指令处重新读取并执行该指令。因此指令预取中止异常中断程序应该返回到产生该指令预取中止异常中断的指令处而不是像前面两种情况下返回到发生中断的指令的下一条指令。 指令预取中止异常中断是由当前执行的指令自身产生的当指令预取中止异常中断产生时程序计数器PC的值还未更新它指向当前指令后面第2条指令(对于ARM指令来说它指向当前指令地址加8个字节的w位置对于Thumb指令来说它指向当前指令地址加4个字节的位置)。当指令预取中止异常中断产生时处理器将(PC-4)值保存到异常模式下的寄存器LR_mode中。这时(PC-4)即指向当前指令的下一条指令。因此返回操作可以通过下面的指令来实现SUBS PC,LR,#4 该指令将寄存器LR中的值减4后复制到程序计数器PC中实现程序返回同时将SPSR_mode寄存器内容复制到当前程序状态寄存器CPSR中。 有两种可能如下 1当执行这条指令前程序发生跳转则这条无效指令不引起异常中断 2当执行到这条指令时处理器会发生预取指中止异常引起中断。 当进入预取指异常中断时处理器硬件响应中断执行以下的操作 1把中断时PC的地址拷贝给LR 2把程序状态寄存器CPSR拷贝给SPSR_abt 3强制进入中止异常模式0b10111 4强制进入到ARM状态T0; 5跳转到绝对地址PC0x0000000C处执行 6禁止IRQ中断。    I1; 进入中断后程序状态寄存器如下 ...... I  F  T  M4  M3  M2  M1  M0 1  x  0   1    0    1    1    1 预取指中止异常中断返回时应该执行下列指令SUBS PC,R14,#4. 5、数据中止异常ARM处理器访问数据存储器时在读取数据的同时数据存储器发出了中止信号引起数据中止异常。 当进入预取数据异常中断时处理器硬件响应中断执行以下的操作 1把中断时的PC的地址拷贝给LR 2把程序状态寄存器CPSR拷贝给SPSR_abt 3强制进入中止异常模式 4强制进入到ARM状态 5跳转到绝对地址PC0x00000010处执行 6禁止IRQ中断。 进入中断后程序状态寄存器如下 ...... I F T M4 M3 M2 M1 M0   1 x 0 1   0    1   1   1 数据中止异常中断服务程序返回时使用下列指令SUBS PC,R14,#8 上述指令是返回到中断时所执行的指令目的是再一次从数据存储器中读取数据。如果不再一次读取数据则执行下一条指令此时使用下列指令返回      SUBS PC,R14,#4 6、中断请求IRQ异常例如定时器中断、串行口通讯中断、外部信号中断和A/D处理中断等。IRQ中断是可屏蔽的。 通常当处理器执行完当前指令后查询IRQ中断引脚及FIQ中断引脚并且查看系统是否允许IRQ及FIQ中断。如果有中断引脚有效并且系统允许该中断产生处理器将产生IRQ或FIQ异常中断。这时程序计数器PC的值已经更新它指向当前指令后面的第3条指令(对于ARM指令来说它指向当前指令地址12字节位置对于Thumb指令来说它指向当前指令地址6字节的位置)。处理器这时将值(PC-4)保存到异常模式下的寄存器LR_mode中。这时(PC-4)即指向当前指令后面的第2条指令。因此返回操作可以通过下面的指令实现 SUBS PC, LR, #4 该指令将寄存器LR中的值减4后复制到程序计数器PC中实现程序返回同时将SPSR_mode寄存器内容复制到当前程序状态寄存器CPSR中。 在状态寄存器中的I位就是IRQ的屏蔽位。当I1时。则屏蔽IRQ中断当I0时则允许中断。处理器复位后置I为1关闭中断。 当发生IRQ中断时处理器硬件响应中断执行下列操作 1把中断时的PC的地址值拷贝给LR 2把程序状态寄存器CPSR拷贝给SPSR_irq 3制进入IRQ异常模式 4强制进入到ARM状态 5跳转到绝对地址PC0x00000018处执行 6禁止IRQ中断。 进入中断后程序状态寄存器如下 ...... I F T M4 M3 M2 M1 M0 1 x 0  1  0  0  1   0 完成中断处理后程序执行下列返回原中断处SUBS PC.R14,#4. 7、快速中断FIQ请求异常FIQ快速中断是可屏蔽的。在状态寄存器中的F位就是FIQ的屏蔽位。当F1时。则屏蔽FIQ中断当F0时则允许中断。处理器复位后置F为1关闭中断。   当发生FIQ中断时处理器硬件响应中断执行下列操作 1把中断时的PC的地址值拷贝给LR 2程序状态寄存器CPSR拷贝给SPSR_fiq 3强制进入FIQ异常模式 4强制进入到ARM状态 5跳转到绝对地址PC0x0000001C处执行 6禁止FIQ中断。 进入中断后程序状态寄存器如下 ...... I F T M4 M3 M2 M1 M0 1 x 0  1  0  0  0   1 完成中断处理后程序执行下列返回原中断处SUBS PC.R14,#4
http://www.zqtcl.cn/news/23653/

相关文章:

  • 台州网站建设策划html编辑器在哪
  • 怎么给自己的网站做seo头条网站开发
  • 在百度做橱柜网站哈尔滨正规制作网站公司
  • 枣庄手机网站建设公司建筑设计软件哪个好用
  • 住房和城乡建设部网站建造师网页设计你若安好便是晴天作业
  • 建设网站实施条件广州网站建设找哪家
  • 网站开发总结与收获网站开发技术岗位职责
  • 请简述网站建设的方法discuz 企业网站
  • 指示灯具网站建设网站设计太原
  • 计算机网站建设待遇北京网站优化软件
  • 做网站服务器需要自己提供吗西双版纳今天又封了
  • 在国外做购物网站网站建设报告书
  • 做网站多少钱google万网云虚拟主机上传网站
  • 价格优化网站建设广州白云机场网站建设
  • wordpress 集成安装包网站优化需要做什么
  • 网站开发需会的课程网页制作素材按钮图标
  • 宜昌建站seo短视频网页入口引流
  • wordpress上传图片不显示合肥seo整站优化网站
  • 洛阳霞光做网站公司如何制作一个公司网站
  • 软件公司网站建设wordpress地址栏显示ip
  • 外汇交易网站建设制作excel表格全步骤
  • 建筑公司网站需求网络公司网站源码 网络建设工作室网站模板 织梦广告设计公司源码
  • 政务网站建设情况汇报最美情侣视频免费观看完整版高清
  • 北京金创网站建设印刷网站开发策划书
  • 如何用个人电脑做网站互联网开发工程师证书
  • 企业建网站能不能一次进费用xyz域名免费注册
  • 百度seo优化网站开发公司保交房专班成员组成
  • 高端网站建设要多少钱公司运营方案模板
  • 深圳网站设计有哪些小程序网
  • 传媒公司营销网站上海人才网官网登录入口