[STM32H7] HAL_Delay () 影响函数执行时间

[复制链接]
110|40
jonas222 发表于 2026-4-15 11:29 | 显示全部楼层
优化级别如何影响指令生成?              
updownq 发表于 2026-4-15 11:55 | 显示全部楼层
如果你只想测量算法本身的性能,而不希望它被编译器过度优化,可以对该函数单独禁用优化。
tabmone 发表于 2026-4-15 15:59 | 显示全部楼层
如何通过汇编分析定位优化差异?              
yorkbarney 发表于 2026-4-15 16:49 | 显示全部楼层
都使用了 volatile 关键字。这可以防止编译器将这些变量的读写操作优化掉。
plsbackup 发表于 2026-4-15 17:09 | 显示全部楼层
浮点运算是否导致性能波动?              
ccook11 发表于 2026-4-16 22:48 | 显示全部楼层
CMSIS DSP函数单独测试结果如何?
linfelix 发表于 2026-4-17 07:51 | 显示全部楼层
如何在STM32CubeIDE中查看.lst文件?
saservice 发表于 2026-4-17 13:42 | 显示全部楼层
测量方法是否可靠?              
houjiakai 发表于 2026-4-17 17:35 | 显示全部楼层
需要对比“有 HAL_Delay()”和“无 HAL_Delay()”两种情况下,你的算法核心部分生成了什么样的汇编代码。
mattlincoln 发表于 2026-4-17 20:13 | 显示全部楼层
直接定位是缓存、总线、还是编译器优化导致
kmzuaz 发表于 2026-4-17 20:57 | 显示全部楼层
你看到的优化等级导致时间异常,不是 BUG
timfordlare 发表于 2026-4-18 11:23 | 显示全部楼层
-O3加-ffast-math表现对比?
wilhelmina2 发表于 2026-4-18 14:30 | 显示全部楼层
可以考虑只在算法开始前将引脚拉高,算法结束后拉低,中间不再翻转,以减少对总线的干扰。
mmbs 发表于 2026-4-18 16:04 | 显示全部楼层
禁用SysTick后执行时间变化规律?
ingramward 发表于 2026-4-18 17:35 | 显示全部楼层
如何在测量时禁用流水线和缓存?              
星闪动力 发表于 2026-4-27 08:08 | 显示全部楼层
可能是向量操作导致浮点运算效率降低,使得时间翻倍。
LLGTR 发表于 2026-4-23 14:49 | 显示全部楼层
将HAL库中的延时函数替换为直接循环等待,确保程序不依赖HAL库延时,实现纯忙等延时。
朝生 发表于 2026-4-25 16:05 | 显示全部楼层
因为M7有双核处理能力,算法设计可能考虑了多任务或更复杂运算,更适合在M7上运行。
hmcu666 发表于 2026-4-27 22:33 | 显示全部楼层
H7双核处理器,算法选择在M7上运行是因为M7拥有更强大的处理能力和更低的功耗,适合处理复杂算法。
wahahaheihei 发表于 2026-4-28 09:49 | 显示全部楼层
HAL_Delay() 是阻塞式延时函数,这是它影响函数执行时间的根本原因—— 它会强制占用 CPU,让程序原地等待,直接拉长整个函数的执行耗时。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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