我想监视ARM A76机器上的指定地址,并在从加载该地址时输入异常。但是,我做了配置,没有得到异常。
我的流程如下:
1.将MDSCR_EL1.KDE
和MDSCR_EL1.MDE
设置为1
以启用EL1中的调试异常。
1.将OSLAR_EL1
寄存器配置为未锁定。
1.配置DBGWVR0_EL1
和DBGWCR0_EL1
,并确保将指令(LSC == 0b10)存储到DBGWVR0_EL1
中的地址将陷阱。
我用mrs指令读了相关的登记册,但找不到原因。我的机器如下:
- ARM A76+Threadx Rtos
1.运行程序的例外是EL1。
登记打印如下:DAIF
:0x0
OSLSR_EL1
:0x8
CurrentEL
:0x4
MDSCR_EL1
:0xa000
DBGWVR0_EL1
:0xd021b600
DBGWCR0_EL1
:0xf9
我将MDSCR_EL1.SS
配置为1
,CPU进入异常。
1条答案
按热度按时间9udxz4iz1#
将
DBGWCR0_EL1.PAC
设置为0b00
,这既不选择EL 1也不选择EL 0。对于EL 1,将其设置为0b01
,对于EL 0,将其设置为0b10
,或者对于两者,将其设置为0b11
(有关完整概述,请参见the manual中的“表D2-13监视点HMC、SSC和PAC编码摘要”)。因此,如果您希望观察点只在EL 1处命中,请将
DBGWCR0_EL1
设置为0xfb
。