嵌入式,ARM扫盲

 炮制了一篇,基本是拿来主义,不算技术,只能算杂谈。

主要来源是脑中的记忆和《主流ARM嵌入式系统设计技术与实例精解》,欢迎指正。


*******************************************************************************
关于嵌入式
*******************************************************************************

嵌入式应用的特点:功能特定,规模灵活,实时稳定
类别:MCU, MPU, DSP, SoC
硬件:核心 + 外围接口
软件:Bootloader, Kernel & Driver, File System & Application

Bootloader是嵌入式系统的启动代码,主要用来初始化处理器、传递内核启动参数给内核,
使得内核可以按照传递的参数启动。通常还具有搬运内核代码到RAM并跳转到内核代码地址
执行的功能。
内核主要进行进程管理、进程间通信和同步、内存管理和IO资源管理。
驱动,一般作为内核的一部分,主要给上层应用程序提供通过处理器外设接口控制器和外
设进行通信的媒介。

嵌入式OS: Windows CE, Linux, Plam OS, Symbian OS, VxWorks, uCOS, pSOS,
    Nucleus, EPOC等

RSIC的典型特点:所有指令宽度相同,所有指令都单周期执行(许多实现并不严格尊从,
比如ARM处理器),指令流水线

*******************************************************************************
关于ARM
*******************************************************************************
ARM处理器系列
    ARM7, ARM9, ARM9E, ARM10E, SecurCore, ARM11

ARM内核功能模块:
    T(Thumb,支持Thumb指令)
    D(Debug,JTAG,可使CPU进入调试模式,从而设置断点,进行单步调试)
    I(Embedded ICE,实现断点和变量观测的逻辑电路部分,包括TAP控制器)
    M(Multiplier,8位乘法器)
    E(DSP Enhancement,提供某些DSP指令)
    J(Jazelle DBX,Java加速模块,甚至可以直接执行某些JAVA指令)
    S(softcore,可综合的软核)

ARM处理器工作模式
    共支持7种工作模式,具体取决于体系结构的版本,模式对应了异常向量表。
    +----------+----------+--------------------+
    | 普通模式  |          | 用户模式            |
    +----------+ 正常模式  +--------------------+
    |          |          | 系统模式            |
    |          |----------+--------------------+
    |          |          | 快速中断模式        |
    |          |          +--------------------+
    |          |          | 外部中断模式        |
    | 特权模式  | 异常模式  +--------------------+
    |          |          | 特权模式            |
    |          |          +--------------------+
    |          |          | 数据访问中止模式     |
    |          |          +--------------------+
    |          |          | 未定义指令中止模式   |
    +----------+----------+--------------------+

注: 此处正常模式和普通模式是我生造的术语,没有确定是否存在,各位请暂且忽略。

ARM异常处理过程
    ARM的异常,包括复位、未定义指令、软件中断、数据访问中止、外部中断请求、快
    速中断请求。
    处理过程:
        1) 保存现场,包括处理器当前状态、中断屏蔽位、CPSR寄存器的各条件标志位(
    复制到SPSR)
    2) 设置CPSR中相应的位
    3) 将R14寄存器设置成返回地址,最后将PC设置成该异常的异常向量地址,执行
    异常处理。
    4) 由异常返回,先恢复处理器状态(SPSR->CPSR),然后返回到发生异常中断
    指令的下一条指令处执行,通过将对应模式下连接寄存器R14中的值装载到PC
   
ARM寄存器
    ARM共有37个寄存器,其中31个通用寄存器和6个状态寄存器,都是32位寄存器,但状
    态寄存器只使用了其中的12位。
    ARM处理器中当前可见的寄存器组和处理器当前工作模式是有关。每种模式都有一组
    对应的寄存器组,各寄存器组中任意时刻可见的寄存器包括程序计数器,15个通用寄
    存器(R0-R14)以及一个或两个状态寄存器
    通用寄存器分三类:
        未备份寄存器R0-R7,所有处理器模式下都只同一个物理寄存器。
    备份寄存器R8-R14
        R8-R12每个有两个不同的物理寄存器
        R13,R14每个六个不同的物理寄存器,系统模式和用户模式共用一个
        R13通常叫做堆栈指针
        R14通常被称为连接寄存器(LR)
    程序计数器PC:PC值为当前指令地址加8字节,即当前指令的下两条指令的地址。
        由于ARM每条指令都是32字节长度,所以是字对齐的,即PC低两位为0。
    程序状态寄存器
        CPSR(当前程序状态寄存器),任何模式都可访问。
    SPSR(备份程序状态寄存器),各模式专有

ARM的存储系统
    ARM为单地址空间,大小为2^32个8位字节,。ARM是大小端可配置的,默认为小端。
    快速上下文切换技术(FCSE)通过修改系统中不同进程的虚拟地址,避免在进程间切
    换时造成的虚拟地址到物理地址的重映射,从而提高了性能。通常FCSE位于CPU和MMU
    之间。

ARM最小系统
    通常包括Boot选择,电源,复位,时钟,存储器,JTAG接口等电路部分,通常把最小
    系统做成多层核心板(先调稳定了),把外围接口板设计成双层板,然后将这两个系
    统用一个接口连接起来。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章