嵌入式,ARM掃盲

來源:互聯網
上載者:User

 炮製了一篇,基本是拿來主義,不算技術,只能算雜談。

主要來源是腦中的記憶和《主流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介面等電路部分,通常把最小
    系統做成多層核心板(先調穩定了),把外圍介面板設計成雙層板,然後將這兩個系
    統用一個介面串連起來。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.