打印
[STM32H7]

如何提高H7的计算速度

[复制链接]
2040|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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已经用上,但没有完全放的下变量/代码;




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

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

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








使用特权

评论回复
沙发
caoenq| | 2021-6-2 08:49 | 只看该作者
IAR编译出的文件执行效率本来就低

使用特权

评论回复
评论
xiaofei558008 2021-6-2 13:56 回复TA
求教,哪个编译器的效率最高。ARM-GCC 还是?? 
板凳
xiaofei558008|  楼主 | 2021-6-2 13:58 | 只看该作者
还出现个诡异的问题,就是同一个函数,放在不同的C文件里,居然执行速度会快慢不一,有谁知道这个是啥情况;

使用特权

评论回复
评论
丿沙漏丨 2021-6-2 18:02 回复TA
反汇编看一下代码执行顺序 
地板
fanwei700615| | 2021-6-2 15:03 | 只看该作者
使用内联函数,,使用单片机的DSP函数

使用特权

评论回复
评论
fanwei700615 2021-6-9 14:14 回复TA
@xiaofei558008 :是的,可以看看安富莱的资料,很不错 
xiaofei558008 2021-6-4 06:41 回复TA
dsp函数是指?arm-math.h和dsp库吗 
5
w494143467| | 2021-6-2 15:41 | 只看该作者
我觉得功耗问题可以在芯片不全速跑的时候降频。

使用特权

评论回复
评论
w494143467 2021-6-4 11:08 回复TA
@xiaofei558008 :那还要要求多极致?感觉有些东西太过了会造成一些别的问题。 
xiaofei558008 2021-6-4 06:41 回复TA
不跑的时候进入超低功耗 
6
東南博士| | 2021-6-2 15:42 | 只看该作者
使用专门的math库;
使用格式化量化的数制;

使用特权

评论回复
评论
東南博士 2021-6-4 12:54 回复TA
@xiaofei558008 :Q16/Q25 格式,都是DSP中的经典处理方法。 计算三角函数,速度非常快 
xiaofei558008 2021-6-4 06:42 回复TA
q格式肯定会快的 
7
yangxiaor520| | 2021-6-4 07:47 | 只看该作者
和软件代码有很大关系

使用特权

评论回复
8
xiaofei558008|  楼主 | 2021-6-4 08:37 | 只看该作者
yangxiaor520 发表于 2021-6-4 07:47
和软件代码有很大关系

有好的方法重构代码吗

使用特权

评论回复
9
xiaofei558008|  楼主 | 2021-6-5 19:45 | 只看该作者
各位大侠,MPU 配置会影响执行速度吗?目前默认MPU设置,没有配MPU

使用特权

评论回复
10
ADZ2016| | 2021-6-6 09:31 | 只看该作者
肯定是没有MPU的。内存管理单元,是在ARM7/9等架构上面才有的!

使用特权

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

本版积分规则

137

主题

971

帖子

13

粉丝