请选择 进入手机版 | 继续访问电脑版
查看: 136|回复: 9

[求助] MCUXpressio ide的memcpy慢的问题

[复制链接]

该用户从未签到

6

主题

26

帖子

0

金豆

中级会员

Rank: 3Rank: 3

积分
253
最后登录
2021-4-20
发表于 2021-3-10 17:15:13 | 显示全部楼层 |阅读模式
大家好,我在keil工程中,如果在Target->Use MicroLIB旁边打上√,他的memcpy效率会低,我试了下memcpy450k个字节用了大概18ms(nocache区域下),当不勾选Use MicroLIB情况下,memcpy450k个字节用了大概6ms,快了很多。
而在MCUXpressio ide下感觉应该是默认使用了MicoLIB库,因为memcpy也用了18ms。在MCUXpressio ide那里可以设置不使用MicroLIB?
回复

使用道具 举报

该用户从未签到

6

主题

26

帖子

0

金豆

中级会员

Rank: 3Rank: 3

积分
253
最后登录
2021-4-20
 楼主| 发表于 2021-3-11 10:53:30 | 显示全部楼层
仔细看了下MCUXpresso ide 的设置,应该是和图片中的Library headers 选项有关,默认是选择Redlib。我在下拉框中选择Newlib,但是下次打开还是显示Redlib,在哪里设置才能修改Library headers选项?
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2019-10-28 09:18
  • 签到天数: 1 天

    [LV.1]初来乍到

    4

    主题

    32

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

    积分
    327
    最后登录
    2021-4-8
    发表于 2021-3-11 14:47:11 | 显示全部楼层
    给你个源码,用这个应该快:
    1. #define UNALIGNED(X)    (((long)X & (sizeof(long) - 1)))
    2. #define BIGBLOCKSIZE    (sizeof(long) << 2)
    3. #define LITTLEBLOCKSIZE (sizeof(long))
    4. #define TOO_SMALL(LEN)  ((LEN) < BIGBLOCKSIZE)

    5. void *memcpy(void *dst0, const void *src0, size_t len0)
    6. {
    7.     char *dst = dst0;
    8.     const char *src = src0;
    9.     long *aligned_dst;
    10.     const long *aligned_src;

    11.     if (!TOO_SMALL(len0) && !(UNALIGNED(src) || UNALIGNED(dst)))
    12.     {
    13.         aligned_dst = (long *)dst;
    14.         aligned_src = (long *)src;

    15.         while (len0 >= BIGBLOCKSIZE)
    16.         {
    17.             *aligned_dst++ = *aligned_src++;
    18.             *aligned_dst++ = *aligned_src++;
    19.             *aligned_dst++ = *aligned_src++;
    20.             *aligned_dst++ = *aligned_src++;
    21.             len0 -= BIGBLOCKSIZE;
    22.         }

    23.         while (len0 >= LITTLEBLOCKSIZE)
    24.         {
    25.             *aligned_dst++ = *aligned_src++;
    26.             len0 -= LITTLEBLOCKSIZE;
    27.         }

    28.         dst = (char *)aligned_dst;
    29.         src = (char *)aligned_src;
    30.     }

    31.     while (len0--)
    32.         *dst++ = *src++;

    33.     return dst0;
    34. }
    复制代码
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    357

    主题

    5635

    帖子

    0

    金豆

    超级版主

    Rank: 8Rank: 8

    积分
    10796
    最后登录
    2021-5-7
    发表于 2021-3-11 15:31:27 | 显示全部楼层
    emmmmmmmmmmm 发表于 2021-3-11 10:53
    仔细看了下MCUXpresso ide 的设置,应该是和图片中的Library headers 选项有关,默认是选择Redlib。我在下 ...

    修改后,需要单击【Apply and Close】保存设置 2021-03-11_15-29-30.jpg
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6

    主题

    26

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

    积分
    253
    最后登录
    2021-4-20
     楼主| 发表于 2021-3-11 17:26:58 | 显示全部楼层
    realjace 发表于 2021-3-11 14:47
    给你个源码,用这个应该快:

    谢谢,你的代码我测试了下和自带的Redlib库效率是一样的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6

    主题

    26

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

    积分
    253
    最后登录
    2021-4-20
     楼主| 发表于 2021-3-11 17:34:34 | 显示全部楼层
    小恩GG 发表于 2021-3-11 15:31
    修改后,需要单击【Apply and Close】保存设置

    嗯,已经知道怎么修改Lib了,需要将图中里的Library都修改才能成功,我测试了三个lib,Redlib和Newlib速度一样,memcpy个450K字节都需要18ms,NewlibNano,需要71ms
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6

    主题

    26

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

    积分
    253
    最后登录
    2021-4-20
     楼主| 发表于 2021-3-11 17:35:30 | 显示全部楼层
    C:\lib.png
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6

    主题

    26

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

    积分
    253
    最后登录
    2021-4-20
     楼主| 发表于 2021-3-11 17:39:52 | 显示全部楼层
    补充图片
    lib.png
    回复

    使用道具 举报

    该用户从未签到

    357

    主题

    5635

    帖子

    0

    金豆

    超级版主

    Rank: 8Rank: 8

    积分
    10796
    最后登录
    2021-5-7
    发表于 2021-3-22 15:26:23 | 显示全部楼层
    emmmmmmmmmmm 发表于 2021-3-11 17:34
    嗯,已经知道怎么修改Lib了,需要将图中里的Library都修改才能成功,我测试了三个lib,Redlib和Newlib速 ...

    你测试的代码的heap是在那里呢,建议是在DTCM区域。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6

    主题

    26

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

    积分
    253
    最后登录
    2021-4-20
     楼主| 发表于 2021-3-24 09:26:29 | 显示全部楼层
    额,貌似两个工程的SDRAM速率不同
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2021-5-8 15:40 , Processed in 0.071813 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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