硬汉嵌入式论坛

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

[STM32H7] 关于H7平台中断服务函数响应的问题

[复制链接]

5

主题

7

回帖

22

积分

新手上路

积分
22
发表于 2022-10-20 20:15:58 | 显示全部楼层 |阅读模式
我在开发H7的时候发现一个比较隐蔽的问题,就是H7的中断服务函数响应时间似乎不是很稳定,比如,我利用一个IO外部中断,每一秒钟输入一个上升沿,并产生一个上升沿中断,在中断函数中,我用另一个IO翻转来展现两个脉冲沿之间的时差,发现这个时差某些时候是比较固定的,几乎没有差值。而某些时候会发生一些变化,这证明了中断服务函数的调度是有差异的,存在几百个ns的变化,并非严格不变的。很想知道个差异产生的原因是什么?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107598
QQ
发表于 2022-10-21 00:31:18 | 显示全部楼层
是不是有其它高优先级中断也在执行。正常情况下这个时间是固定的,否则H7将无法满足外置中断的实时控制。
回复

使用道具 举报

5

主题

7

回帖

22

积分

新手上路

积分
22
 楼主| 发表于 2022-10-21 18:37:11 | 显示全部楼层
我现在将中断服务函数和回调函数指定在DTCM域,能够看到有一定的改善,但是还是有一点概率会出现这个时间差波动,我有点怀疑是操作系统调度任务可能也会对此产生细微的影响。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107598
QQ
发表于 2022-10-22 12:20:32 | 显示全部楼层
wsyghlf 发表于 2022-10-21 18:37
我现在将中断服务函数和回调函数指定在DTCM域,能够看到有一定的改善,但是还是有一点概率会出现这个时间差 ...

用了系统那基本锁定问题了,这个系统必须支持零中断延迟。否则系统内核来个全局中断就卡主外部中断了。
回复

使用道具 举报

4

主题

49

回帖

61

积分

初级会员

积分
61
发表于 2022-10-25 00:03:59 | 显示全部楼层
有系统的话这个就很正常了,我做串口接收的时候,数据洪水经常会丢数据,查了很久就是系统调度问题,某些系统核心调度的时候是会关闭primask甚至是hardfault,最后采取的解决方案是basepri,将串口接收中断优先级高于basepri,效果很好.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-7 11:54 , Processed in 0.253727 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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