s5pv210开发板学习笔记(1)

s5pv210开发板支持的启动模式:

  • OneNand Boot(Mux/Demux)

  • Nand Boot (with H/W 8/16-Bit ECC)

  • MMC Boot (MMC Specification 4.3 compatible including eMMC)

  • eSSD Boot

  • UART/USB Boot

  • Secure boot mode support

  • Second boot support 当第一次引导模式失败时,将通过4位数据的SD/MMC通道2尝试SD/MMC引导。

Soc如何识别外部的启动介质呢?

通过OMpin来识别外部传输介质,通过将OM[0]~OM[5]六个引脚的拨码开关拨到如下表所示的一种组合,即左侧的OM[5]~OM[0]的组合,可以唯一对应一种启动方式。1'b0代表GND,1'b1代表VCC。

s5pv210开发板学习笔记(1)_第1张图片

示例:从SD0的emmc启动,则拨码开关的组合如下,对应于上表中的I-ROM->SD/MMC->X-TAL(USB)。

s5pv210开发板学习笔记(1)_第2张图片

ARM处理器工作模式:

  • User:非特权模式,大部分任务执行在这种模式

  • FIQ:当一个高优先级(fast)中断产生时将会进入这种模式

  • IRQ:当一个低优先级(normal)中断产生时将会进入这种模式

  • Supervisor:当复位或软中断指令执行时将会进入这种模式

  • Abort:当存取异常时将会进入这种模式

  • Undef:当执行未定义指令时会进入这种模式

  • System:使用和User模式相同寄存器集的特权模式

  1. 只有User(用户模式)是Normal(普通模式)

  1. Privilege中除Sys模式外,其余5种为异常模式。

  1. 各种模式的切换:可以是程序员通过代码主动切换(通过写CPSR寄存器);也可以是CPU在某些情况下自动切换。

  1. 各种模式下权限和可以访问的寄存器不同。

ARM的37个寄存器:

  1. ARM总共有37个寄存器,但是每种模式下最多只能看到18个寄存器,其他寄存器虽然名字相同但是在当前模式下不可见

  1. 对r14这个名字来说,在ARM中共有6个名叫r14(又叫sp)的寄存器,但是在每种特定处理器模式下,只有1个r14是当前可见的,其他的r14必须切换到他的对应模式下才能看到。这种设计叫影子寄存器(banked register)。

s5pv210开发板学习笔记(1)_第3张图片
s5pv210开发板学习笔记(1)_第4张图片

注意:System模式使用user模式寄存器集

为什么r13(sp)和r14(lr)每个模式下都有?
  1. sp为堆栈指针,在函数切换和上下文切换中使用,可以理解为程序的工作区,每种模式下的工作区应该分开,防止当一个模式下的工作区出问题崩溃的时候影响到其余的工作区。

  1. lr是用于存储每种模式下的返回地址的,比如从user模式切换到irq模式时,把user模式下的返回地址存到lr中,irq返回user模式就可以直接bl lr。

CPSR程序状态寄存器:
  • 条件位:

– N = Negativeresult from ALU 符号标志位

– Z = Zeroresult from ALU 零标志位

– C =ALU operation Carriedout 进位标志位

– V =ALU operation oVerflowed 溢出标志位

  • Q位:

– 仅ARM5TE/J架构支持

– 指示饱和状态

  • J位

– 仅ARM5TE/J架构支持

  • 中断禁止位:

– I = 1: 禁止 IRQ.

– F = 1: 禁止 FIQ.

  • TBit

– 仅ARM xT架构支持

– T = 0: 处理器处于 ARM 状态

– T = 1: 处理器处于 Thumb状态

  • Mode位:

– 处理器模式位

异常:

  • 正常工作之外的流程都叫异常

  • 异常会打断正在执行的工作,并且一般我们希望异常处理完成后继续回来执行原来的工作

  • 中断是异常的一种

  • 7种工作模式中,User(用户态)和System(系统态)是正常模式,可以理解为用户态就是用户程序在执行,系统态就是系统在执行操作系统内核执行的那些事情,其余5种为异常态。

异常向量表:
  • 所有的CPU都有异常向量表,这是CPU设计时就设定了的,是硬件决定的。

  • 当异常发生时,CPU会自动动作。

  • 异常向量表是硬件向软件提供的处理异常的支持。

注:这个向量表是CPU设计时提供的异常向量表,称为1级向量表,有些为了支持多个中断,还会提供二级中断向量表。

s5pv210开发板学习笔记(1)_第5张图片
ARM的异常处理机制:
  1. 拷贝 CPSR 到 SPSR_

  1. 设置适当的 CPSR 位:

  • 改变处理器状态进入 ARM 态(非Thumb态)

  • 改变处理器模式进入相应的异常模式

  • 设置中断禁止位禁止相应中断 (如果需要),由硬件自动执行,不需要程序员参与。

  1. 保存返回地址到 LR_

  1. 设置 PC 为相应的异常向量

  • 返回时,异常处理需要:

  1. 从 SPSR_恢复CPSR(这一步恢复了处理器状态)

  1. 从LR_恢复PC

– Note:这些操作只能在ARM 态执行。

你可能感兴趣的:(嵌入式硬件)