您尚未登录。

楼主 # 2024-01-22 23:52:52

XIVN1987
会员
注册时间: 2019-08-30
已发帖子: 250
积分: 311.5

触发 Debug Monitor 异常为何要求其中断优先级必须高于当前优先级?

如下图所示,当 MON_EN = 1 时,发生 debug event 时(如观察点检测到指定地址被写入)并不能保证一定执行 DebugMon_Hander(),而是只有当 DebugMonitor 中断优先级高于当前执行优先级时才会执行 DebugMon_Hander(),否则 debug event 将会被忽略。

为什么会有这种限制?不能像其他中断那样先挂起 DebugMonitor 中断,,等不执行其他中断的时候再执行吗??

DebugMon_ignore.jpg

离线

楼主 #1 2024-01-23 09:21:50

XIVN1987
会员
注册时间: 2019-08-30
已发帖子: 250
积分: 311.5

Re: 触发 Debug Monitor 异常为何要求其中断优先级必须高于当前优先级?

补充一下文字说明:

debug_event_behavior.jpg

离线

楼主 #3 2024-01-23 12:47:57

XIVN1987
会员
注册时间: 2019-08-30
已发帖子: 250
积分: 311.5

Re: 触发 Debug Monitor 异常为何要求其中断优先级必须高于当前优先级?

海石生风 说:

大概是因为这个中断要就地执行才有意义吧,如 BKPT触发的时候、到达watchpoint的时候,过了这个村就没这个店了。

你把DebugMonitor中断的优先级设置成最高不就行了。

默认优先级全是0,,全都是最高的

要想让DebugMonitor优先级高,,只能把其他所有用到的中断优先级都改低,,这操作就麻烦了。。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn