ARM体系架构--基础篇

基础知识的介绍:
1, 学习层面: 硬件+driver
2,  冯.诺依曼体系: 基本上大部分pc(科研或许不同)都是使用这种

特点: 

a,采用二进制(机器码),数据和程序采用二进制表示

     b,必须事先存储程序 
      c,PC指针驱动代码执行,指向一个地址,指令流驱动程序执行
      d,五大部件: 运算器+控制器+存储器+输入设备+输出设备
3,CPU = CU + ALU
CPU: 解释并执行指令的功能部件
CU : 从内存中取指令和数据,译码并发出各种控制信号
ALU: 逻辑运算器

4,嵌入式系统的硬件系统
    电源:基本都是用电设备,12v 1.25A-->3.3v / 5v,电源的稳定性对系统的影响是很大的
    时钟系统:时序电路,什么时候做什么事情--》12M--》667MH
    复位电路:系统处于一个确定状态
    调试接口:基于JTAG接口,产品是没有调试接口,主要是用于开发
    存储器:一般分为片内和片外存储器

5,cpu中的接口:(画出cpu中arm core与控制器,外围电路的框图)
  a, 抗干扰,增加驱动能力
  b,实现控制电路
  c,s5pv210的接口
6,三总线:armcore如何与外围设备进行通信和连接
CB :控制总线
DB :数据总线
AB :发地址去读数据
以上总线由时序来控制,不是同一时间,三根总线同时发数据
-------------------------------------
|            |             |
cpu          I/O  memory
总线很多:高速总线,低速总线,外部,内部
7,存储器分类:
ram: sram : 快一点,成本高点,作为片内
      sdram : 动态,电荷需要刷新,类似于电视,作为外部内存条使用,比如ddr2, EDO 
rom:非易失性
    EPROM, EEPROM(可以擦除,但是需要特殊工具才能擦除)
    bios芯片
flash:norflash: 或非电路,intel公司先发明
         nandflash  与非电路, 89年,东芝发明
 
存储器的层次结构:core<-寄存器<-cache<--片内内存<--flash


arm的数据和指令的类型:
1, 数据和指令的形式: 二进制
2,数据和指令的长度: 64, 32, 16, 8bit(数据)32bit(arm态的指令) + 16bit(thumb态的指令)
3, 数据的存储方式: 字节序列
4, 数据读写和存储对齐(地址):字节对齐(地址为1的倍数), 半字对齐(地址为2的倍数),字对齐(地址为4的倍数)

arm的7种工作模式:
1, usr: 在访问资源的时候会有权限的限制: 如果是运行linux 应用程序,cpu就处于这个模式
2, system: 和usr模式类似,但是有特权
3, Supervisor: 管理者模式, 在上电复位阶段/ 软中断(swi)
4, Abort: 数据存储异常, 访问了非法地址
5, Undef : 未定义指令异常, 执行arm不能识别的指令, x86可执行程序运行在arm的cpu
6, FIQ/IRQ: 中断异常, 外部/内部的电平发生变化后打断了cpu的正常工作


寄存器:
r0-r12 : 所有模式都共用, 只有FIQ模式下有私有的寄存器: r8-r12
r13(sp)-r14(lr) : 每个模式下都是私有
r15(pc) : 只有一个
cpsr(当前状态寄存器): 只有一个
spsr(模式切换的时候用于保存cpsr): 各个模式下有一个


cpsr:  fsxc: flag, system, extend, control
关注: flag: N: 负数位
      Z: 零标志位: 1, 运算指令的结果为0  , 0: 运算指令的结果为非0 
control:  I : IRQ禁止位:  1: 禁止  0: 打开
  F :  FIQ禁止位:  1: 禁止  0: 打开
 T : thumb态指令(16bit)  1: thum态 0: arm态
  mode[4:0]: 模式位
User                  0b10000 
FIQ 快速中断请求模式  0b10001 
IRQ 中断请求模式      0b10010 
Supervisor     0b10011 
Abort                 0b10111 
Undefined     0b11011 
System                0b11111 
Monitor Security Extensions  0b10110 

流水线:
cpu执行代码的时候:
fetch取指令-->译码decode->执行
打饭->点菜->买单
pc的值等于取指位置

最佳流水线:
没有访存,中断,跳转(可控)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旗浩QH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值