[STM32F7] NUCLEO-F722ZE+MDK下的CoreMark_1.0移植

[复制链接]
1971|3
 楼主| lmx89 发表于 2017-3-13 14:32 | 显示全部楼层 |阅读模式
本帖最后由 lmx89 于 2017-3-14 10:21 编辑

感谢二姨家给的Nucleo-F722ZE开发板
先来几张美图
1.png 2.png
开发板的资料和介绍,在官网上都有,这就不多说了
最近大家都在玩CoreMark,赶紧跟上!!!
开发工具:
STM32CubeMX V4.19.0
STM32CubeF7 V1.6.0
ST-LINK/V2-1  V2.J28.M18 STM32 Debug+Mass storage
ST-LINK/V2-1 USB driver
(以上在官网中都能下载到)
MDK-ARM  V5.23
STM32F7xx_DFP  V2.9.0

CoreMark源代码在CoreMark官网(需注册)可以下载 coremark_v1.0.tgz (618.78 KB, 下载次数: 0)
下面介绍具体过程:
生成工程模板
3.png
直接选择nucleo722ZE
4.png
时钟选用内部晶振,HCLK选择216MHz
5.png
8.png
串口选用USART3(跟STLink共用,不用另外接线)
6.png
7.png
配置串口
9.png
10.png
Cortex M7 配置
11.png
生成源码(堆栈必须要改大)
12.png
往工程中添加Coremark
13.png
14.png
配置MDK,优化(选择默认,分数只有550左右)
15.png 16.png

配置Coremark文件(具体参见 如何将coremark程序移植到STM32上.pdf (1.12 MB, 下载次数: 5) 的P6~P11)
文档是以IAR为环境的,文件要改的内容和MDK是一样的

你以为按pdf配置就行了?其实不行(自己也琢磨了一阵)
还要修改:
1)main.c 里的Error_Handler函数也要拷贝到Core_portme.c
2) Core_portme.h文件中的宏定义HAS_STDIO和HAS_PRINTF需定义为1;
   #define NULL ((void *)0)  屏蔽(与stdio.h中重定义)
   typedef size_t ee_size_t;改成typedef unsigned int ee_size_t;      (编译时,size_t显示未定义,明明有的)

到此,编译就可以成功通过
但是download还是出问题 Error: Flash Download failed  -  "Cortex-M7"
27.png
要Flash全擦除,才能下载成功
17.png 18.png

最后,download成功,打开串口
28.png
分数不到880,MDK的优化还是差点

改好的CoreMark代码: CoreMarkSrc.rar (23.46 KB, 下载次数: 7)       


多谢4楼whtwhtw的提醒,更改后分数加了4分,影响并不大

30.png
29.png















打赏榜单

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

usysm 发表于 2017-3-13 17:13 | 显示全部楼层
usysm 发表于 2017-3-13 17:15 | 显示全部楼层
CoreMark高端应用
whtwhtw 发表于 2017-3-13 17:48 | 显示全部楼层
本帖最后由 whtwhtw 于 2017-3-13 18:04 编辑

你的M7配置ITCM没打开,第一项,打开再试试
你目前用的是AXI总线,需要转接到AHB总线才能读取flash指令,不够快。
由于你只打开了Icache和ART,没打开ITCM总线,等于没用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:当你知道迷惑时,并不可怕;当你不知道迷惑时,才最可怕。

4

主题

536

帖子

4

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