在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > arm的協(xié)處理器有幾個(gè)?ARM協(xié)處理器詳解

            arm的協(xié)處理器有幾個(gè)?ARM協(xié)處理器詳解

            作者: 時(shí)間:2018-04-27 來源:網(wǎng)絡(luò) 收藏

              這是運(yùn)行于主機(jī)上的調(diào)試器向運(yùn)行于內(nèi)核上的應(yīng)用程序傳輸消息的事件順序:

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

              1. 調(diào)試器輪詢通信數(shù)據(jù)控制寄存器的 R 位。 如果 R位已清除,則通信數(shù)據(jù)讀取寄存器已清空,可將數(shù)據(jù)寫入此寄存器,以供目標(biāo)應(yīng)用程序讀取。

              2. 調(diào)試器通過掃描鏈 2 將數(shù)據(jù)掃描到通信數(shù)據(jù)讀取寄存器中。此操作會(huì)自動(dòng)設(shè)置通信數(shù)據(jù)控制寄存器中的 R 位。

              3. 目標(biāo)應(yīng)用程序輪詢通信數(shù)據(jù)控制寄存器中的 R 位。如果該位已經(jīng)設(shè)置,則通信數(shù)據(jù)讀取寄存器中已經(jīng)有數(shù)據(jù),應(yīng)用程序可使用 MRC 指令從14 讀取該數(shù)據(jù)。 同時(shí),讀取指令還會(huì)清除R 位。

              以下顯示的目標(biāo)應(yīng)用程序代碼演示了這一過程

              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 ;  semihosting(formerly SWI)

              AREA Storage, DATA,READWRITE

              indata

              DCB “Duffmessage#”

              END

                

            arm的協(xié)處理器有幾個(gè)?ARM協(xié)處理器詳解

              CP15系統(tǒng)控制

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

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

              MCR{cond} p15,,,,,

              MRC{cond} p15,,,,,

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

              -R0:ID號(hào)寄存器

              -R0:緩存類型寄存器

              -R1:控制寄存器

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

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

              -R4:保留

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

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

              -R7:緩存操作寄存器

              -R8:TLB操作寄存器

              -R9:緩存鎖定寄存器

              -R10:TLB 鎖定寄存器

              -R11-12&14:保留

              -R13:處理器ID

              -R15:測(cè)試配置寄存器 2-24

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

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

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

              以下為CP15的一些應(yīng)用示例

              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”);

              }


            上一頁(yè) 1 2 下一頁(yè)

            關(guān)鍵詞: ARM 協(xié)處理器

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉