[STM32F1] 中断回调函数 的执行

[复制链接]
 楼主| jiahy 发表于 2021-2-7 23:06 | 显示全部楼层 |阅读模式
在STM32中, 中断回调函数 的执行是在当前中断之中,还是属于当前中断之外执行??
chuxh 发表于 2021-2-7 23:10 | 显示全部楼层

什么意思?不是很明白你说的什么,能再解释一下这个现象吗
 楼主| jiahy 发表于 2021-2-7 23:11 | 显示全部楼层
比如串口接收中断,触发串口接收之后,进入中断函数,会一大串判断,清零标志等等操作,HAL帮忙处理了,编程者 只需要去中断回调函数处理应用逻辑,那么对于 中断回调函数, 他的执行到底是在当前中断之中,还是当前中断之外?
 楼主| jiahy 发表于 2021-2-7 23:13 | 显示全部楼层
这个问题的目的,如果中断回调函数还是在当前中断之中,那么意味着中断回调函数也必须短时间内结束,释放当前中断;
yufe 发表于 2021-2-7 23:15 | 显示全部楼层
如果中断回调函数是当前中断之外触发另一个软中断,那么中断回调函数的处理时间至少可以放宽一些;
yinxiangh 发表于 2021-2-7 23:18 | 显示全部楼层
从逻辑上讲,中断回调函数 的执行当然是在当前中断之中的。这个毋庸置疑哪,通常的 MCU 也都是这样的。
不过 STM32 这个 Cortex-M3 内核有个特例。由于中断返回和函数返回是相同的。如果中断服务最后一个函数是个小规模函数,涉及的寄存器少,没有参数,编译器(MDK)可能会先执行中断返回,再调用这个函数。
morrisk 发表于 2021-2-7 23:20 | 显示全部楼层
不过作为应用程序设计人员,还是认为中断回调函数的执行是在当前中断之中的比较妥当。
 楼主| jiahy 发表于 2021-2-7 23:22 | 显示全部楼层
之前看了回调函数位置,还在中断之中,所有有点疑问
 楼主| jiahy 发表于 2021-2-7 23:25 | 显示全部楼层
从系统的角度来说,中断应该快进快出,我以为为了对得起“中断回调函数”的这个名称,会按字面意思做软优化,重新触发低级别的软中断; 看了是我想多了;
kangzj 发表于 2021-2-7 23:30 | 显示全部楼层
中断中调用啊
wuhany 发表于 2021-2-7 23:32 | 显示全部楼层
中断中吧应该
spark周 发表于 2021-2-7 23:33 | 显示全部楼层
我理解的是在中断里边调用
huangchui 发表于 2021-2-7 23:35 | 显示全部楼层

不能结束了在执行吧
jlyuan 发表于 2021-2-7 23:37 | 显示全部楼层
跑系统的话说不好 不过不跑系统的话肯定是在中断里边执行的
 楼主| jiahy 发表于 2021-2-7 23:40 | 显示全部楼层

嗯,我再好好缕一缕吧,有了好消息及时通知大家
guanjiaer 发表于 2021-3-2 20:47 | 显示全部楼层
我理解的就是在里边执行
heimaojingzhang 发表于 2021-3-2 20:48 | 显示全部楼层
当然是中断中调用了啊
keaibukelian 发表于 2021-3-2 20:50 | 显示全部楼层
请问什么叫做软中断啊
labasi 发表于 2021-3-2 20:51 | 显示全部楼层
跑系统就是另外一码事了吗
paotangsan 发表于 2021-3-2 20:52 | 显示全部楼层
那么跑系统怎么处理呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

862

主题

9861

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部

862

主题

9861

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部