指令集 | 一个周期执行一条指令,通过简单指令的组合实现复杂操作,指令长度固定。 | 指令长度不固 定,执行需要多个周期。 |
流水线 | 流水线每周期前进一步 | 指令的执行需要调用一段微程序 |
寄存器 | 更多通用寄存器 | 用于特定目的的专用寄存器 |
Load/Store结构 | 独立的Load/Store 指令完成数据在寄存器和外部存储器之间的传输 | 处理器能够直 接处理存储器中的数据 |
0b10000 | User | PC,R14~R0,CPSR |
0b10001 | FIQ | PC,R14_fiq~R8_fiq,R7~R0,CPSR,SPSR_fiq |
0b10010 | IRQ | PC,R14_irq~R13_irq,R12~R0,CPSR,SPSR_irq |
0b10011 | Supervisor | PC,R14_svc~R13_svc,R12~R0,CPSR,SPSR_svc |
0b10111 | Abort | PC,R14_abt~R13_abt,R12~R0,CPSR,SPSR_abt |
0b11011 | Undefined | PC,R14_und~R13_und,R12~R0,CPSR,SPSR_und |
0b11111 | System | PC,R14~R0,CPSR(ARMV4及更高版本) |
0b10110 | Secure monitor | PC,R14_mon~R13_mon,R12~R0,CPSR,SPSR_mon |
1 | 1 | 复位(RESET)中断 | 1 |
1 | - | 未定义指令(UNDEF)异常 | 6 |
1 | - | 软中断(SWI) | 6 |
1 | - | 预取指令中止(PABT)异常 | 5 |
1 | - | 数据中止(DABT)异常 | 2 |
1 | - | 中断(IRQ) | 4 |
1 | 1 | 快中断(FIQ) | 3 |
复位(RESET) | 管理模式(SVC) |
未定义指令(UNDEF) | 未定义指令中止模式(UND) |
软中断(SWI) | 管理模式(SVC) |
预取指令中止(PABT) | 中止模式(ABT) |
复位(RESET) | - | - |
未定义指令(UNDEF) | LR | 指向未定义指令的下一条指令 |
软中断(SWI) | LR | 指向SWI指令的下一条指令 |
预取指令中止(PABT) | LR-4 | 指向导致预取指令中止 异常的那条指令 |
数据中止(DABT) | LR-8 | 指向导致数据中止异常 的那条指令 |
中断(IRQ) | LR-4 | IRQ处理程序的返回地址 |
快中断(FIQ) | LR-4 | FIQ处理程序的返回地址 |
f | [31:24] | 条件标志域 |
s | [23:16] | 状态位域 |
x | [15:8] | 扩展位域 |
c | [7:0] | 控制位域 |
IA | 先传送数据,后基地址加4 | (Rd) |
IB | 先基地址加4,后传送数据 | (Rd)+4 |
DA | 先传送数据,后基地址减4 | (Rd) |
DB | 先基地址减4,后传送数据 | (Rd)-4 |
指令集 | 仅限于ARM | ARM和Thumb |
ARM汇编程序命令 | 不支持 | 支持 |
C表达式 | 支持 | 仅支持常量表达式 |
优化代码 | 支持 | 不支持 |
内联 | 可能 | 从不 |
寄存器访问 | 不使用物理寄存器 | 使用物理寄存器 |
返回指令 | 自动生成 | 显示编写 |
BWSCON | 0X48000000 | 总线宽度和等待控制 |
BANKCON0 | 0X48000004 | ROM控制 |
BANKCON1 | 0X48000008 | BANK1控制 |
BANKCON2 | 0X4800000C | BANK2控制 |
BANKCON3 | 0X48000010 | BANK3控制 |
BANKCON4 | 0X48000014 | BANK4控制 |
BANKCON5 | 0X48000018 | BANK5控制 |
BANKCON6 | 0X4800001C | BANK6控制 |
BANKCON7 | 0X48000020 | BANK7控制 |
REFRESH | 0X48000024 | DRAM/SDRAM刷新控制 |
BANKSIZE | 0X48000028 | 存储器大小 |
MRSRB6 | 0X4800002C | SDRAM的模式设置寄存器 |
MRSRB7 | 0X48000030 | SDRAM的模式设置寄存器 |
0 | 0 | Nand Flash Mode |
0 | 1 | 16位 |
1 | 0 | 32位 |
1 | 1 | 测试模式 |
A0 | A0 | A1 | A2 |
A1 | A1 | A2 | A3 |
00 | on | on | 晶振 | 晶振 |
01 | on | on | 晶振 | 外部时钟 |
10 | on | on | 外部时钟 | 晶振 |
11 | on | on | 外部时钟 | 外部时钟 |
GSTATUS0 | 0X560000AC | R | 外部引脚状态 | 不确定 |
GSTATUS1 | 0X560000B0 | R | 芯片ID | 0x32440001 |
GSTATUS2 | 0X560000B4 | R/W | 复位状态 | 0X1 |
GSTATUS3 | 0X560000B8 | R/W | 通知寄存器 | 0X0 |
GSTATUS4 | 0X560000BC | R/W | 通知寄存器 | 0X0 |
nWAIT | [3] | nWAIT引脚状态 |
NCON | [2] | NCON引脚状态 |
RnB | [1] | RnB引脚状态 |
BATT_FLT | [0] | BATT_FLT引脚状态 |
CHIPID | [31:0] | ID寄存器=0x32440001 |
更多回帖