如下图所示,当 MON_EN = 1 时,发生 debug event 时(如观察点检测到指定地址被写入)并不能保证一定执行 DebugMon_Hander(),而是只有当 DebugMonitor 中断优先级高于当前执行优先级时才会执行 DebugMon_Hander(),否则 debug event 将会被忽略。
为什么会有这种限制?不能像其他中断那样先挂起 DebugMonitor 中断,,等不执行其他中断的时候再执行吗??
离线
补充一下文字说明:
离线
大概是因为这个中断要就地执行才有意义吧,如 BKPT触发的时候、到达watchpoint的时候,过了这个村就没这个店了。
你把DebugMonitor中断的优先级设置成最高不就行了。
默认优先级全是0,,全都是最高的
要想让DebugMonitor优先级高,,只能把其他所有用到的中断优先级都改低,,这操作就麻烦了。。
离线