elephant00 发表于 2023-1-16 09:36

CodeMark跑分测试STM32G070

系统时钟配置64M,MDK优化选择了 -O3 -Otime,跑分结果是102,百度官方是142,差挺多,不知道是不是哪里没弄对,求指点。

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

栈设置4K
Stack_Size      EQU   0x00001000

以下是一些函数接口代码


[*]void SystemClock_Config(void)
[*]{
[*]LL_FLASH_SetLatency(LL_FLASH_LATENCY_2);
[*]
[*]/* HSI configuration and activation */
[*]LL_RCC_HSI_Enable();
[*]while(LL_RCC_HSI_IsReady() != 1)
[*]{
[*]};
[*]
[*]/* Main PLL configuration and activation */
[*]LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSI, LL_RCC_PLLM_DIV_4, 80, LL_RCC_PLLR_DIV_5);
[*]LL_RCC_PLL_Enable();
[*]LL_RCC_PLL_EnableDomain_SYS();
[*]while(LL_RCC_PLL_IsReady() != 1)
[*]{
[*]};
[*]
[*]/* Set AHB prescaler*/
[*]LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
[*]
[*]/* Sysclk activation on the main PLL */
[*]LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
[*]while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
[*]{
[*]};
[*]
[*]/* Set APB1 prescaler*/
[*]LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1);
[*]
[*]//LL_Init1msTick(56000000);
[*]
[*]/* Update CMSIS variable (which can be updated also through SystemCoreClockUpdate function) */
[*]LL_SetSystemCoreClock(64000000);
[*]
[*]      NVIC_SetPriority(SysTick_IRQn, 0);
[*]NVIC_EnableIRQ(SysTick_IRQn);
[*]}

复制代码

[*]void start_time(void)
[*]{
[*]    //GETMYTIME(&start_time_val);
[*]      Tick = 0;   //每次初始化时让tick数从0开始
[*]      start_time_val = Tick;//当前tick数保存到全局变量start_time_val
[*]      SysTick_Config(SystemCoreClock/1000); //配置并启动SysTick,这里配置Systick每隔1ms中断一次
[*]}

复制代码

[*]void stop_time(void)
[*]{
[*]   // GETMYTIME(&stop_time_val);
[*]      SysTick->CTRL = 0; //停止SysTick
[*]      stop_time_val = Tick; //当前tick数保存到全局变量stop_time_val
[*]}

复制代码

[*]void SysTick_Handler(void)
[*]{
[*]Tick++;
[*]}

复制代码

[*]volatile ee_s32 seed4_volatile = 2000;

复制代码

天天向善 发表于 2023-1-17 14:34

说不定官方超频了,你没超。
页: [1]
查看完整版本: CodeMark跑分测试STM32G070