你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

NUCLEO-F413ZH开发板评测--CoreMark跑分测试

[复制链接]
wofei1314 提问时间:2016-12-18 22:08 /
昨天晚上收到ST社区的NUCLEO-F413ZH开发板(STM32官网),首先感谢ST公司和ST社区论坛给的这次评测机会,开箱之后参照 “风子”移植“CoreMark”的步骤移植了一下(需要的朋友请移步 【F769IDISCOVERY评测】Coremark移植教程与跑分测试),前面的步骤基本都是参照他的帖子做的,先上图 CoreMark.jpg

我只跑出了 170分左右,比官方的少了不少,不知道哪里处理的不对。。。

移植过程,使用滴答定时器作为计时时钟,使用usart3作为串口输出,使用Cube生成的模板,然后修改Main.c中的main函数为:
  1. void hardware_init(void)
  2. //int main(void)
  3. {

  4.   /* USER CODE BEGIN 1 */
  5. //        uint8_t buf[]="I'm Nucleo F413ZH ! \r\n";
  6. //        static uint32_t times=0;
  7.   /* USER CODE END 1 */

  8.   /* MCU Configuration----------------------------------------------------------*/

  9.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  10.   HAL_Init();

  11.   /* Configure the system clock */
  12.   SystemClock_Config();

  13.   /* Initialize all configured peripherals */
  14.   MX_GPIO_Init();
  15.   MX_SPI3_Init();
  16.   MX_USART3_UART_Init();
  17.   MX_TIM14_Init();

  18.   /* USER CODE BEGIN 2 */
  19.         //HAL_TIM_Base_Start_IT(&htim14);
  20.   /* USER CODE END 2 */

  21.   /* Infinite loop */
  22.   /* USER CODE BEGIN WHILE */
  23. //  while (1)
  24. //  {
  25. //  /* USER CODE END WHILE */

  26. //  /* USER CODE BEGIN 3 */
  27. ////        printf("I'm ths %d times \r\n",times++);
  28. ////          HAL_Delay(1500);
  29. //  }
  30.   /* USER CODE END 3 */
  31.         printf("Core Mark start ... \r\n");
  32.         printf("Please wait ... \r\n");
  33. }
复制代码
然后修改“core_portme.c”中的宏定义如下
  1. /* Define : TIMER_RES_DIVIDER
  2.         Divider to trade off timer resolution and total time that can be measured.

  3.         Use lower values to increase resolution, but make sure that overflow does not occur.
  4.         If there are issues with the return value overflowing, increase this value.
  5.         */
  6. #define NSECS_PER_SEC CLOCKS_PER_SEC
  7. #define CORETIMETYPE clock_t
  8. //#define GETMYTIME(_t) (*_t=clock())
  9. #define GETMYTIME(_t) (*(_t)=(clock_t)HAL_GetTick())
  10. #define MYTIMEDIFF(fin,ini) ((fin)-(ini))
  11. #define TIMER_RES_DIVIDER 1
  12. #define SAMPLE_TIME_IMPLEMENTATION 1
  13. //#define EE_TICKS_PER_SEC (NSECS_PER_SEC / TIMER_RES_DIVIDER)
  14. #define EE_TICKS_PER_SEC 1000
复制代码
然后删除了“plat_hardware.c”里的函数,只保留了这个函数,用于获取Tick
  1. clock_t clock(void)
  2. {
  3.   return (clock_t)HAL_GetTick();
  4. }
复制代码
移植基本完成,附上完整工程(包含Cube的工程)。。。






相关文档:







STM32F413_CoreMark.rar

下载

8.34 MB, 下载次数: 26, 下载积分: ST金币 -1

评分

参与人数 1 ST金币 +20 收起 理由
zero99 + 20

查看全部评分

收藏 1 评论8 发布时间:2016-12-18 22:08

举报

8个回答
qq3531739406 回答时间:2018-7-10 13:58:37
楼主能不能推荐开发F413的软件
creep 回答时间:2016-12-19 08:58:43
是不是木有开优化。

keil:
2016-12-18_213731.png.thumb.jpg.png
IAR:
iar.png.thumb.jpg.png
CoreMark_Keil.rar (921.6 KB, 下载次数: 20)
jackten 回答时间:2016-12-18 23:13:14
好强大                              
5265325 回答时间:2016-12-19 08:16:17
wofei1314 回答时间:2016-12-19 09:32:19
creep 发表于 2016-12-19 08:58
是不是木有开优化。

keil:

是编译软件的优化,还是程序内部的优化?我用的MDK  5.06的编译器,Cube默认优化等级 03 ....

不知道哪里设置的不对...
creep 回答时间:2016-12-19 09:41:00
wofei1314 发表于 2016-12-19 09:32
是编译软件的优化,还是程序内部的优化?我用的MDK  5.06的编译器,Cube默认优化等级 03 ....

不知道哪里 ...

IDE 优化,我上面的keil和IAR都是最高等级的优化结果。
wofei1314 回答时间:2016-12-19 11:19:13
creep 发表于 2016-12-19 09:41
IDE 优化,我上面的keil和IAR都是最高等级的优化结果。

晚上回家试试~
XYX10384 回答时间:2018-6-15 23:22:11
好像还不错的样子

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版