硬汉嵌入式论坛

 找回密码
 立即注册
查看: 451|回复: 4
收起左侧

[技术讨论] 关于PRIMASK和外设中断的讨论

[复制链接]

10

主题

33

回帖

63

积分

初级会员

积分
63
发表于 2023-7-7 17:07:55 | 显示全部楼层 |阅读模式
发现当PRIMASK禁止全局中断后,如果一个外设仍然在运行,并且IF成立,在开始全局中断前,我清外设IF,然后在开启全局中断,这个中断仍然会被响应。这个实验得到的,但从内核手册没有明确说明。有没有小伙伴清楚知道ARM M核中断机制
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2023-7-8 09:09:00 | 显示全部楼层
M内核中断有pend挂起标志的,及时全局中断关闭,也可以触发挂起。不过这个仅可以挂起记录一次,即使关闭中断期多次触发,‘

你恢复全局中断后,就会得到执行。
回复

使用道具 举报

10

主题

33

回帖

63

积分

初级会员

积分
63
 楼主| 发表于 2023-7-10 13:57:18 | 显示全部楼层
eric2013 发表于 2023-7-8 09:09
M内核中断有pend挂起标志的,及时全局中断关闭,也可以触发挂起。不过这个仅可以挂起记录一次,即使关闭中 ...

一个应用我发现,如果BOOT里面,关闭外设只用关闭外设时钟,然后APP中一旦开启对应外设时钟+全局中断就可能导致中断被触发,关键是这个时候中断不是我预期需要触发的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2023-7-11 09:24:59 | 显示全部楼层
lovely-teddy 发表于 2023-7-10 13:57
一个应用我发现,如果BOOT里面,关闭外设只用关闭外设时钟,然后APP中一旦开启对应外设时钟+全局中断就可 ...

APP跳转前要提供一个类似芯片重新上电时的干净环境才行。

像你这种情况,需要关闭所有外设NVIC中断,使用的外设也做好DeIint复位初始化处理。
回复

使用道具 举报

10

主题

33

回帖

63

积分

初级会员

积分
63
 楼主| 发表于 2023-7-12 17:12:31 | 显示全部楼层
eric2013 发表于 2023-7-11 09:24
APP跳转前要提供一个类似芯片重新上电时的干净环境才行。

像你这种情况,需要关闭所有外设NVIC中断, ...

是的,学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 20:37 , Processed in 0.180106 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表