硬汉嵌入式论坛

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

[STM32H7] 程序做的庞大且复杂时,建议中断越少越好,中断频率越低越好,任务之间耦合度越低越好

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2021-1-8 09:34:44 | 显示全部楼层 |阅读模式

1、很多地方,其实可以完全用不到中断的,中断太多会大大增加程序的不可预测性,以及各种中断优先级配置造成的奇葩问题     
    比如QSPI Flash字库,图库存储加载,如果你用QSPI MDMA方式就必须整个中断(因为要查询执行是否完毕),此时你就可以上内存映射方式,简单方便,一下子省去两个中断。

2、另外就是中断不要搞得太频繁,造成仅仅进出中断时间就给系统增加很大的负担。

3、使用了RTOS的话,任务之间的耦合问题也相当重要,能够独立的最好独立,不要跟太任务有消息的管理,否则出了问题,后期维护非常辛苦。



回复

使用道具 举报

65

主题

432

回帖

632

积分

金牌会员

积分
632
发表于 2021-1-8 09:54:05 | 显示全部楼层
还是裸奔的可控性最好
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
 楼主| 发表于 2021-1-8 09:57:04 | 显示全部楼层
taobaofarmer 发表于 2021-1-8 09:54
还是裸奔的可控性最好

裸奔也存在同样的问题,现在H7-TOOL APP就是裸机的,现在做的太复杂了,每次出问题都要通宵几次来解决。
回复

使用道具 举报

6

主题

45

回帖

63

积分

初级会员

积分
63
发表于 2021-1-8 10:04:10 | 显示全部楼层
大佬,那RTOS中很多地方也是用开关中断来进行保护,这种是不是也会影响呢?
回复

使用道具 举报

8

主题

104

回帖

138

积分

初级会员

积分
138
发表于 2021-1-8 11:37:50 | 显示全部楼层
A.orz 发表于 2021-1-8 10:04
大佬,那RTOS中很多地方也是用开关中断来进行保护,这种是不是也会影响呢?

开关中断是为了为了临界段保护,没有产生中断,但是关闭中断确实会产生“中断延迟”,但是我们可以通过configMAX_SYSCALL_INTERRUPT_PRIORITY设置Freertos的中断优先级。所以如果你要的任务很紧急,可以设置高于此优先级不受FreeRTOS管理的中断中响应,极大的保证了安全性和实时性。
回复

使用道具 举报

65

主题

432

回帖

632

积分

金牌会员

积分
632
发表于 2021-1-8 11:49:24 | 显示全部楼层
eric2013 发表于 2021-1-8 09:57
裸奔也存在同样的问题,现在H7-TOOL APP就是裸机的,现在做的太复杂了,每次出问题都要通宵几次来解决。

为何不上RTOS呢?
回复

使用道具 举报

5

主题

100

回帖

115

积分

初级会员

积分
115
发表于 2021-1-8 13:09:03 | 显示全部楼层
老大怎么现在才有这种体会
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
 楼主| 发表于 2021-1-8 13:09:13 | 显示全部楼层
A.orz 发表于 2021-1-8 10:04
大佬,那RTOS中很多地方也是用开关中断来进行保护,这种是不是也会影响呢?

可以上RTX,全程无开关中断。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
 楼主| 发表于 2021-1-8 13:09:43 | 显示全部楼层

今年将切到系统上。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
 楼主| 发表于 2021-1-8 13:12:22 | 显示全部楼层
calvinxxw 发表于 2021-1-8 13:09
老大怎么现在才有这种体会

之前都是在RTX全家桶上玩,基本各种使用都无痛添加,即使再复杂的应用。

这个倒腾复杂的裸机应用,整懵逼了,是真的复杂。
回复

使用道具 举报

36

主题

2040

回帖

2148

积分

至尊会员

积分
2148
发表于 2021-1-8 15:12:03 | 显示全部楼层
任务优先级安排,同样重要。
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

6

主题

216

回帖

234

积分

高级会员

积分
234
发表于 2021-1-8 15:43:03 | 显示全部楼层
不要跟太任务有消息的管理,这句话是什么意思,大佬
回复

使用道具 举报

11

主题

135

回帖

168

积分

初级会员

积分
168
发表于 2021-1-8 16:47:39 | 显示全部楼层
频繁中断这个深有体会啊,做数字电源,一轮PID计算下来基本上不剩啥了。ms级别以下实时响应的东西我都搬到FPGA上去了,偌大的一个F7芯片就跑了一个串口MODBUS。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
 楼主| 发表于 2021-1-9 08:26:30 | 显示全部楼层
exp_exp 发表于 2021-1-8 16:47
频繁中断这个深有体会啊,做数字电源,一轮PID计算下来基本上不剩啥了。ms级别以下实时响应的东西我都搬到F ...

H7的中断性能还是很强的,可以支持到12.5MHz的中断频率。
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2021-1-14 15:41:00 | 显示全部楼层
eric2013 发表于 2021-1-8 13:09
可以上RTX,全程无开关中断。

有点疑问, 是不是意味着 RTX不需要考虑 不可重入的的问题?
回复

使用道具 举报

44

主题

564

回帖

701

积分

金牌会员

积分
701
发表于 2021-1-15 09:07:02 | 显示全部楼层
eric2013 发表于 2021-1-9 08:26
H7的中断性能还是很强的,可以支持到12.5MHz的中断频率。

硬汉,按这个说,如果是100K中断频率让FMC读512个数据应该是一点问题都没有吧?不知道这样理解可否
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
 楼主| 发表于 2021-1-15 10:04:31 | 显示全部楼层
清风徐来 发表于 2021-1-14 15:41
有点疑问, 是不是意味着 RTX不需要考虑 不可重入的的问题?

自己写的函数要考虑。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
 楼主| 发表于 2021-1-15 10:04:48 | 显示全部楼层
ou513 发表于 2021-1-15 09:07
硬汉,按这个说,如果是100K中断频率让FMC读512个数据应该是一点问题都没有吧?不知道这样理解可否

无压力。
回复

使用道具 举报

4

主题

140

回帖

152

积分

初级会员

积分
152
发表于 2021-1-15 10:35:26 | 显示全部楼层
exp_exp 发表于 2021-1-8 16:47
频繁中断这个深有体会啊,做数字电源,一轮PID计算下来基本上不剩啥了。ms级别以下实时响应的东西我都搬到F ...

不至于吧,F7单纯PID计算的话跑到24k左右都无压力的,我们做电机驱动电流环都跑到30K+也能跑的过来,当然速度环和位置环就要分频处理了
回复

使用道具 举报

11

主题

135

回帖

168

积分

初级会员

积分
168
发表于 2021-1-16 10:15:42 | 显示全部楼层
zl1215 发表于 2021-1-15 10:35
不至于吧,F7单纯PID计算的话跑到24k左右都无压力的,我们做电机驱动电流环都跑到30K+也能跑的过来,当然 ...

我这有个瞬态响应<1ms的奇葩要求,直接导致调整频率上100Kz,算不了几个差分方程。我还得干点别的呢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 03:31 , Processed in 0.217234 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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