arm体系结构编程-入门介绍

1 基本概念

RISC,精简指令集 arm
CISC,复杂指令集 intel

指令集 架构 SOC
armv4t ARM7 S3C44B0 之前都是三级流水线
ARMV5TE ARM9 s3c2410/s3c2440
ARMV6 ARM11 s3c6410
ARMV7 cortex-A s5pv210
R系列
M系列
ARMV8 A53 s5p6818

cortex-A: 高大尚领域 多媒体数据的处理
cortex-R: 高实时领域
cortex-M: 以单片机的价格实现32bit运算能力 stm32
老产品的升级改造,全新产品的研发

三级流水线:取指令 解码指令 执行指令

arm7 ,三级流水线
arm9, 五级流水线

2 ARM编程模型

2.1 工作模式

  SVC(管理模式)  系统上电/执行了软中断指令
  FIQ(快速中断模式) 发生了高优先级中断
  IRQ(中断模式)  发生了低优先级中断
  ABORT(中止模式) 产生了非法的存储器访问
  UNDEF(未定义模式) 执行到不认识的指令
  SYSTEM(系统模式)
  USER(用户模式) 对应了用户态
  
  前5种称作异常工作模式
  前6种称作特权工作模式

2.2 工作状态

有2种工作状态
arm状态: 执行arm(32bit)指令时,每条指令32bit位
可通过反汇编获得汇编代码:arm-cortex_a9-linux-gnueabi-objdump -S shell >1.asm
可以看到arm指令4字节
thumb状态:执行thumb(16bit)指令时,thumb指令占据存储空间小,但是代码执行效率低 。
可以看到thumb指令2字节

arm工作状态和thumb工作状态可以相互切换,但是异常处理过程必须处于ARM工作状态 ,因为异常处理有时序要求,必须快速处理
arm指令代码执行效率高(指令占用空间大,效率高,空间换时间)

2.3 寄存器组织结构

2.3.1 和特殊功能寄存器的区别

arm寄存器与我们常说的特殊功能寄存器不同
1)所在的位置不同
寄存器位于ARM core中
特殊功能寄存器位于s5p6818
2) 访问方式不同
特殊功能寄存器都有特定的物理地址
寄存器只有名字没有地址 很难用C语言访问的
3)作用不同
特殊功能寄存器是软件控制硬件的媒介
寄存器…

2.3.2 arm寄存器个数

arm中有37个32bit的寄存器,其中有31个通用寄存器 r0 r1 r2 …r15(有重名的)
其中有31个通用寄存器 r0 r1 r2 …r15(有重名的)

            r11(fp .....)  
            r13(sp 栈指针寄存器,c语言中常说的栈)
            r14(lr 保存函数的返回地址)
            r15(pc 保存取指令的地址)  
              
          有6个状态寄存器
            1个程序状态寄存器 cpsr
               [4:0] mode 当前arm处于哪种工作模式
               [5]   T   =1,处于THUMB工作状态
                         =0,处于ARM工作状态
               [6]   F   =1, 屏蔽FIQ
                         =0,使能FIQ
               [7]   I   =1, 屏蔽IRQ
                         =0,使能IRQ
               [28]  V   overflow, 带符号数据运算最高位是否溢出(忽略)
               [29]  C   carry    =1, 最高位有进位
                                      0xfffffffc + 8   C会被置1
                                      0xfc + 8    C=0 
               
               [30]  Z   zero     =1, 运算结果为0
                                  =0,运算结果为非0
               [31]  N   negative =1, 运算结果为负数
                                  =0,运算结果非负
               
            5个状态寄存器 spsr,作为cpsr的备份寄存器 
       每种工作模式下只能访问其中一个子集                       

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值