|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、ARM存储器
2 N2 w* u# n8 }5 u5 s2 k# b1. 数据类型:字节、半字、字 2. 地址空间:最大可寻址空间位4GB(2的32次方字节)
7 f+ M2 A2 o+ h0 F9 {( B3. 大小端格式:' L8 j' ^% x+ [( ]$ G
大端格式是字数据的高字节存储在低地址中,低字节存在高地址中 小端格式是低地址中寸的是子数据的低字节,高地址存放的是子数据的高字节 7 R, w. ]3 @7 C) o7 M6 _
1 M0 a: h9 q, L, R* D
I. C$ V9 `8 Z6 i3 s; P; R6 _( v" r二、处理器模式
- E6 e' z) N! e1 o2 A! H. z; ?2 p6 C" p) K1 Y$ k+ \9 k; ?
ARM处理器共有7种工作模式,除用户(user)模式之外的其他6种处理模式统称为特权模式(Privileged Modes)。在这些模式下,程序可以访问所有的系统资源,也可以任意切换处理器模式。特权模式中除系统(system)模式之外的其他5种模式又统称为异常模式。 7 Y3 {% x5 U: e. R
处理器模式可以通过软件控制进行切换,也可以通过外部中断或内部异常处理过程进行切换。运行在用户模式下的程序不能访问一些受操作系统保护的系统资源,也不能直接进行处理器模式切换,如果要想进行模式切换,可以产生异常处理,在异常处理过程中进行处理器模式的切换,这种体系架构可以使操作系统控制整个系统资源。 : w1 I1 e5 Y5 g0 y
每一种异常模式中都有一组寄存器供异常处理程序使用,这样可以保证在进入异常模式时,用户模式下的寄存器不被破坏。 9 v; u8 c: F6 B+ P) _$ F* T
系统模式不是通过异常过程进入的,它和用户模式具有完全相同的寄存器。系统模式属于特权模式,可以访问所有系统资源,也可以直接进行处理器模式切换,主要供操作系统内核进程使用;通常操作系统内核进程需要访问所有的系统资源,同时该进程仍然使用用户模式下的寄存器组,而不是异常模式下的寄存器组,这样可以保证当异常发生时内核进程状态不被破坏。 5 ~# t. t" P' ]/ v H& c# v
6 j( F5 |) x* @# ]# j( y! ]
三、异常 3 c% J% l9 u, x o9 \
- w i, k. d M+ M& v' Q
当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。
% V( e7 Q% W# v- U7 \2 x当一个异常出现以后,ARM微处理器会执行以下几步操作 . e, i& f& i) o; U# d% C: e
1. 将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。
6 H# i& D5 i: F$ [! e/ a5 e" k2. 将CPSR复制到相应的SPSR中。 : J4 _3 ^: a7 H5 v
3. 根据异常类型,强制设置CPSR的运行模式位。 " E6 I% ]; i4 b
4. 强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。 " K3 N( K o% z) p9 ~
: p+ E: ]/ ?& p- Y: g( y0 A$ u |
|