娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年09月01日(星期日)

正在發生

2020年09月01日 | arm的協處理器有幾個?ARM協處理器詳解

發布者:SparklingRiver 來源: elecfans關鍵字:arm  協處理器  微處理器 手機看文章 掃描二維碼
隨時隨地手機看文章

  ARM概述

  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的協處理器有幾個?ARM協處理器詳解

  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


  調試器到目標的通信

  這是運行于主機上的調試器向運行于內核上的應用程序傳輸消息的事件順序:

  1. 調試器輪詢通信數據控制寄存器的 R 位。 如果 R位已清除,則通信數據讀取寄存器已清空,可將數據寫入此寄存器,以供目標應用程序讀取。

  2. 調試器通過掃描鏈 2 將數據掃描到通信數據讀取寄存器中。此操作會自動設置通信數據控制寄存器中的 R 位。

  3. 目標應用程序輪詢通信數據控制寄存器中的 R 位。如果該位已經設置,則通信數據讀取寄存器中已經有數據,應用程序可使用 MRC 指令從協處理器14 讀取該數據。 同時,讀取指令還會清除R 位。


  以下顯示的目標應用程序代碼演示了這一過程

  AREA InChannel, CODE,READONLY

  ENTRY

  MOV r1,#3 ; Number of words to read

  LDR r2, =indata ; Address to storedata read

  pollin

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

  TST r0, #1

  BEQ pollin ; If R bit clear thenloop

  read

  MRC p14,0,r3,c1,c0 ; read word intor3

  STR r3,[r2],#4 ; Store to memoryand

  ; update pointer

  SUBS r1,r1,#1 ; Update counter

  BNE pollin ; Loop if more words toread

  MOV r0, #0x18 ;Angel_SWIreason_ReportException

  LDR r1, =0x20026 ;ADP_Stopped_ApplicationExit

  SVC 0x123456 ; ARM semihosting(formerly SWI)

  AREA Storage, DATA,READWRITE

  indata

  DCB “Duffmessage#”

  END

arm的協處理器有幾個?ARM協處理器詳解

  CP15系統控制協處理器

  CP15 —系統控制協處理器 (the system control coprocessor)他通過協處理器指令MCR和MRC提供具體的寄存器來配置和控制caches、MMU、保護系統、配置時鐘模式(在bootloader時鐘初始化用到)

  CP15的寄存器只能被MRC和MCR(Move to Coprocessor from ARM Register )指令訪問

  MCR{cond} p15,,,,,

  MRC{cond} p15,,,,,

  其中L位用來區分MCR(L=1)和MRC(L=0)操作。 CP15包括15個具體的寄存器如下

  -R0:ID號寄存器

  -R0:緩存類型寄存器

  -R1:控制寄存器

  -R2:轉換表基址寄存器(Translation Table Base --TTB)

  -R3:域訪問控制寄存器(Domain access control )

  -R4:保留

  -R5:異常狀態寄存器(fault status -FSR)

  -R6:異常地址寄存器(fault address -FAR)

  -R7:緩存操作寄存器

  -R8:TLB操作寄存器

  -R9:緩存鎖定寄存器

  -R10:TLB 鎖定寄存器

  -R11-12&14:保留

  -R13:處理器ID

  -R15:測試配置寄存器 2-24

  要注意有2個R0,根據MCR操作數的不同傳送不同的值,這也一個只讀寄存器

  -R0:ID號寄存器 這是一個只讀寄存器,返回一個32位的設備ID號,具體功能參考ARM各個系列型號的的CP15 Register 0說明。

  MRC p15, 0, , c0, c0, {0, 3-7} ;returns ID

  以下為CP15的一些應用示例

  U32 ARM_CP15_DeviceIDRead(void)

  {

  U32 id;

  __asm { MRC P15, 0, id, c0, c0; }

  return id;

  }

  void ARM_CP15_SetPageTableBase(P_U32 TableAddress)

  {

  __asm { MCR P15, 0, TableAddress, c2, c0, 0; }

  }

  void ARM_CP15_SetDomainAccessControl(U32 flags)

  {

  __asm { MCR P15, 0, flags, c3, c0, 0; }

  }

  void ARM_CP15_ICacheFlush()

  {

  unsigned long dummy;

  __asm { MCR p15, 0, dummy, c7, c5, 0; }

  }

  void ARM_CP15_DCacheFlush()

  {

  unsigned long dummy;

  __asm { MCR p15, 0, dummy, c7, c6, 0; }

  }

  void ARM_CP15_CacheFlush()

  {

  unsigned long dummy;

  __asm { MCR p15, 0, dummy, c7, c7, 0; }

  }

  void ARM_CP15_TLBFlush(void)

  {

  unsigned long dummy;

  __asm { MCR P15, 0, dummy, c8, c7, 0; }

  }

  void ARM_CP15_ControlRegisterWrite(U32 flags)

  {

  __asm { MCR P15, 0, flags, c1, c0; }

  }

  void ARM_CP15_ControlRegisterOR(U32 flag)

  {

  __asm {

  mrc p15,0,r0,c1,c0,0

  mov r2,flag

  orr r0,r2,r0

  mcr p15,0,r0,c1,c0,0

  }

  }

  void ARM_CP15_ControlRegisterAND(U32 flag)

  {

  __asm {

  mrc p15,0,r0,c1,c0,0

  mov r2,flag

  and r0,r2,r0

  mcr p15,0,r0,c1,c0,0

  }

  }

  void ARM_MMU_Init(P_U32 TableAddress)

  {

  ARM_CP15_TLBFlush();

  ARM_CP15_CacheFlush();

  ARM_CP15_SetDomainAccessControl(0xFFFFFFFF);

  ARM_CP15_SetPageTableBase(TableAddress);

  }

  void Enable_MMU (void)

  {

  __asm {

  mrc p15,0,r0,c1,c0,0

  mov r2, #0x00000001

  orr r0,r2,r0

  mcr p15,0,r0,c1,c0,0

  }

  printf(“MMU enabledn”);

  }

  void Disable_MMU (void)

  {

  __asm {

  mrc p15,0,r0,c1,c0,0

  mov r2, #0xFFFFFFFE

  and r0,r2,r0

  mcr p15,0,r0,c1,c0,0

  }

  printf(“MMU disabledn”);

  }

關鍵字:arm  協處理器  微處理器 引用地址:arm的協處理器有幾個?ARM協處理器詳解

上一篇:嵌入式Linux:ARM Linux啟動流程
下一篇:關于ADS容易出錯的地方

推薦閱讀

中報 “失格”2018年中報即將在本周披露完畢,在經歷了國內經濟環境與行業調整的雙重壓力之下,上市企業所交出的2018年上半年成績單千差萬別,龍頭企業和高新技術公司利用技術和資金優勢依然得以蓬勃發展,而許多中小企業則苦受資金之困,狀況百出,更有企業雖然業績亮眼,但仍難改市場信心缺失給其帶來的估值失格。2018年,對于諸多上市公司而言,是艱難...
眾所周知,汽車制造商可以通過軟件來對信息娛樂系統或其他車輛電子設備進行更新。在生活智能化的今天,我們已經習慣了這一點。但是,大多數汽車制造商都要求通過經銷商來進行這類更新。在之前,沒有廠商通過OTA對車輛進行大的升級,而現在,特斯拉可通過OTA進行軟件更新。此外,除了我們提及過的對信息娛樂功能進行更新以外,特斯拉還可以遠程進行更多功能...
8月27日,中關村北斗和空間信息服務產業高峰論壇在海淀區舉辦,北斗星通最新一代 22nm 厘米級高精度定位芯片亮相。官方介紹,北斗星通最新一代 22nm 定位芯片 NebulasⅣ 在厘米級高精度定位領域具有開創性意義,全系統全頻點,基帶 + 射頻 + 高精度算法一體化,支持片上 RTK,滿足車規要求,尺寸及功耗僅為上一代高精度芯片的 1/4 及 1/5,...
今年已是自動駕駛行業的坎坷的一年。特斯拉的AI DAY雖震撼,但FSD的部署仍舊艱難,而Waymo的Robotaxi則在雪糕筒面前無所適從…… 相比之下,人們更加意識到先進的駕駛員監控有可能減少死亡事故。其中一個跡象是,在待定的美國基礎設施立法中,有一項關于DMS和其他如AEB和防碰撞系統的安全技術的規定。 根據自2017年以來對汽車DMS市場的研究,我們會注意到...

史海拾趣

問答坊 | AI 解惑

是什么管子?

最近在修電瓶叉車上的控制器上面有很多外形像三極管,形號是P80NF10FP是什么管子,請各位師傅告訴我它是什么管子,謝謝! 外形像三極管,形號是P80NF10FP是什么管子! …

查看全部問答∨

基于ARM的條碼精密測量系統

摘要: 本文介紹了一種基于32位高性能處理器的視覺精密測量系統的軟硬件設計。圖像傳感器采集的條碼圖像通過精密定位算法得到絕對位移值,由以太網接口實現高速圖像采集。該系統適用于高精度定位的各種位移測量。 關鍵詞: ARM;嵌入式系統;視覺 ...…

查看全部問答∨

LPC1300中文手冊(完整版)--無廣告

我整理了一下,方便大家閱讀,呵呵   …

查看全部問答∨

關于手機開發和JavaEE開發哪個好?

畢業在即,是選擇JAVAEE的培訓還是接受老師推薦,去做手機開發呢,前提是我是一個沒有任何嵌入式基礎的專科生。…

查看全部問答∨

請教NandFlash物理地址如何計算

在硬件上SDRAM可以通過nGCSi片選信號的連接確定,NandFlash看不出來,內存映射表上也看不出 請教各位,先謝了!…

查看全部問答∨

我的CC2430能用SmartRF Studio7監測數據,而不能用Packet Sniffer?

我的CC2430能用SmartRF Studio7監測到數據,而不能用Packet Sniffer監控數據。…

查看全部問答∨

急!ARM D/A轉換程序實現多種波形輸出

ARM D/A轉換程序設計 1.編程實現多種波形(正弦波信號、三角波信號、方波信號)的輸出,在 DA接口利用示波器觀測實驗輸出。 2.在 LCD上顯示信號…

查看全部問答∨

VC6++封裝成exe文件的問題

一直用VC++6做編譯器,雖然有人讓我換了,我嫌麻煩一直沒換。用它寫程序調試程序一切都很正常,唯獨有個問題。把寫好的程序封裝成exe文件。具體的操作其實挺簡單(當然沒有命令行下簡單)首先寫代碼,編譯看有沒有錯誤,沒錯誤以后封裝。封裝方法是 ...…

查看全部問答∨

小光棍節的禮物!讓QVGA屏普及吧!2.4寸 QVGA TFT屏帶觸摸屏15元一個!

讓QVGA屏普及吧!2.4寸 QVGA TFT屏帶觸摸屏15元一個(5個起),全新37腳ILI9320驅動,提供程序! 單個20元一個,數量不多歡迎搶購!     [ 本帖最后由 shanyan 于 2011-11-1 23:04 編輯 ]…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 诸城市| 湖口县| 南宫市| 隆德县| 英德市| 四会市| 禹城市| 崇州市| 无极县| 穆棱市| 阳新县| 阳东县| 扶绥县| 阳江市| 资中县| 盐边县| 仙桃市| 孝昌县| 宁远县| 加查县| 东港市| 衡水市| 股票| 应用必备| 大厂| 阿勒泰市| 志丹县| 红河县| 周口市| 马鞍山市| 嘉荫县| 弥渡县| 韶山市| 新乡市| 崇明县| 东丽区| 蒙自县| 武汉市| 石河子市| 什邡市| 嘉禾县|