打印
[应用相关]

学习笔记+如何将coremark程序移植到STM32上

[复制链接]
1642|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Angel_YY|  楼主 | 2019-12-21 10:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Angel_YY 于 2019-12-21 10:56 编辑

    自动ST发布了STMG0系列MCU后,一直想要测试一下该系列芯片的性能,于是想到了把CoreMark移植到STM32G0上。在STM32的中文官网搜索了一下CoreMark关键字,发现官网已经有一篇《如何将coremark程序移植到STM32上.pdf》,讲述了如何在STM32上移植CoreMark,虽然**中使用的是STM32F746,但是工程是基于STM32CubeMX生成的,使用的HAL库,所以改**应该能够适合STM32G0的开发板。**写的很详细,于是下载开始学习。

文档中描述了CoreMark的一些简单信息。根据给定的下载地址,下载好CoreMark源码。

使用STM32CubeMX建立STM32G071的工程。

配置时钟时选择内部16M高速时钟,主时钟设置为最高的64MHz。

配置串口1的参数,这个串口时连接到STLink的,与PC端虚拟的串口是连接在一起的。

配置项目,IDE使用IAR V8,堆和栈大小都设置为0x2000,然后创建代码。

在IAR中打开工程,就可以看到生成的代码了。

在IAR工程中添加CoreMark中的六个文件到工程中,同时删除原工程中的main.c。

添加CoreMark的头文件路径到IAR工程中。

在core_portme.c文件的portable_init函数中粘贴从工程中删掉的main.c文件中主函数的初始化代码。

从main.c文件中拷贝初始化函数的实现到core_portme.c中。

增加printf重定向代码,文件开头添加函数声明,引用main.h

修改start_time,stop_time,get_time三个函数。

修改stm32g0xx_it.c中的SysTick_Handler函数。

在core_portme.h中定义迭代次数,CoreMark要求最少执行10秒钟才算有效,这里的迭代次数要根据芯片性能填写,笔者第一次使用了个12000次,结果程序运行了89秒才出结果。根据G0芯片的性能,这里改为2000比较合适。
此外,修改编译器优化参数。

修改优化等级,Options->C/C++ Compiler->Optimizations, 选择High for speed 和No size constraints以达到最优的运行速度。

至此,所有修改完成,编译为bin文件后,拖动到G071所在的盘符。写入完成后会自动重启。

重启后经过十几秒钟,在串口调制助手中就可以看到输出结果了,不过好像没有换行。

查看Core_main.c中的串口输出信息,发现换行都是用的"\n",而不是windows下常用的"\r\n"。

把文本信息拷贝到Notepad++中,就能够实现换行了,数据也整齐了。
从数据中可以看到,第一次迭代了12000次,用时89秒。第二次迭代了2000次,用时14.87秒。
两次测试的CoreMark值都是134.4左右,虽然距离官方的142还有一些差距,但是相比较STM32F0的68 CoreMark分要高了不少了。
总结:ST官网的文档是相当丰富的,如果遇到了技术问题,可以在中文官网根据关键字进行搜索,根据相关文档来学习和解决问题。


使用特权

评论回复
沙发
mmuuss586| | 2019-12-23 10:08 | 只看该作者

使用特权

评论回复
板凳
磨砂| | 2020-1-17 12:49 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
地板
晓伍| | 2020-1-17 12:54 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
5
八层楼| | 2020-1-17 12:59 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
6
观海| | 2020-1-17 13:02 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
7
guanjiaer| | 2020-1-17 13:16 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
8
heimaojingzhang| | 2020-1-17 13:22 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
9
manufact| | 2020-1-17 13:50 | 只看该作者
感谢楼主分享!工程移植需要对底层库有比较好的了解

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

84

帖子

4

粉丝