本帖最后由 原来的你 于 2017-3-3 21:37 编辑
前面给大家介绍了LPCXPresso54114的Coremark移植,不知道大家尝试了没有。2017的主角LPCXPresso54608已经展示出来,正好年前NXP举行活动,有幸得到一块LPCXPresso54608,非常感谢NXP给予这个机会,正好过年放假有空,过年期间对对整个板子的外设基本都解测试,很不错,确实很好的芯片,最近社区又有不少伙伴也收到LPCXPresso54608的板子了,正好测试一下其跑分,介绍如何移植 Coremark到LPCXPresso54608。由于此次使用的是官方的SDK2.0,与前面LPCXPresso54114工程不一样,没有对应的板级支持包。所以移植不同,尝试重新移植,最终成功,下面带来新的移植步骤。 第一步:下载官方的LPC54608支持包SDK_2.0_LPCXpresso54608,具体方法就不少介绍,可以在论坛查找方法。 第二步:下载Coremark包,同样可以从论坛找到。 第三步:本次我们选择SDK_2.0_LPCXpresso54608中gpio工程作为我们的移植模板,大家也可以采用别的工程,工程路径为SDK_2.0_LPCXpresso54608\boards\lpcxpresso54608\driver_examples\gpio,我们在工程路径下新建一个coremark,如下图所示
从coremark_v1.0拷贝如下图所示文件到coremark,其中core_portme.c和core_portme.h来自于coremark_v1.0\simple,
第四步:添加文件到工程,去除gpio_led_output.c,如下图所示,
第五步:修改Core_portme.c 中的 portable_init 函数,从gpio_led_output.c拷贝如下程序到portable_init 函数中, /* Board pin, clock, debug console init */ /* attach 12 MHz clock to FLEXCOMM0 (debug console) */ CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH); CLOCK_EnableClock(kCLOCK_Gpio0); CLOCK_EnableClock(kCLOCK_Gpio2); CLOCK_EnableClock(kCLOCK_Gpio3);
BOARD_InitPins(); BOARD_BootClockRUN(); BOARD_InitDebugConsole(); 结果如下所示,
添加如下头文件 #include "board.h" #include "fsl_debug_console.h" #include "fsl_gpio.h" #include "pin_mux.h" #include <stdbool.h> 第六步:修改start_time/ stop_time/ get_time 这几个函数,如下图修改
第七步:在 Core_portme.c 文件中添加新定义的变量和函数 ,
#define SysTick_Counter_Disable ((uint32_t)0xFFFFFFFE) #define SysTick_Counter_Enable ((uint32_t)0x00000001) #define SysTick_Counter_Clear ((uint32_t)0x00000000) __IO uint32_t Tick; void SysTick_Handler(void) { /* USER CODE BEGIN SysTick_IRQn 0 */ extern __IO uint32_t Tick; Tick++; /* USER CODE END SysTick_IRQn 0 */ /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */
} 第八步:在 Core_portme.h中添加 #define ITERATIONS 12000,根据使用的系统时钟等情况设置 第九步:根据具体所用的编译器版本,优化配置进行修改,如下图修改
至此我们的移植完成,即可得到如下的跑分结果。
最后分享自己改完的移植包。
|