LPC22110--ARM7TDMI笔记(一)
来源:互联网 发布:序列化java 编辑:程序博客网 时间:2024/05/17 07:38
1.p0.7 引脚控制蜂鸣,低电平蜂鸣(JP9得导通).
2.ARM是Advance RISC Machines的缩写.
3.所有的异常处理都在ARM状态中执行.如果异常发生在Thumb状态中,处理器会切换到ARM状态.在异常处理返回时,自动切换回Thumb状态.
;从ARM状态转变为Thumb状态
LDR R0, =Lable+1
BX R0
;从Thumb状态转变为ARM状态
LDR R0, =Lable
BX R0
4.ARM7TDMI完全把持7种模式:
用户(usr) 正常程序工作模式 不能直接切换到其它模式
快中断(fiq) 支持高速数据传输及通道处理 FIQ异常响应时,进入此模式
中断(irq) 用于通道中断处理 IRQ异常响应时,进入此模式
管理(svc) 操作系统保护代码 系统复位和软件中断响应时,进入些模式
中止(abt) 用于支持虚拟内存或存储保护 在ARM7TDMI没多大用处
未定义(und) 支持硬件协处理器的软件仿真 未定义指令异常响应时,进入此模式
系统(sys) 用于支持操作系统的特权任务 与用户类似,但具有可以直接切换到其它模式等特权
除用户模式外,其它都为特权模式(包括系统模式)
有5种称为异常模式(除用户与系统模式).它们除了可以进行程序切换外,也可以由特定的异常进入.当特定的异常出现时,处理器进入相应的模式.每种模式都有某些附加的寄存器,以避免异常退出时,用户模式的状态不可靠.至于系统模式,与用户模式不一样,不能由异常进入,且使用和用户模式完全相同的寄存器.然而它是特权模式,不受用户模式的限制.有这个模式,操作系统要访问用户模式的寄存器就比较方便.同时操作系统的一些特权任务可以使用这个模式,以访问一些受控制的资源,而不必担心异常出现时任务状态变得不可靠.
5.ARM7TDMI有31个通用寄存器R0~R15,R13_svc,R14_svc,R13_abt,R14_abt,R13_und,R14_und,R13_irq,R14_irq,R8_fiq~R14_frq),6个状态寄存器共37个寄存器(CPSR,SPSR_svc,SPSR_abt,SPSR_und,SPSR_irq,SPSR_fir).这些寄存器并不是全部可以在同一时间被访问,处理器状态和操作系统模式判定了程序员可以访问哪些寄存器.
6.堆栈指针R13(SP),每个异常模式都有自己的R13分组版本,它通常指向由异常模式所专用的堆栈.在入口处,异常处理程序通常将其他要使用的寄存器值保存到这个堆栈.通过返回时将这些值重新装到寄存器中,异常处理程序可确保异常发生时的程序状态不会被破坏.链接寄存器R14(LR)在每种模式下,模式自身的R14版本用于保存子程序返回地址.当使用BL指令调用子程序时,R14设置为子程序返回地址.子程序返回通过将R14复制到程序计数器来实现.
MOV PC, LR
BX LR
- LPC22110--ARM7TDMI笔记(一)
- (1)ARM7TDMI-S内核
- (2)ARM7TDMI-S内核的调试结构
- Processor ARM7TDMI raised an exception.Cause:Undefined instruction(续)
- ARM7TDMI寄存器组织
- Flash Download failed-ARM7TDMI
- 移植UCOS-II到ARM7TDMI
- arm7tdmi的i2c驱动注释
- 基于proteus的ARM7TDMI-RTOS
- servlet笔记(一)
- struts笔记(一)
- 学习笔记(一)
- lucene笔记(一)
- C++笔记(一)
- 学习笔记(一)
- Perl笔记(一)
- pb笔记(一)
- Box2DFlash笔记(一)
- TIPS:禁止向U盘写入文件 从U盘COPY 删除
- pl sql 数据库编程 笔记
- 第五型 理智型
- SQL Server2000系列教程(二)---企业管理器
- Maxdos
- LPC22110--ARM7TDMI笔记(一)
- [转]关于指针的几个概念
- 《ASP.NET AJAX程序设计 第I卷 服务器端ASP.NET AJAX Extensions与ASP.NET AJAX Control Toolkit》连载&最新更新
- struts+spring整合测试
- Lex Yacc
- java中调用ORACLE存储过程
- JSP入门
- 40种网页常用小技巧(javascript)
- NOD32 香港升级代理,速度超快