[STM32H7] 如何提高H7的计算速度

[复制链接]
2674|19
 楼主| xiaofei558008 发表于 2021-6-1 20:53 | 显示全部楼层 |阅读模式
本帖最后由 xiaofei558008 于 2021-6-1 21:05 编辑

各位大侠,

看了标题是不是觉得我有点飘了,550MHz MCU 都算不过来?
确实,最近搞了个摄像头项目,需要比较高的实时处理速度和低功耗的需求;
目前已经将算法在480MHz的H7上从26ms压缩到8.1ms;预设是10ms@550MHz处理完毕,看着现在已经完成了;
但老板说要做到极致,功耗也要极致,现在问题来了,芯片功耗在550MHz(约为7ms)功耗还是蛮大的,芯片功耗大意味着使用时间相对来说变短,电池就要变大,体积重量和充电时间都会变大;
如何才能将现有的算法在H7上提速;

1、算法有double型数据,开启双精度FPU;
2、开启I-Cache和D-Cache

3、代码已经尝试放在RAM里面跑,但效果不明显,约优化了600us;
4、ITCM 和 DTCM已经用上,但没有完全放的下变量/代码;


2829460b62fb19ee7b.png

比较好奇【RAM shared between ITCM and AXI】是如何使用呢,有谁用过吗?

查阅了网上各位大神的做法和个编译的性能对比测试,可以用arm_math.h替换math.h等;
编译器目前是IAR8.41版本,优化速度开到最高;

各位大侠有好的类似大计算量的经验可以分享吗?
小弟不胜感激~~








caoenq 发表于 2021-6-2 08:49 | 显示全部楼层
IAR编译出的文件执行效率本来就低

评论

求教,哪个编译器的效率最高。ARM-GCC 还是??  发表于 2021-6-2 13:56
 楼主| xiaofei558008 发表于 2021-6-2 13:58 | 显示全部楼层
还出现个诡异的问题,就是同一个函数,放在不同的C文件里,居然执行速度会快慢不一,有谁知道这个是啥情况;

评论

反汇编看一下代码执行顺序  发表于 2021-6-2 18:02
fanwei700615 发表于 2021-6-2 15:03 | 显示全部楼层
使用内联函数,,使用单片机的DSP函数

评论

@xiaofei558008 :是的,可以看看安富莱的资料,很不错  发表于 2021-6-9 14:14
dsp函数是指?arm-math.h和dsp库吗  发表于 2021-6-4 06:41
w494143467 发表于 2021-6-2 15:41 | 显示全部楼层
我觉得功耗问题可以在芯片不全速跑的时候降频。

评论

@xiaofei558008 :那还要要求多极致?感觉有些东西太过了会造成一些别的问题。  发表于 2021-6-4 11:08
不跑的时候进入超低功耗  发表于 2021-6-4 06:41
東南博士 发表于 2021-6-2 15:42 | 显示全部楼层
使用专门的math库;
使用格式化量化的数制;

评论

@xiaofei558008 :Q16/Q25 格式,都是DSP中的经典处理方法。 计算三角函数,速度非常快  发表于 2021-6-4 12:54
q格式肯定会快的  发表于 2021-6-4 06:42
yangxiaor520 发表于 2021-6-4 07:47 来自手机 | 显示全部楼层
和软件代码有很大关系
 楼主| xiaofei558008 发表于 2021-6-4 08:37 来自手机 | 显示全部楼层
yangxiaor520 发表于 2021-6-4 07:47
和软件代码有很大关系

有好的方法重构代码吗
 楼主| xiaofei558008 发表于 2021-6-5 19:45 | 显示全部楼层
各位大侠,MPU 配置会影响执行速度吗?目前默认MPU设置,没有配MPU
ADZ2016 发表于 2021-6-6 09:31 | 显示全部楼层
肯定是没有MPU的。内存管理单元,是在ARM7/9等架构上面才有的!

评论

我只这个芯片的MPU,这芯片 有MPU,和大核的MPU不是一个东西,主要是起保护作用的  发表于 2021-6-6 22:12
您需要登录后才可以回帖 登录 | 注册

本版积分规则

143

主题

998

帖子

13

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