欢迎来到天天文库
浏览记录
ID:38636043
大小:220.50 KB
页数:10页
时间:2019-06-16
《关于ARM9协处理器MCR和MRC指令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为0~15。访问CP15寄存器的指令MCR ARM寄存器到协处理器寄存器的数据传送MRC 协处理器寄存器到ARM寄存器的数据传送MCR指令和MRC指令只能在处理器模式为系统模式时执行,在用户模式下执行MCR指令和MRC指令将会触发未定义指令的异常中断。MCR指令MCR指令将ARM处理器的寄存器中的数据传送到协处理器寄存器中。如果协处理器不能成功地执行该操作,将产生未定义的指令异常中断。指令语法格式MCR
2、{},,,,,{}MCR{}p15,0,,,,{}其中,为指令执行的条件码。当忽略时指令为无条件执行。为协处理器将执行的操作的操作码。对于CP15协处理器来说,永远为0b000,当不为0b000时,该指令操作结果不可预知。作为源寄存器的ARM寄存器,其值将被传送到协处理器寄存器中。作为目3、标寄存器的协处理器寄存器,其编号可能是C0,C1,…,C15。和两者组合决定对协处理器寄存器进行所需要的操作,如果没有指定,则将为为C0,opcode_2为0,否则可能导致不可预知的结果。TheCRmfieldandopcode_2fieldareusedtospecifyaparticularactionwhenaddressingregisters.Theopcode_1,opcode_2andCRmfieldsshouldbezero,exceptwhenthevaluesspecif4、iedareusedtoselectthedesiredoperations,inallinstructionswhichaccessCP15.Usingothervalueswillresultinunpredictablebehavior.Attemptingtoreadfromanon-readableregister,orwritingtoanon-writableregisterwillcauseunpredictableresults. 使用示例下面的指令从ARM寄存器R4中中将数据传送到协处理器CP15的寄存器C1中5、。其中R4为ARM寄存器,存放源操作数,C1、C0为协处理器寄存器,为目标寄存器,opcode_1为0,opcode_2为0。MCR p15, 0, R4, C1, C0, 0 MRC指令MRC指令将协处理器的寄存器中的数值传送到ARM处理器的寄存器中、如果协处理器不能成功地执行该操作,将产生未定义的指令异常中断。指令语法格式MRC{},,,,{,}MRC{}p15,0,,,{,6、2>}参数用法同MCR指令 CP15中的寄存器介绍 Register(寄存器)ReadWrite C0IDCode(1)Unpredictable C0Catchtype(1)Unpredictable C1ControlControl C2TranslationtablebaseTranslationtablebase C3DomainaccesscontrolDomainaccesscontrol C4UnpredictableUnpredictable C5Faultstatus(2)Faultstatus(2) C6F7、aultaddressFaultaddress C7UnpredictableCacheoperations C8UnpredictableTLBoperations C9Cachelockdown(2)Cachelockdown(2) C10TLBlockdown(2)TLBlockdown(2) C11UnpredictableUnpredictable C12UnpredictableUnpredictable C13ProcessIDProcessID C14UnpredictableUnpredictable C15Te8、stconfigurationTestconfiguration Notes:1. Registerlocation0providesaccesstomorethanoneregister.Theregisteraccesseddep
,,,,,{}MCR{}p15,0,,,,{}其中,为指令执行的条件码。当忽略时指令为无条件执行。为协处理器将执行的操作的操作码。对于CP15协处理器来说,永远为0b000,当不为0b000时,该指令操作结果不可预知。作为源寄存器的ARM寄存器,其值将被传送到协处理器寄存器中。作为目
3、标寄存器的协处理器寄存器,其编号可能是C0,C1,…,C15。和两者组合决定对协处理器寄存器进行所需要的操作,如果没有指定,则将为为C0,opcode_2为0,否则可能导致不可预知的结果。TheCRmfieldandopcode_2fieldareusedtospecifyaparticularactionwhenaddressingregisters.Theopcode_1,opcode_2andCRmfieldsshouldbezero,exceptwhenthevaluesspecif
4、iedareusedtoselectthedesiredoperations,inallinstructionswhichaccessCP15.Usingothervalueswillresultinunpredictablebehavior.Attemptingtoreadfromanon-readableregister,orwritingtoanon-writableregisterwillcauseunpredictableresults. 使用示例下面的指令从ARM寄存器R4中中将数据传送到协处理器CP15的寄存器C1中
5、。其中R4为ARM寄存器,存放源操作数,C1、C0为协处理器寄存器,为目标寄存器,opcode_1为0,opcode_2为0。MCR p15, 0, R4, C1, C0, 0 MRC指令MRC指令将协处理器的寄存器中的数值传送到ARM处理器的寄存器中、如果协处理器不能成功地执行该操作,将产生未定义的指令异常中断。指令语法格式MRC{},,,,{,}MRC{}p15,0,,,{,6、2>}参数用法同MCR指令 CP15中的寄存器介绍 Register(寄存器)ReadWrite C0IDCode(1)Unpredictable C0Catchtype(1)Unpredictable C1ControlControl C2TranslationtablebaseTranslationtablebase C3DomainaccesscontrolDomainaccesscontrol C4UnpredictableUnpredictable C5Faultstatus(2)Faultstatus(2) C6F7、aultaddressFaultaddress C7UnpredictableCacheoperations C8UnpredictableTLBoperations C9Cachelockdown(2)Cachelockdown(2) C10TLBlockdown(2)TLBlockdown(2) C11UnpredictableUnpredictable C12UnpredictableUnpredictable C13ProcessIDProcessID C14UnpredictableUnpredictable C15Te8、stconfigurationTestconfiguration Notes:1. Registerlocation0providesaccesstomorethanoneregister.Theregisteraccesseddep
,,,,{,}MRC{}p15,0,,,{,6、2>}参数用法同MCR指令 CP15中的寄存器介绍 Register(寄存器)ReadWrite C0IDCode(1)Unpredictable C0Catchtype(1)Unpredictable C1ControlControl C2TranslationtablebaseTranslationtablebase C3DomainaccesscontrolDomainaccesscontrol C4UnpredictableUnpredictable C5Faultstatus(2)Faultstatus(2) C6F7、aultaddressFaultaddress C7UnpredictableCacheoperations C8UnpredictableTLBoperations C9Cachelockdown(2)Cachelockdown(2) C10TLBlockdown(2)TLBlockdown(2) C11UnpredictableUnpredictable C12UnpredictableUnpredictable C13ProcessIDProcessID C14UnpredictableUnpredictable C15Te8、stconfigurationTestconfiguration Notes:1. Registerlocation0providesaccesstomorethanoneregister.Theregisteraccesseddep
6、2>}参数用法同MCR指令 CP15中的寄存器介绍 Register(寄存器)ReadWrite C0IDCode(1)Unpredictable C0Catchtype(1)Unpredictable C1ControlControl C2TranslationtablebaseTranslationtablebase C3DomainaccesscontrolDomainaccesscontrol C4UnpredictableUnpredictable C5Faultstatus(2)Faultstatus(2) C6F
7、aultaddressFaultaddress C7UnpredictableCacheoperations C8UnpredictableTLBoperations C9Cachelockdown(2)Cachelockdown(2) C10TLBlockdown(2)TLBlockdown(2) C11UnpredictableUnpredictable C12UnpredictableUnpredictable C13ProcessIDProcessID C14UnpredictableUnpredictable C15Te
8、stconfigurationTestconfiguration Notes:1. Registerlocation0providesaccesstomorethanoneregister.Theregisteraccesseddep
此文档下载收益归作者所有