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

免费素材哪个网站比较好装潢设计多少钱

免费素材哪个网站比较好,装潢设计多少钱,网页设计的收获,网站程序代码《嵌入式工程师自我修养/C语言》系列——ARM处理器有哪些工作模式和寄存器#xff1f;各寄存器作用是什么#xff1f; 一、ARM处理器的工作模式及寄存器1.1 ARM处理器的工作模式1.2 ARM处理器中的寄存器 二、ARM 异常中断处理2.1 什么是异常#xff1f;异常向量表是什么各寄存器作用是什么 一、ARM处理器的工作模式及寄存器1.1 ARM处理器的工作模式1.2 ARM处理器中的寄存器 二、ARM 异常中断处理2.1 什么是异常异常向量表是什么2.2 异常的响应和返回流程2.3 异常处理过程示例 快速学习嵌入式开发其他基础知识 返回专栏总目录 《嵌入式工程师自我修养/C语言》 Tip鼠标悬停双虚线关键词/句可获得更详细的描述 一、ARM处理器的工作模式及寄存器 1.1 ARM处理器的工作模式 ARM处理器有多种工作模式如下表所示。应用程序正常运行时ARM处理器工作在用户模式User mode当程序运行出错或有中断发生时ARM处理器就会切换到对应的特权工作模式。 处理器模式模式编码模式介绍User mode0B10000应用程序正常运行时的工作模式FIQ mode0B10001快速中断模式中断优先级比IRQ高用于处理高优先级中断请求IRQ mode0B10010中断模式Supervisor mode0B10011管理模式用于处理中断和异常复位和软中断时一般会进入该模式Abort mode0B10111用于处理内存访问错误指令读取失败时会进入该模式Undefined mode0B11011CPU遇到无法识别的、未定义的指令会进入该模式System mode0B11111类似用户模式但可以运行特权OS任务如切换到其他模式Monitor mode0B10110仅限于安全扩展 1.2 ARM处理器中的寄存器 在ARM处理器内部除了基本的ALU和控制单元还有一系列寄存器推荐先阅读《CPU是如何工作的什么是冯·诺依曼架构和哈弗架构》包括各种通用寄存器、状态寄存器、控制寄存器用来控制处理器的运行保存程序运行时的各种状态和临时结果如下图所示。 ARM总共37个寄存器但每种模式下最多只能访问18个。 总结 1、7个模式中除了user是普通模式以外其他6个都是特权模式 2、6个特权模式中除了System模式以外其他5个都是异常模式 3、模式的切换是通过代码写CPSR寄存器进行主动切换的或者CPU自动切换 4、各种模式可访问的寄存器数量不同操作权限不同方便操作系统的安全等级需求 ——引自CSDN-图南楠《ARM的工作模式和37个寄存器》 ARM处理器中的寄存器可分为通用寄存器和专用寄存器两种。寄存器R0R12属于通用寄存器除了FIQ工作模式在其他工作模式下这些寄存器都是共用、共享的 R0R3通常用来传递函数参数R4R11用来保存程序运算的中间结果或函数的局部变量等R12常用来作为函数调用过程中的临时寄存器。 除了这些在各个模式下通用的寄存器还有1个R15寄存器固定用作PC一个固定用作CPSR还有一些寄存器在各自的工作模式下是独立存在的如R13、R14、SPSR寄存器在每个工作模式下都有自己单独的寄存器各个寄存器功能描述如下 R13堆栈指针寄存器StackPointerSP用来维护和管理函数调用过程中的栈帧变化R13总是指向当前正在运行的函数的栈帧一般不能再用作其他用途R14链接寄存器Link RegisterLR在函数调用过程中主要用来保存上一级函数调用者的返回地址R15程序计数器Program CounterPCCPU从内存取指令执行就是默认从PC保存的地址中取的所以程序跳转时就是把目标地址代码放到PC中每取一次指令PC寄存器的地址值自动增加。CPSR处理器状态寄存器Current Processor State Register主要用来表征当前处理器的运行状态。除了各种状态位、标志位CPSR寄存器里也有一些控制位用来切换处理器的工作模式和中断使能控制。该寄存器的详细说明如下图所示。 两条Tips CPSR中的mode位bit4bit0共5位决定了CPU的工作模式在uboot代码中会使用汇编进行设置。CPSR中的T控制位bit5共5位决定了ARM内核的工作状态如下所示 ARM状态(T为0)ARM处理器执行32位的ARM指令集 异常中断时需要使用ARM指令(ARM状态)ARM处理器在上电开始执行代码时只能处于ARM状态 THUMB状态(T为1)ARM微处理器执行16位的Thumb指令集。 SPSR程序状态保存寄存器Saved Processor State Register当ARM处理器切换工作模式或发生异常时SPSR用来保存当前工作模式下的处理器现场即将CPSR寄存器的值保存到当前工作模式下的SPSR寄存器。当ARM处理器从异常返回时就可以从SPSR寄存器中恢复原先的处理器状态切换到原来的工作模式继续运行。 Tip   在ARM所有的工作模式中有一种工作模式比较特殊即FIQ模式。为了快速响应中断减少中断现场保护带来的时间开销在FIQ工作模式下ARM处理器有自己独享的R8R12寄存器。 二、ARM 异常中断处理 2.1 什么是异常异常向量表是什么 ——异常   正常工作之外的流程都叫异常中断是异常的一种。异常会打断正在执行的工作并且一般我们希望异常处理完成后继续回来执行原来的工作。当 CPU 正常运行时每执行完一条指令PC 值都会增加 4 即往后移动 32 位指向下一条指令thumb指令集PC步进为2。 Tip   异常和中断都是处理系统中突发事件的机制请求处理器打断正常的程序执行流程进入特定的处理或服务程序。但异常是意外操作引起系统被动接受与正在执行的指令有直接关系中断是向处理器主动申请的和正在执行的指令没有关系。 ——异常向量表   所有的CPU都有异常向量表这是CPU设计时就设定好的是硬件决定的。当发生异常中断时的处理方式为执行完当前指令后保护现场并跳转到异常中断处理程序处CPU 通过将 PC 值改为异常向量表中对应异常处理程序的地址实现跳转开始执行。处理程序执行完毕再回到中断前的位置恢复现场并继续执行。 Tip异常向量表是硬件向软件提供的处理异常的支持。 向量表是异常的入口地址发生对应异常时CPU会跳到对应的向量地址然后再跳转到向量地址中的异常处理地址实现异常处理。异常向量表一般都存在地址的最低端异常类型、来源以及对应的地址分布如下表所示 地址异常来源0x00复位Reset复位引脚有效也是系统刚上电时 CPU 跑到的第一个地址0x04未定义指令Undefined Instruction读到了无法解码的指令0x08软件中断SWISoftware Interrupt指令引起的异常0x0C指令预取中止Prefetch当程序试图执行一个非法的指令或没有执行权限的指令时会产生该异常0x10数据访问终止DataAbort当程序试图访问一个非法的内存地址或没有访问权限的内存地址时会产生该异常0x14无操作NOP—0x18外部中断IRQ当外部设备向处理器发出中断请求时会产生该异常0x1C快速中断FIQ当某些设备需要快速响应时可以使用该异常该异常的优先级高于IRQ异常 Tip   在ARM中向量表中0x14处的异常类型NOP指的是“无操作”No Operation也就是说当处理器遇到该异常时它不会执行任何操作直接返回到下一条指令的执行。这个异常类型通常被用作调试或占位符以确保向量表的每个条目都被占用不会被其他异常类型所覆盖。 2.2 异常的响应和返回流程 ——异常响应流程 把返回地址存入对应模式的 LR 即 R14 链接寄存器CPSR 存入对应 SPSR。这个 SPSR 指的是要跳到的中断模式的 SPSR比如要从 USR 跳到 FIQ那就把用户模式的 CPSR 送 FIQ 的SPSR重设 CPSR 各域值实现把 CPU 切换到对应的模式比如 FIQ 模式位就是 10001然后就可以用该模式下的独立寄存器了设置 PC R15 为中断向量地址实现强制跳转。 ——异常返回流程   其中“将PC变回用户指令流中相应指令处”的实际操作时LR 值减去偏移量后送 PC减偏移量是因为异常来的时候硬件可能来不及调整地址。下面是一些异常和对应返回的位置 异常返回时LR取值复位Reset不用返回原位置了未定义指令Undefined InstructionLRLR无偏移软件中断SWISoftware InterruptLR无偏移指令预取中止PrefetchLR-4数据访问终止DataAbortLR-8无操作NOP—外部中断IRQLR-4快速中断FIQLR-4 2.3 异常处理过程示例 AREA boot, CODE, READONLY ENTRYLDR PC, Reset_Add 中断向量表LDR PC, Undefined_Add...LDR PC, FIQ_AddReset_Add DCD Start_Boot 中断处理程序入口放在内存中 DCD分配一段连续的空间并初始化 含义标号 Reset_Add 的值为 Start_Boot 起的一段 Undefined_Add DCD Undefined_Handler ... FIQ_Add DCD FIQ_Handler ​ Start_Boot ...进行实际处理的代码即中断处理程序实现 Undefined_Handler ...进行实际处理的代码 FIQ_Handler ...进行实际处理的代码Tip这个可以当模板用其他的中断处理也就是改改调用的函数。 EXPORT IRQ_Handler EXPORT声明全局标号全程序可见可在其他文件中引用 AREA IRQ_Handler, CODE, READONLY SUB LR, LR, #0x4 设置返回地址为 LR-4 STMFD SP!, {R0-R12, LR} 寄存器压栈保护现场。进中断后这些寄存器随便用 MRS R4, SPSR SPSR 存 R4 STMFD SP!, {R4} 压栈R4 存入 SP 指向的内存位置即栈顶 BL IRQ_Function 跳转到真正的中断处理子函数 LDMFD SP!, {R4} 恢复 MSR SPSR_cxsf, R4 cxsf是指四个8位的域此处是整个32位寄存器 LDMFD SP!, {R0-R12, PC}^ 恢复现场并返回 END返回专栏总目录 《嵌入式工程师自我修养/C语言》
http://www.zqtcl.cn/news/689634/

相关文章:

  • 织梦网站seo安徽建设厅网站
  • 北京智能模板建站如何增加网站的索引量
  • 哪个网站专做进口商品的网站备案好麻烦
  • 南京网站制作哪家专业接口网站开发
  • 网站正在建设中9797鲜花网页设计模板
  • wordpress怎么自动更新网站地图现在最流行的网站开发工具
  • 科技局网站查新怎么做vs网站制作教程
  • 网站开发流程文档东莞英文建站公司
  • 怎样建俄文网站wordpress国产主题推荐
  • 网站开发晋升空间 路径秦皇岛房管局官网
  • 中山网站建设sipocms做家电网站好
  • 石家庄建设局网站怎么打不开手机网站素材
  • 电影网站怎么做要多少钱中企动力 网站价格
  • 长沙企业如何建网站爱用建站
  • 在哪个网站上做实验仪器比较好农村住宅设计图集
  • 网站的源代码有什么用wordpress英文博客模板下载
  • 用html5做网站的优点国内家居行业网站开发
  • 临沂企业网站客流统计系统厂家
  • 深圳H5网站开发最新版app下载安装
  • 手机网站免费模板下载成都建设项目环境影响登记网站
  • 上海网站seo公司网站建设公司盈利分析
  • 影评网站怎么做培训总结心得体会
  • 做微站比较好的网站注册子公司流程及所需资料
  • 网站 psd科技公司网站首页
  • 宁波论坛建站模板单页面视频网站
  • 冷饮网站开发背景意义大鱼直播
  • 网站如何建设二级域名代理天津专业做网站
  • 相城区建设局网站如何申请公司邮箱账号
  • 中国空间站名字无锡网站优化
  • 怎么做自己淘宝优惠券网站专业的网站制作公司地址