查看: 7170|回复: 15

[原创] 【我要创作】“LPC54114跑个分试试”

[复制链接]
  • TA的每日心情
    开心
    2020-6-18 08:45
  • 签到天数: 812 天

    连续签到: 1 天

    [LV.10]以坛为家III

    66

    主题

    4900

    帖子

    64

    金牌会员

    Rank: 6Rank: 6

    积分
    6324
    最后登录
    2025-8-6
    发表于 2017-3-2 22:33:01 | 显示全部楼层 |阅读模式
    对于手机行业来说,大家评测时都喜欢跑个分试试,所以也想在NXP的MCU芯片上跑个分试试,而对于跑分测试可以移植coremark,此前只看到别的MCU的跑分,没有看到有人分享NXP的coremark移植教程,所以查找了相关资料,尝试移植一下,在LPC54114初试成功,以后大家可以尝试移植到别的NXP芯片上面。移植教程如下:
    第一步:我们需要下载coremark的源码,我们可以在coremark的官网下载,当然也要感谢社区的朋友,已经分享了coremark源码,大家可以自行搜索下载。
    第二步:下载lpc5411x_xpresso54114_keil_iar_v3.00c.001_42的源码包,大家可以从NXP官网下载,解压文件。

    第三步:打开examples_periph这个工程,会出现如下所示:
    1.png
    先选择并激活lib_chip_5411x工程,编译工程得到lib_chip_5411x.lib,然后选择并激活lib_board_lpcxpresso_54114工程,编译工程得到lib_board_lpcxpresso_54114.lib,至此我们需要的两个支持库都已经生成好了。
    第四步:下载我分享的coremark移植包,解压得到四个文件。本次我选择的是periph_blinky这个工程作为移植模板,所以在lpc5411x_xpresso54114_keil_iar_v3.00c.001_42\lpc5411x\examples_5411x\periph_blinky下新建两个文件夹,分别是coremark和
    coremark_m4,如下所示。
    2.png
    第五步:拷贝coremark移植包中三个文件到coremark文件夹,分别是core_portme.c、core_portme.h、cvt.c。拷贝coremark移植包中的coremark_m4.c到coremark_m4文件,再从coremark源码,coremark_v1.0中拷贝core_list_join.c、core_main.c、core_matrix.c、core_state.c、core_util.c、coremark.h,再从coremark_v1.0\barebones拷贝ee_printf.c文件到coremark_m4文件夹中。如下所示。
    3.png
    4.png
    第六步:选择并激活periph_blinky工程,添加源文件,如下图所示
    7.png
    第七步:移除blinky.c,修改core_main.c,把
    #if MAIN_HAS_NOARGC
    MAIN_RETURN_TYPE main(void) {
            int argc=0;
            char *argv[1];
    #else
    替换为
    #if MAIN_HAS_NOARGC
    #if defined RENAME_MAIN
    MAIN_RETURN_TYPE core_main(void) {
    #else
    MAIN_RETURN_TYPE main(void) {
    #endif
    int argc=0;
    char *argv[1];
    #else

    第八步:修改ee_printf.c,添加#include "board.h",修改void uart_send_char(char c) 函数,如下所示
    void uart_send_char(char c) {
            Board_UARTPutChar(c);
    //#error "You must implement the method uart_send_char to use this file!\n";
    /*        Output of a char to a UART usually follows the following model:
            Wait until UART is ready
            Write char to UART
            Wait until UART is done
            
            Or in code:
            while (*UART_CONTROL_ADDRESS != UART_READY);
            *UART_DATA_ADDRESS = c;
            while (*UART_CONTROL_ADDRESS != UART_READY);
            
            Check the UART sample code on your platform or the board documentation.
    */
    }
    修改int ee_printf(const char *fmt, ...)如下所示,
    int ee_printf(const char *fmt, ...)
    {
      char buf[256],*p;
      va_list args;
      int n=0;
      #if defined(COREMARK_SCORE_TEST)
      va_start(args, fmt);
      ee_vsprintf(buf, fmt, args);
      va_end(args);
      p=buf;
      while (*p) {
            uart_send_char(*p);
            n++;
            p++;
      }
      #endif
      return n;
    }

    第九步:添加头文件路径,如下图所示,
    5.png
    修改工程优先级配置,如下所示,
    6.png
    第十步:修改堆栈大小,如下图所示,
    Stack_Size      EQU     0x00000300
    8.png
    至此我们移植完成之间编译下载。
    跑分结果如下所示。
    x.png
    在移植过程后遇到多次下载失败的问题,keil总是出现卡死,目前还没有分析出原因,等分析清楚再告诉大家原因。

    coremark移植包.zip

    7.77 KB, 下载次数: 9, 下载积分: 威望 1

    开心
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-9-9 22:51
  • 签到天数: 415 天

    连续签到: 1 天

    [LV.9]以坛为家II

    79

    主题

    3088

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    5181
    最后登录
    2022-5-23
    发表于 2017-3-2 22:35:13 | 显示全部楼层
      赞一个哇
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-5-29 08:54
  • 签到天数: 2992 天

    连续签到: 8 天

    [LV.Master]伴坛终老

    45

    主题

    5548

    帖子

    22

    金牌会员

    Rank: 6Rank: 6

    积分
    12035
    最后登录
    2025-5-29
    发表于 2017-3-2 22:36:11 | 显示全部楼层
    赞一个,厉害了我的歌。
    签到签到
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-4-20 18:38
  • 签到天数: 341 天

    连续签到: 1 天

    [LV.8]以坛为家I

    8

    主题

    1193

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    2370
    最后登录
    2022-4-29
    发表于 2017-3-2 22:48:26 | 显示全部楼层
    厉害了我的哥ss
    梵蒂冈
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-12-2 08:40
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    103

    主题

    869

    帖子

    7

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4353
    最后登录
    2025-8-21
    发表于 2017-3-2 23:27:47 | 显示全部楼层
    你开了O3 Otime。只开个O3试试?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-9-15 08:42
  • 签到天数: 1952 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    1

    主题

    4686

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9405
    最后登录
    2023-9-15
    发表于 2017-3-3 07:11:13 | 显示全部楼层
    好资料!!!
    今天天气不错!签到!
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2021-11-8 23:15
  • 签到天数: 154 天

    连续签到: 1 天

    [LV.7]常住居民III

    8

    主题

    301

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    1052
    最后登录
    2025-8-20
    发表于 2017-3-3 08:30:17 | 显示全部楼层
    这个好, 谢谢分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2022-6-3 10:27
  • 签到天数: 131 天

    连续签到: 1 天

    [LV.7]常住居民III

    19

    主题

    519

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1620
    最后登录
    2022-6-26
    发表于 2017-3-3 08:36:02 | 显示全部楼层
    不服跑个分试试
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-6-18 08:45
  • 签到天数: 812 天

    连续签到: 1 天

    [LV.10]以坛为家III

    66

    主题

    4900

    帖子

    64

    金牌会员

    Rank: 6Rank: 6

    积分
    6324
    最后登录
    2025-8-6
     楼主| 发表于 2017-3-3 08:41:52 | 显示全部楼层

    可以试试
    开心
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-6-18 08:45
  • 签到天数: 812 天

    连续签到: 1 天

    [LV.10]以坛为家III

    66

    主题

    4900

    帖子

    64

    金牌会员

    Rank: 6Rank: 6

    积分
    6324
    最后登录
    2025-8-6
     楼主| 发表于 2017-3-3 08:45:28 | 显示全部楼层
    mgn 发表于 2017-3-2 23:27
    你开了O3 Otime。只开个O3试试?

    我关闭优化了,就是这个结果
    开心
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-10 00:47 , Processed in 0.111728 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表