首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

系统架构---ARM体系架构

系统架构---ARM体系架构

说起arm体系,其实我并不是太了解,以前一直做的mips体系的,做做驱动,或者调试调试oops bug.   这里也仅限于给自己来个抛砖引玉,作为深入研究的一个开始吧^^.
ARM, Advanced RISC Machines, 1991年成立于英国剑桥; 巧合的是, LINUX也诞生在这一年;
ARM的7种运行模式:
非特权模式<--->-特权模式
非异常模式<--->异常模式
用户模式    系统模式    中断模式,快中断模式, 管理模式, 终止模式, 未定义模式

内存结构模型:冯诺依曼结构和哈佛结构;后者分2个独立的内存空间:指令空间和数据空间;
ARM的工作状态, ARM态(32bit), THUMB态(16bit); BX指令可以切换;
ARM的存储器格式, 可设为大端格式或小端格式;
ARM寄存器组织, 37个32bit寄存器,其中:
31个通用寄存器:未分组R0~R7, 分组R8~R14(R13为堆栈指针寄存器SP, R14为子程序链接寄存器LR), 程序计数器PC(R15);
6个为状态寄存器, CPSR+5*SPSR;

ARM的7种异常:
0X0-reset, 0X4-undefined, 0X8-swi, 0XC-prefetch abort, 0X10-data abort, 0X14-保留, 0X18-irq, 0X1C-fiq;

异常优先级排序:
1.RESET  2.DATA ABORT  3.FIQ  4.IRQ  5.PRE ABORT  6.UNDEF, SWI

ARM对异常的响应:
下一条指令存入LR->CPSR复制到相应的SPSR保存->设置CPSR模式位->禁止中断位->调整到异常处理向量;
ARM从异常返回:
LR的值减去相应的偏移量送到PC中, SPSR复制到CPSR中, 同时也恢复了中断禁止位;
ARM指令分类(7种):
跳转指令, 数据处理指令, 乘法指令, 加载/存储指令, 状态寄存器指令, 协处理器指令, Thumb指令集;
嵌入式最小系统:   处理器, 内存, 时钟, 电源和复位
FIQ比IRQ更快的原因:   
1. 寄存器R8~R14, 不用保存;   2. 优先级更高;   3. 最异常向量表最后, 不用跳转;
这里我们可以查看cpsr寄存器来查看当前cpu的工作模式.
对于更详细的我们只能通过cpu手册,还有参考相关实现代码和调试来加深我们的理解了.
继承事业,薪火相传
返回列表