您尚未登录。

楼主 # 2022-01-23 15:47:18

smiletiger
会员
注册时间: 2021-07-28
已发帖子: 127
积分: 35

f133跑rtt测试了下memcpy速度那么慢的吗

f133跑rtt测试了下memcpy速度那么慢的吗,cpu是1.2g的,比1.5g的f1c100s慢10倍以上,是哪里有问题啊

最近编辑记录 smiletiger (2022-01-23 18:45:32)

离线

#1 2022-01-23 16:32:44

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 392
积分: 336

Re: f133跑rtt测试了下memcpy速度那么慢的吗

是不是没有平台优化哦,你用newlib的汇编试一下哇

离线

楼主 #2 2022-01-23 17:56:48

smiletiger
会员
注册时间: 2021-07-28
已发帖子: 127
积分: 35

Re: f133跑rtt测试了下memcpy速度那么慢的吗

shaoxi2010 说:

是不是没有平台优化哦,你用newlib的汇编试一下哇

其实我用的说for循环赋值测试fb 结果发现液晶屏居然刷一屏幕需要2秒 之前用f1c100只要10ms就够了 好不容易搞定f133的fb 结果发现速度还不如100s 是不是现在f133的开发环境特别是裸机还没有完善啊

离线

#3 2022-01-24 09:57:44

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 463
积分: 330.5
个人网站

Re: f133跑rtt测试了下memcpy速度那么慢的吗

可以对比下这个贴子 https://whycan.com/t_7592.html

离线

#4 2022-01-24 10:01:14

bigmagic
会员
注册时间: 2018-02-23
已发帖子: 31
积分: 54

Re: f133跑rtt测试了下memcpy速度那么慢的吗

没有那么夸张,我裸机操作f133 lcd驱动刷新,从memcpy到刷新lcd,差不多3ms,如果采用纯c语言的memcpy,差不多一帧图形是17ms。

lcd 尺寸 800*480

bpp 32

最近编辑记录 bigmagic (2022-01-24 10:04:23)

离线

楼主 #5 2022-01-24 12:04:03

smiletiger
会员
注册时间: 2021-07-28
已发帖子: 127
积分: 35

Re: f133跑rtt测试了下memcpy速度那么慢的吗

bigmagic 说:

https://whycan.com/files/members/459/lcd.mp4

没有那么夸张,我裸机操作f133 lcd驱动刷新,从memcpy到刷新lcd,差不多3ms,如果采用纯c语言的memcpy,差不多一帧图形是17ms。

lcd 尺寸 800*480

bpp 32

大佬 我用的就是你开源的那个rtt移植代码。你能帮我分析下是哪里的问题吗 开rtt和裸机都是这么慢 cpu寄存器什么的打印出来的确是1008m 没有分频

离线

#6 2022-01-24 13:49:52

bigmagic
会员
注册时间: 2018-02-23
已发帖子: 31
积分: 54

Re: f133跑rtt测试了下memcpy速度那么慢的吗

f133 lcd 相关的测试,你慢慢测试一下,我都开源了

https://github.com/bigmagic123/d1-nezha-rtthread

离线

#7 2022-01-24 15:23:50

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 392
积分: 336

Re: f133跑rtt测试了下memcpy速度那么慢的吗

F133 全志不是还有meli系统嘛,去找代理拿资源嘛

离线

楼主 #8 2022-01-24 16:04:21

smiletiger
会员
注册时间: 2021-07-28
已发帖子: 127
积分: 35

Re: f133跑rtt测试了下memcpy速度那么慢的吗

bigmagic 说:

f133 lcd 相关的测试,你慢慢测试一下,我都开源了

https://github.com/bigmagic123/d1-nezha-rtthread

好的,谢谢哦,唉我自己根据xboot移植了好几个晚上的fb,你这里居然都更新了,哈哈哈,大佬感谢,我晚上测试下

离线

楼主 #9 2022-01-24 17:33:39

smiletiger
会员
注册时间: 2021-07-28
已发帖子: 127
积分: 35

Re: f133跑rtt测试了下memcpy速度那么慢的吗

bigmagic 说:

f133 lcd 相关的测试,你慢慢测试一下,我都开源了

https://github.com/bigmagic123/d1-nezha-rtthread

我用你最新的程序编译了一下,并且点了个灯,测试程序如下,测试结果点灯的频率为看图


int main(void)
{
    printf("Hello RISC-V!\n");

    int led_pin = rt_pin_get("PG.13");
    rt_pin_mode(led_pin, PIN_MODE_OUTPUT);
    while(1)
    {
        uint32_t len;
                        uint16_t *pbuf=0x42000000;
            for(len=0;len<1280*720;len++)
                        {
                            *(pbuf+len)=0x00f0;
                        }       
                        rt_pin_write(led_pin, 1);
           
                        for(len=0;len<1280*720;len++)
                        {
                            *(pbuf+len)=0x00f0;
                        }       
                        rt_pin_write(led_pin, 0);
    }

    while(1)
    {
        rt_pin_write(led_pin, 1);
        rt_thread_mdelay(500);
        rt_pin_write(led_pin, 0);
        rt_thread_mdelay(500);
    }
    return 0;
}

1.png

问题在哪里?????????????

离线

楼主 #10 2022-01-24 17:34:37

smiletiger
会员
注册时间: 2021-07-28
已发帖子: 127
积分: 35

Re: f133跑rtt测试了下memcpy速度那么慢的吗

bigmagic 说:

f133 lcd 相关的测试,你慢慢测试一下,我都开源了

https://github.com/bigmagic123/d1-nezha-rtthread


当然我用的是windows下面的编译器,用的你百度云盘里面那个\riscv64-unknown-elf

离线

楼主 #11 2022-01-24 21:16:00

smiletiger
会员
注册时间: 2021-07-28
已发帖子: 127
积分: 35

Re: f133跑rtt测试了下memcpy速度那么慢的吗

bigmagic 说:

f133 lcd 相关的测试,你慢慢测试一下,我都开源了

https://github.com/bigmagic123/d1-nezha-rtthread

出于好奇,特地跑了一下xboot,在xboot里面用同样的代码,测试了一下发现速度是rtt中的几十倍,,大佬是否可以看看是不是rtt移植上的问题,因为你说你在裸机里面跑是正常的,但是我都是在你开源rtt上跑的,发现了问题
xboot.png

可以看到这个速度才是正常的刷屏速度,只要1.8ms,,1280*720  16位刷一屏幕只要1.8ms

一个要400ms一个只要1.8ms,这个性能差200倍啊


这个是xboot里面的测试代码
while(1)
{
                    uint32_t len;
                                            uint16_t *pbuf=0x42000000;
                            for(len=0;len<1280*720;len++)
                                            {
                                                *(pbuf+len)=0x00f0;
                                            }
                            gpio_set_value(F133_GPIOG13,1);//bl

                                            for(len=0;len<1280*720;len++)
                                            {
                                                *(pbuf+len)=0x00f0;
                                            }
                                            gpio_set_value(F133_GPIOG13,0);//bl
}


用led高低电平配合逻辑分析仪来测试的

最近编辑记录 smiletiger (2022-01-24 21:17:41)

离线

#12 2022-01-24 21:31:05

bigmagic
会员
注册时间: 2018-02-23
已发帖子: 31
积分: 54

Re: f133跑rtt测试了下memcpy速度那么慢的吗

rtt目前没有开cache,你可以开启cache测试一下

离线

楼主 #13 2022-01-24 21:35:20

smiletiger
会员
注册时间: 2021-07-28
已发帖子: 127
积分: 35

Re: f133跑rtt测试了下memcpy速度那么慢的吗

bigmagic 说:

rtt目前没有开cache,你可以开启cache测试一下

你裸机里面开了cache吗?

离线

#14 2022-01-24 21:46:12

bigmagic
会员
注册时间: 2018-02-23
已发帖子: 31
积分: 54

Re: f133跑rtt测试了下memcpy速度那么慢的吗

我在lcd驱动里面,无效了cache所有内存,另外,进行点灯测试时,可不用rt pin框架,直接调用gpio底层接口,目前180ms写内存肯定是不合理的

离线

楼主 #15 2022-01-24 21:51:34

smiletiger
会员
注册时间: 2021-07-28
已发帖子: 127
积分: 35

Re: f133跑rtt测试了下memcpy速度那么慢的吗

bigmagic 说:

我在lcd驱动里面,无效了cache所有内存,另外,进行点灯测试时,可不用rt pin框架,直接调用gpio底层接口,目前180ms写内存肯定是不合理的

应该不是cache的原因,也不会是rtt io框架的问题,我直接write32一样的结果,哪怕我把内存操作去掉,直接while里面操作io高低操作,测试下来都有都有2ms多,

离线

#16 2022-01-24 22:32:59

bigmagic
会员
注册时间: 2018-02-23
已发帖子: 31
积分: 54

Re: f133跑rtt测试了下memcpy速度那么慢的吗

有可能DDR2要重新初始化吧,不晓得是不是xfel初始化DDR速率没有最高,如果在sram中测试,不知道会不会好一点,看有没有人能够分析一下问题,我也弄不懂了

离线

楼主 #17 2022-01-24 22:39:44

smiletiger
会员
注册时间: 2021-07-28
已发帖子: 127
积分: 35

Re: f133跑rtt测试了下memcpy速度那么慢的吗

bigmagic 说:

有可能DDR2要重新初始化吧,不晓得是不是xfel初始化DDR速率没有最高,如果在sram中测试,不知道会不会好一点,看有没有人能够分析一下问题,我也弄不懂了

我打印过ddr寄存器的时钟配置,的确是500多m的配置,也不会是这个问题把,我试试看能不能跑ram里面试试看

离线

#18 2022-01-25 10:27:20

bigmagic
会员
注册时间: 2018-02-23
已发帖子: 31
积分: 54

Re: f133跑rtt测试了下memcpy速度那么慢的吗

确实是cache的问题,需要开启dcache后,内存访问速度可以大幅提高

离线

楼主 #19 2022-01-25 13:06:06

smiletiger
会员
注册时间: 2021-07-28
已发帖子: 127
积分: 35

Re: f133跑rtt测试了下memcpy速度那么慢的吗

bigmagic 说:

确实是cache的问题,需要开启dcache后,内存访问速度可以大幅提高

我这里不是dcache的问题哦,你可以试试,在xboot里面开启dcache的时间是2.xms,关闭dcache的时间是4.xms,性能大概差一倍左右而已,

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn