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

CodeMark跑分测试STM32G070

[复制链接]
huahuahnu 提问时间:2022-12-16 09:19 / 未解决
系统时钟配置64M,MDK优化选择了 -O3 -Otime,跑分结果是102,百度官方是142,差挺多,不知道是不是哪里没弄对,求指点。

工程使用 Projects\NUCLEO-G070RB\Examples_LL\USART\USART_Communication_Tx_Init

栈设置4K
Stack_Size      EQU     0x00001000

以下是一些函数接口代码

  1. void SystemClock_Config(void)
  2. {
  3.   LL_FLASH_SetLatency(LL_FLASH_LATENCY_2);

  4.   /* HSI configuration and activation */
  5.   LL_RCC_HSI_Enable();
  6.   while(LL_RCC_HSI_IsReady() != 1)
  7.   {
  8.   };

  9.   /* Main PLL configuration and activation */
  10.   LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSI, LL_RCC_PLLM_DIV_4, 80, LL_RCC_PLLR_DIV_5);
  11.   LL_RCC_PLL_Enable();
  12.   LL_RCC_PLL_EnableDomain_SYS();
  13.   while(LL_RCC_PLL_IsReady() != 1)
  14.   {
  15.   };

  16.   /* Set AHB prescaler*/
  17.   LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);

  18.   /* Sysclk activation on the main PLL */
  19.   LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
  20.   while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
  21.   {
  22.   };

  23.   /* Set APB1 prescaler*/
  24.   LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1);

  25. //  LL_Init1msTick(56000000);

  26.   /* Update CMSIS variable (which can be updated also through SystemCoreClockUpdate function) */
  27.   LL_SetSystemCoreClock(64000000);
  28.        
  29.         NVIC_SetPriority(SysTick_IRQn, 0);
  30.   NVIC_EnableIRQ(SysTick_IRQn);
  31. }
复制代码
  1. void start_time(void)
  2. {
  3.     //GETMYTIME(&start_time_val);
  4.         Tick = 0;   //每次初始化时让tick数从0开始
  5.         start_time_val = Tick;  //当前tick数保存到全局变量start_time_val
  6.         SysTick_Config(SystemCoreClock/1000); //配置并启动SysTick,这里配置Systick每隔1ms中断一次
  7. }
复制代码
  1. void stop_time(void)
  2. {
  3.    // GETMYTIME(&stop_time_val);
  4.         SysTick->CTRL = 0; //停止SysTick
  5.         stop_time_val = Tick; //当前tick数保存到全局变量stop_time_val
  6. }
复制代码
  1. void SysTick_Handler(void)
  2. {
  3.   Tick++;
  4. }
复制代码
  1. volatile ee_s32 seed4_volatile = 2000;
复制代码


收藏 评论3 发布时间:2022-12-16 09:19

举报

3个回答
Angel_YY_ST 回答时间:2022-12-16 09:53:31
这个跑分和编译器有很大关系,官方的是使用IAR编译的CoreMark,使用MDK编译跑分的分数确实会低一些。
之前我使用IAR测试过STM32G071,同样是64M,CoreMark可以达到135左右,距离官方的142差距不是很大。
sitdown 回答时间:2022-12-16 11:19:18
可能和编译器的版本也有关系
huahuahnu 回答时间:2022-12-19 10:23:14
Angel_YY_ST 发表于 2022-12-16 09:53
这个跑分和编译器有很大关系,官方的是使用IAR编译的CoreMark,使用MDK编译跑分的分数确实会低一些。
之前 ...

我也使用IAR跑了,版本是8.32.4,结果是104,和MDK差不多,和操作系统有关吗?
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版