網絡消費網 >  5G > > 正文
        arm的協處理器有幾個?ARM協處理器詳解
        時間:2021-12-08 10:22:05

        ARM概述

        本文引用地址:http://www.eepw.com.cn/article/201804/379160.htm

        ARM處理器是英國Acorn有限公司設計的低功耗成本的第一款RISC微處理器。全稱為Advanced RISC Machine。ARM處理器本身是32位設計,但也配備16位指令集,一般來講比等價32位代碼節省達35%,卻能保留32位系統的所有優勢。

        ARM的Jazelle技術使Java加速得到比基于軟件的Java虛擬機(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。CPU功能上增加DSP指令集提供增強的16位和32位算術運算能力,提高了性能和靈活性。ARM還提供兩個前沿特性來輔助帶深嵌入處理器的高集成SoC器件的調試,它們是嵌入式ICE-RT邏輯和嵌入式跟蹤宏核(ETMS)系列。

        ARM處理器特點

        1、體積小、低功耗、低成本、高性能;

        2、支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;

        3、大量使用寄存器,指令執行速度更快;

        4、大多數數據操作都在寄存器中完成;

        5、尋址方式靈活簡單,執行效率高;

        6、指令長度固定。

        ARM主要模式

        處理器工作模式 說明

        用戶模式(usr) ARM處理器正常的程序執行狀態

        系統模式(sys) 運行具有特權的操作系統任務

        快中斷模式(fiq) 支持高速數據傳輸或通道處理

        管理模式(svc) 操作系統保護模式

        數據訪問終止模式(abt) 用于虛擬存儲器及存儲器保護

        中斷模式(irq) 用于通用的中斷處理

        未定義指令終止模式(und) 支持硬件協處理器的軟件仿真

        除用戶模式外,其余6種模式稱為非用戶模式或特權模式;用戶模式和系統模式之外的5種模式稱為異常模式。ARM處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。

        arm的協處理器有幾個

        ARM可支持多達16個協處理器,主要的作用:ARM處理器初始化,ARM與協處理器的數據處理操作,ARM的寄存器與協處理器的寄存器之間傳送數據,以及ARM協處理器的寄存器和存儲器之間傳送數據。共有5條:

        -CDP協處理器數據操作指令

        -LDC協處理器數據加載指令

        -STC協處理器數據存儲指令

        -MCRARM的寄存器到協處理器的寄存器的數據傳送

        -MRC協處理器的寄存器到ARM的寄存器的數據傳送

        1、CDP指令

        CDP指令的格式為:

        CDP{條件}協處理器編碼,協處理器操作碼1,目的寄存器,源寄存器1,源寄存器2,協處理器操作碼2。

        CDP指令用于ARM處理器通知ARM協處理器執行特定的操作,若協處理器不能成功完成特定的操作,則產生未定義指令異常。其中協處理器操作碼1和協處理器操作碼2為協處理器將要執行的操作,目的寄存器和源寄存器均為協處理器的寄存器,指令不涉及ARM處理器的寄存器和存儲器。

        指令示例:

        CDPP3,2,C12,C10,C3,4;該指令完成協處理器P3的初始化

        2、LDC指令

        LDC指令的格式為:

        LDC{條件}{L}協處理器編碼,目的寄存器,[源寄存器]

        LDC指令用于將源寄存器所指向的存儲器中的字數據傳送到目的寄存器中,若協處理器不能成功完成傳送操作,則產生未定義指令異常。其中,{L}選項表示指令為長讀取操作,如用于雙精度數據的傳輸。

        指令示例:

        LDCP3,C4,[R0];將ARM處理器的寄存器R0所指向的存儲器中的字數據傳送到協處理器P3的寄存器C4中。

        3、STC指令

        STC指令的格式為:

        STC{條件}{L}協處理器編碼,源寄存器,[目的寄存器]

        STC指令用于將源寄存器中的字數據傳送到目的寄存器所指向的存儲器中,若協處理器不能成功完成傳送操作,則產生未定義指令異常。其中,{L}選項表示指令為長讀取操作,如用于雙精度數據的傳輸。

        指令示例:

        STCP3,C4,[R0];將協處理器P3的寄存器C4中的字數據傳送到ARM處理器的寄存器R0所指向的存儲器中。

        4、MCR指令

        MCR指令的格式為:

        MCR{條件}協處理器編碼,協處理器操作碼1,源寄存器,目的寄存器1,目的寄存器2,協處理器操作碼2。

        MCR指令用于將ARM處理器寄存器中的數據傳送到協處理器寄存器中,若協處理器不能成功完成操作,則產生未定義指令異常。其中協處理器操作碼1和協處理器操作碼2為協處理器將要執行的操作,源寄存器為ARM處理器的寄存器,目的寄存器1和目的寄存器2均為協處理器的寄存器。

        指令示例:

        MCRP3,3,R0,C4,C5,6;該指令將ARM處理器寄存器R0中的數據傳送到協處理器P3的寄存器C4和C5中。

        5、MRC指令

        MRC指令的格式為:

        MRC{條件}協處理器編碼,協處理器操作碼1,目的寄存器,源寄存器1,源寄存器2,協處理器操作碼2。

        MRC指令用于將協處理器寄存器中的數據傳送到ARM處理器寄存器中,若協處理器不能成功完成操作,則產生未定義指令異常。其中協處理器操作碼1和協處理器操作碼2為協處理器將要執行的操作,目的寄存器為ARM處理器的寄存器,源寄存器1和源寄存器2均為協處理器的寄存器。

        指令示例:

        MRCP3,3,R0,C4,C5,6;該指令將協處理器P3的寄存器中的數據傳送到ARM處理器寄存器中.

        CP14調試通信通道協處理器

        調試通信通道協處理器DCC(the Debug CommunicaTIonsChannel)提供了兩個32bits寄存器用于傳送數據,還提供了6bits通信數據控制寄存器控制寄存器中的兩個位提供目標和主機調試器之間的同步握手。

        此控制寄存器中的兩個位提供目標和主機調試器之間的同步握手:

        位 1(W 位) 從目標的角度表示通信數據寫入寄存器是否空閑:

        W = 0 目標應用程序可以寫入新數據。

        W = 1 主機調試器可以從寫入寄存器中掃描出新數據。

        位 0(R 位) 從目標的角度表示通信數據讀取寄存器中是否有新數據:

        R = 1 有新數據,目標應用程序可以讀取。

        R = 0 主機調試器可以將新數據掃描到讀取寄存器中。

        注意:

        調試器不能利用協處理器 14 直接訪問調試通信通道,因為這對調試器無意義。但調試器可使用掃描鏈讀寫 DCC 寄存器。 DCC 數據和控制寄存器可映射到 EmbeddedICE 邏輯單元中的地址。 若要查看EmbeddedICE 邏輯寄存器,請參閱您的調試器和調試目標的相關文檔。

        通信數據讀取寄存器

        用于接收來自調試器的數據的 32 位寬寄存器。 以下指令在 Rd 中返

        回讀取寄存器的值:

        MRC p14, 0, Rd, c1, c0

        通信數據寫入寄存器

        用于向調試器發送數據的 32 位寬寄存器。 以下指令將 Rn 中的值寫

        到寫入寄存器中:

        MCR p14, 0, Rn, c1, c0

        注意

        有關訪問 ARM10 和 ARM11 內核 DCC寄存器的信息,請參閱相應的技術參考手冊。 ARM9 之后的各處理器中,所用指令、狀態位位置以及對狀態位的解釋都有所不同。

        目標到調試器的通信

        這是運行于 ARM內核上的應用程序與運行于主機上的調試器之間的通信事件順序:

        1. 目標應用程序檢查 DCC 寫入寄存器是否空閑可用。為此,目標應用程序使用 MRC 指令讀取調試通信通道控制寄存器,以檢查 W 位是否已清除。

        2. 如果 W 位已清除,則通信數據寫入寄存器已清空,應用程序對協處理器14,使用 MCR 指令將字寫入通信數據寫入寄存器。 寫入寄存器操作會自動設置W 位。如果 W位已設置,則表明調試器尚未清空通信數據寫入寄存器。此時,如果應用程序需要發送另一個字,它必須輪詢 W 位,直到它已清除。

        3. 調試器通過掃描鏈 2 輪詢通信數據控制寄存器。 如果調試器發現 W位已設置,則它可以讀 DCC 數據寄存器,以讀取應用程序發送的信息。 讀取數據的進程會自動清除通信數據控制寄存器中的 W 位。

        以下代碼顯示了這一過程

        AREA OutChannel, CODE,READONLY

        ENTRY

        MOV r1,#3 ; Number of words to send

        ADR r2, outdata ; Address ofdata to send

        pollout

        MRC p14,0,r0,c0,c0 ; Read controlregister

        TST r0, #2

        BNE pollout ; if W set, register sTIllfull

        write

        LDR r3,[r2],#4 ; Read word fromoutdata

        ; into r3 and update the pointer

        MCR p14,0,r3,c1,c0 ; Write word fromr3

        SUBS r1,r1,#1 ; Update counter

        BNE pollout ; Loop if more words to bewritten

        MOV r0, #0x18 ;Angel_SWIreason_ReportExcepTIon

        LDR r1, =0x20026 ;ADP_Stopped_ApplicaTIonExit

        SVC 0x123456 ; ARM semihosting(formerly SWI)

        outdata

        DCB “Hello there!”

        END

        調試器到目標的通信

        關鍵詞: ARM 協處理器

        版權聲明:
            凡注明來網絡消費網的作品,版權均屬網絡消費網所有,未經授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明"來源:網絡消費網"。違反上述聲明者,本網將追究其相關法律責任。
            除來源署名為網絡消費網稿件外,其他所轉載內容之原創性、真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考并自行核實。
        熱文

        網站首頁 |網站簡介 | 關于我們 | 廣告業務 | 投稿信箱
         

        Copyright © 2000-2020 www.fnsyft.com All Rights Reserved.
         

        中國網絡消費網 版權所有 未經書面授權 不得復制或建立鏡像
         

        聯系郵箱:920 891 263@qq.com

        備案號:京ICP備2022016840號-15

        營業執照公示信息

        中文字幕亚洲免费无线观看日本| 亚洲好看的理论片电影| 亚洲色欲色欲综合网站| 综合亚洲伊人午夜网 | 亚洲人成7777| 91亚洲国产成人久久精品网站| 在线亚洲精品自拍| 国产亚洲色视频在线| 亚洲一区日韩高清中文字幕亚洲 | 亚洲A∨无码无在线观看| 亚洲AV无码成人精品区在线观看 | 亚洲韩国精品无码一区二区三区 | 亚洲日产乱码一二三区别| 亚洲中文精品久久久久久不卡| 亚洲成人激情小说| 亚洲欧美黑人猛交群| 亚洲av无码专区首页| 国产偷国产偷亚洲高清人| 亚洲M码 欧洲S码SSS222| 亚洲国产成人无码av在线播放| 亚洲成人午夜电影| 亚洲一区二区三区高清视频| 国产成人精品日本亚洲直接| 亚洲日韩一区二区一无码| 亚洲av成人片在线观看| 亚洲AV网站在线观看| 久久久亚洲精品蜜桃臀| mm1313亚洲精品无码又大又粗| 亚洲国产成人久久一区WWW| 国产亚洲午夜高清国产拍精品| 亚洲乱码国产一区三区| 亚洲av色福利天堂| 亚洲视频在线观看网站| 久久狠狠爱亚洲综合影院| 亚洲另类无码一区二区三区| 亚洲第一成人影院| 亚洲精品~无码抽插| 亚洲欧洲自拍拍偷综合| 亚洲日本久久久午夜精品| 理论亚洲区美一区二区三区| 久久精品国产亚洲Aⅴ蜜臀色欲|