欢迎来到天天文库
浏览记录
ID:37193820
大小:1.40 MB
页数:127页
时间:2019-05-12
《嵌入式系统第3章ARM寻址方式与指令系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章ARM寻址方式与指令系统ARM编程模型ARM指令格式和寻址方式ARM指令集Thumb指令集机器指令、伪指令和宏指令机器指令:能被处理器直接执行,而伪指令宏和宏指令不能。机器指令包括ARM指令集和Thumb指令集;伪指令:在源程序汇编期间,由汇编编译器处理。其作用是为汇编程序完成准备工作;宏指令:在程序中用于调用宏,宏是一段独立的程序代码;在程序汇编时,对宏调用进行展开,用宏体代替宏指令。ARM处理器模式ARM微处理器支持7种工作模式:用户模式、系统模式、快速中断模式、外部中断模式、管理模式、中止模式、未定义指令模式。除用
2、户模式之外的其余6种称为非用户模式,或特权模式。在特权模式中,除系统模式之外的其余5种称为异常模式。处理器的各种工作模式由当前程序状态寄存器CPSR的低5位M[4:0]决定。工作模式切换:(1)发生异常,处理器自动改变CPSR中M[4:0]的值,进入相应的工作模式;(2)处理器处于特权模式时,用指令向CPSR的M[4:0]字段写入特定的值,进入相应的工作模式。用户模式时,不能改变工作模式,除非发生异常。ARM处理器7种工作模式处理器模式说明备注M[4:0]用户(usr)正常程序执行模式不能直接切换到其它模式10000快速中断(
3、fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式10001外部中断(irq)用于通用中断处理IRQ异常响应时进入此模式10010管理(svc)操作系统保护模式系统复位和软件中断响应时进入此模式10011中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处10111未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式11011系统(sys)运行操作系统的特权任务与用户模式类似,但具有可以直接切换到其它模式等特权11111特权模式处理器模式说明备注用户(usr)正常程序工作模式
4、不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许
5、(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。未定义(und)中止(abt)管理(svc)外部中断(irq)快速中断(fiq)系统(sys)异常模式处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统
6、复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式未定义(und)中止(abt)管理(svc)外部中断(irq)快速中断(fiq)这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。用户和系统模式处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模
7、式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快速中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式外部中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。系统模式是特权模式,不受用户模式的限制
8、。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。系统(sys)用户(usr)处理器的工作状态从编程的角度讲,ARM处理器工作在两种状态:ARM状态或Thumb状态。(1)ARM状态:处理器执行32位的ARM指令
此文档下载收益归作者所有