硬汉嵌入式论坛

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

[SRAM] 测试STM32H7进出中断的速度能跑到12.5MHz,所有程序在TCM和Flash运行没差别

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2018-12-14 00:52:15 | 显示全部楼层 |阅读模式
1、开启最高等级优化和时间优化。
2、测试下面情况下,性能没差别
(1)程序在Flash运行,变量在DTCM,开启Cache。
(2)程序和变量都在DTCM运行

测试中断:
  1. /*
  2. *********************************************************************************************************
  3. *        函 数 名: TIM6_DAC_IRQHandler
  4. *        功能说明: TIM6定时中断服务程序
  5. *        返 回 值: 无
  6. *********************************************************************************************************
  7. */
  8. void TIM6_DAC_IRQHandler(void)
  9. {
  10.      TIM6->SR = ~TIM_FLAG_UPDATE;
  11.      //GPIOB->ODR ^= GPIO_PIN_1;
  12.      HC574_TogglePin(GPIO_PIN_23);
  13. }
复制代码


IO翻转10MHz,方波频率5MHz:
QQ截图20181214010200.jpg

IO翻转12.5MHz,方波频率6.25MHz:
77.jpg


回复

使用道具 举报

2

主题

85

回帖

91

积分

初级会员

积分
91
发表于 2018-12-14 10:01:15 | 显示全部楼层
这个没有1052快哦
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2018-12-14 11:05:38 | 显示全部楼层

是的,这个是纯跑主频了。
回复

使用道具 举报

16

主题

87

回帖

135

积分

初级会员

积分
135
发表于 2018-12-14 19:40:00 | 显示全部楼层
使用QSPI的FLASH跑速度是什么样子的呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2018-12-15 08:52:33 | 显示全部楼层
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2021-4-22 15:20:35 | 显示全部楼层
你好,硬汉,H7定时器中断服务函数里面,如果加上条件判断,能做4M的io控制电平吗
回复

使用道具 举报

19

主题

326

回帖

383

积分

高级会员

积分
383
发表于 2021-4-22 21:14:24 | 显示全部楼层
你的方法太啰嗦,并不高效
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2021-4-23 08:37:24 | 显示全部楼层
只要干不死就学 发表于 2021-4-22 15:20
你好,硬汉,H7定时器中断服务函数里面,如果加上条件判断,能做4M的io控制电平吗

可以的。主频开到最高480MHz。程序尽可能的简单。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2021-4-23 08:37:41 | 显示全部楼层
laofa 发表于 2021-4-22 21:14
你的方法太啰嗦,并不高效

欢迎补充高效方案
回复

使用道具 举报

19

主题

326

回帖

383

积分

高级会员

积分
383
发表于 2021-4-26 19:51:39 | 显示全部楼层
eric2013 发表于 2021-4-23 08:37
欢迎补充高效方案

你的方法是读-修改-写,当然会浪费很多时间,要用只写不读的方法,并且用空间换时间,尽可能减少跳转。例如:
GPIOB->BSRR = GPIO_PIN_1;
GPIOB->BSRR = GPIO_PIN_1<<16;
GPIOB->BSRR = GPIO_PIN_1;
GPIOB->BSRR = GPIO_PIN_1<<16;
GPIOB->BSRR = GPIO_PIN_1;
GPIOB->BSRR = GPIO_PIN_1<<16;
GPIOB->BSRR = GPIO_PIN_1;
GPIOB->BSRR = GPIO_PIN_1<<16;
还有你用定时器中断也是会大幅消耗时间的,因为要压栈出栈,要好多个周期。实际还要看编译器如何处理了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2021-4-26 23:46:10 | 显示全部楼层
laofa 发表于 2021-4-26 19:51
你的方法是读-修改-写,当然会浪费很多时间,要用只写不读的方法,并且用空间换时间,尽可能减少跳转。例 ...

谢谢。

我以为你要说的是其它高级玩法。这个测得就是我们平时常用玩法下中断的进出速度。

回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2021-4-30 10:48:29 | 显示全部楼层
laofa 发表于 2021-4-26 19:51
你的方法是读-修改-写,当然会浪费很多时间,要用只写不读的方法,并且用空间换时间,尽可能减少跳转。例 ...

H7这样操作GPIO的话,翻转速度极限是16.67Mhz
回复

使用道具 举报

210

主题

1043

回帖

1683

积分

至尊会员

More we do, more we can do.

积分
1683
发表于 2021-5-1 14:44:08 | 显示全部楼层
中断性能非常好,而且有Cache,即使在QSPI中,重复中断肯定能跑满速度
回复

使用道具 举报

3

主题

96

回帖

105

积分

初级会员

积分
105
发表于 2023-9-16 16:06:36 | 显示全部楼层
这样测对吗? H7 cpu要操作io口好像要夸两个总线所以会很慢.....
回复

使用道具 举报

3

主题

96

回帖

105

积分

初级会员

积分
105
发表于 2023-9-16 16:11:21 | 显示全部楼层
最佳的方法应该是使用计数器吧,在开启中断之后开启计数器,中断来了之后直接关闭所有中断,获取计数器的值这样应该会非常准确。H7用CPU操作IO需要跨两个总线,实际while循环操作的话,H7还不如F4快
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2023-9-16 16:19:18 | 显示全部楼层
2859932063 发表于 2023-9-16 16:11
最佳的方法应该是使用计数器吧,在开启中断之后开启计数器,中断来了之后直接关闭所有中断,获取计 ...

这个 HC574_TogglePin(GPIO_PIN_23);是FMC扩展IO测试的,这个扩展IO支持50MHz翻转。

不是GPIO。
回复

使用道具 举报

8

主题

157

回帖

181

积分

初级会员

积分
181
发表于 2023-9-22 09:36:55 | 显示全部楼层
能把CATCH 关掉试试?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2023-9-23 07:32:54 | 显示全部楼层
yunqi 发表于 2023-9-22 09:36
能把CATCH 关掉试试?

关闭Cache没测。
回复

使用道具 举报

4

主题

24

回帖

36

积分

新手上路

积分
36
发表于 2024-2-4 17:16:57 | 显示全部楼层
eric2013 发表于 2023-9-16 16:19
这个 HC574_TogglePin(GPIO_PIN_23);是FMC扩展IO测试的,这个扩展IO支持50MHz翻转。

不是GPIO。

硬汉哥,你看这么理解对不,STM32H743 实际进出中断最快的速率差不多就是12.5Mhz,主要是因为要压栈、出栈。你这个测试如果换成翻转GPIO,不是FMC 扩展IO口,应该速度还会下降。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 18:03 , Processed in 0.412881 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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