发新帖本帖赏金 8.88元(功能说明)我要提问
返回列表
打印
[STM32F7]

NUCLEO-F722ZE-6-浮点数运算对比测试

[复制链接]
1440|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
whtwhtw|  楼主 | 2017-3-10 19:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 whtwhtw 于 2017-3-10 19:50 编辑

有幸在活动中获得NUCLEO-F7的板子非常激动!这是我的第一个f7板,非常想知道有多牛X。
一、上靓照

脱光了








二、对比F407浮点运算
运行于168M,三种模式运行时间对比


主循环

函数后面的时间标注是通过串口打印出来的时间测试值,测试方法是1us定时器累加,函数执行前后时间差就是执行时间。此处可看出DSP库函数的强大这里要注意!小数点后面不加f的编译器会自动转为双精度浮点数,而M4核和DSP库函数都是只支持单精度浮点数,就会导致运算速度降低,切记!!!

三、对比测试F722执行时间,频率首先按168M配置执行




打赏榜单

21ic小管家 打赏了 8.88 元 2017-04-10
理由:NUCLEO-F722ZE评测领赏

沙发
whtwhtw|  楼主 | 2017-3-12 12:18 | 只看该作者
本帖最后由 whtwhtw 于 2017-3-13 09:56 编辑



什么情况嘛,还不如M4,肯定哪里设置错了...


这个选项M1和M4可没有,点开看看

紧耦合内存技术(TCM),该功能打开,实测在这种应用中作用不大

打开CPU的ICache
再次测试

再打开CPU的DCache

测试结果

看来TCM接口要配合Cache的使用才有作用下面还有内存管理器MPU的配置,这里没用到,大型应用(比如linux移植应用)更如鱼得水了
对比M4的测试是不是有什么问题?







使用特权

评论回复
板凳
whtwhtw|  楼主 | 2017-3-12 12:50 | 只看该作者
本帖最后由 whtwhtw 于 2017-3-12 15:18 编辑

是的,STM32F7系列增加了双精度浮点数的支持,因此在双精度的运算中比在M4中提升不少。但是在使用单精度运算中为什么还不如M4,目前还没搞明白。希望有大侠来指点一下,是否真的STM32F7的单精度运算不如M4

使用特权

评论回复
地板
whtwhtw|  楼主 | 2017-3-12 13:02 | 只看该作者
本帖最后由 whtwhtw 于 2017-3-12 14:33 编辑

最后把频率提升到216M也没见结果有什么影响......不应该呀

原来自己犯了个错误,时钟改了,定时器的1us没改,导致结果错误,重新修改编译,结果是

提升还不小

使用特权

评论回复
5
whtwhtw|  楼主 | 2017-3-12 13:09 | 只看该作者
本帖最后由 whtwhtw 于 2017-3-12 15:19 编辑

F722-FPU.zip (284.54 KB)

这是程序文件,不带Drivers文件夹,库文件大家都有。

使用特权

评论回复
6
whtwhtw|  楼主 | 2017-3-12 14:50 | 只看该作者
本帖最后由 whtwhtw 于 2017-3-12 14:54 编辑

下面玩玩超频
先到240M试试


280M


300M


310M
几分钟后死机

320M直接都没反应了。。。。。。
看来也就300M左右可以发挥一下了



使用特权

评论回复
7
whtwhtw|  楼主 | 2017-3-12 18:56 | 只看该作者
用的cubemx4.20,建立的NUCLEO-f722工程用内部高速时钟没问题,用外部高速时钟总是没反应,搞的我反复焊晶振都把焊盘搞掉了,后来调试发现是死在HAL_RCC_OscConfig()里的HSI Configuration中,总是return HAL_ERROR;
我把这部分都注释掉才可以使用,后来新建个工程还是这个问题,也不知道是这板子被我焊出问题了还是这个版本的cubemx有bug

使用特权

评论回复
8
chenci2013| | 2017-3-12 21:46 | 只看该作者

使用特权

评论回复
9
chenci2013| | 2017-3-12 21:51 | 只看该作者
坐等NUCLEO-F722ZE的设计实例分享。

使用特权

评论回复
10
whtwhtw|  楼主 | 2017-3-13 09:58 | 只看该作者
以后有时间试试ADC采样和FFT变换

使用特权

评论回复
11
whtwhtw|  楼主 | 2017-3-13 10:19 | 只看该作者
补充一下CUBEMX针对F7特有的配置MPU


MPU管理模式有四种


MPU管理单元有8个


每个MPU管理单元可配置内存地址范围和管理方式



使用特权

评论回复
12
whtwhtw|  楼主 | 2017-3-13 11:33 | 只看该作者
本帖最后由 whtwhtw 于 2017-3-13 11:35 编辑

重新回到二楼的flash 接口选择,分别为AXI和ITCM总线,看总线图

AXI总线是通过转接AHB总线与flash相连,大家知道flash是低速存取设备,因此使用该总线会在调取指令时插入空指令来弥补flash读取指令时候的空白指令周期,因此也拖慢了系统执行指令的速度
而使用ITCM总线是三种模式,第一种是不开ART直接读取flash,与AXI总线差不多,优点是不占用AHB总线
第二种是开ART,ART(Adaptive Real-Time Memory Accelerator 即 自适应实时存储器加速器),主要功能是弥补高速cpu与相对低速flash指令读取之间的矛盾。当指令flash读取速度足够快,cpu就可以相应提速。这句话载自网络,没太理解,大概意思就是发挥flash的读取极限,但是仍然跟不上CPU的速度。
第三种是使用ITCM内存的情况下开ART,这种模式就牛X了,ART存取和预取的指令都存放到一片SRAM内存中,大部分指令(比如循环体和重载函数)都可以从这片RAM中取指令,就不用到flash读取了,因此执行指令就可以0等待了,这时才发挥CPU的全部能力
看看我的测试,在168M下开ITCM能提升将近一倍的速度。

使用特权

评论回复
13
whtwhtw|  楼主 | 2017-3-13 11:47 | 只看该作者
本帖最后由 whtwhtw 于 2017-3-13 11:53 编辑



看看ITCM和DTCM在存储空间的映射,他们不再一个区域。DTCM和SRAM在一起,功能也相近;ITCM映射到了和flash一个区,根据功能确定的。但是具体使用地址是在映射接口区0x00200000----0x0027ffff

使用特权

评论回复
14
mmbs| | 2017-3-13 14:37 | 只看该作者
是不是单步调试测量的比较准确?

使用特权

评论回复
15
mmbs| | 2017-3-13 14:40 | 只看该作者
总体的性能来看是,超高性能MCU

使用特权

评论回复
16
whtwhtw|  楼主 | 2017-7-13 10:21 | 只看该作者
重新看了F722的datasheet,不是所有的F7核都支持双精度浮点运算,这款芯片只支持单精度浮点运算,所以双精度浮点运算比单精度浮点运算慢好多倍,如果支持的话应该能基本持平,回头有支持双精度的F7了去试一下。

使用特权

评论回复
发新帖 本帖赏金 8.88元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

2501

帖子

35

粉丝