嵌入式,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接口等電路部分,通常把最小
    系統做成多層核心板(先調穩定了),把外圍接口板設計成雙層板,然後將這兩個系
    統用一個接口連接起來。

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