TI中文支持网
TI专业的中文技术问题搜集分享网站

关于am335x starter kit的速度问题请教

本人用该板子,改写starterware的程序点亮了一个1920*1200点阵的TFT屏,发现刷屏的速度比较慢,

是数据写入buffer的速度太慢,不是dotclk慢,不知道是否有办法加快刷屏的速度?比如怎样重新设置am3359的主频?

怎样设置DDR3的频率?或者其他办法等等,谢谢

Yaoming Qin:

DDR3的频率设置可以看这里,最高可以到303MHz, http://processors.wiki.ti.com/index.php/AM335x_EMIF_Configuration_tips.

你刷这么大的屏估计要把CPU都占完了,是有点吃力的

wu jk:

回复 Yaoming Qin:

经过研究,发现现在的设置已经是主频720Mhz,DDR3是303Mhz的了,但是还是比较慢,刷一屏数据大概要2.4秒,

而我用三星6410点同样的屏,刷一屏数据大概是1秒,按道3359的速度不可能比6410慢的,另外,一点我觉得比较奇怪的是,

如果使用CacheEnable(CACHE_ALL);,屏幕就一直在闪,好像刷屏速度很快的样子,但是显示是错乱的,所以我,目前只能设置成

 CacheEnable(CACHE_ICACHE);才显示正常,不知道为什么会这样?

代码大概如下这样:

U16 *GLCDBF=(U16*)(0x80000000+1024*1024*10);U16 LUTOffset = 16;

RasterDMAFBConfig(LCDC_INSTANCE,                  (unsigned int)GLCDBF,                  (unsigned int)GLCDBF + SCREEN_W*SCREEN_H*2 +32 – 2,                  0);

RasterDMAFBConfig(LCDC_INSTANCE,                  (unsigned int)GLCDBF,                  (unsigned int)GLCDBF + SCREEN_W*SCREEN_H*2 +32 – 2,                  1);

 /* Enable End of frame0/frame1 interrupt */

RasterIntEnable(LCDC_INSTANCE, RASTER_END_OF_FRAME0_INT |                                     RASTER_END_OF_FRAME1_INT);

    /* Enable raster */    RasterEnable(LCDC_INSTANCE);

 pTemp=GLCDBF+LUTOffset;

    for(i=0;i<SCREEN_H/4;i++)    {     for(j=0;j<SCREEN_W;j++)     {      //*pTemp = COLOR_WHITE;      *pTemp = 0xFFFF;       pTemp++;     }    }

    for(i=0;i<SCREEN_H/4;i++)    {     for(j=0;j<SCREEN_W;j++)     {      //*pTemp = COLOR_BLUE;      *pTemp = 0xF800;       pTemp++;     }    }    for(i=0;i<SCREEN_H/4;i++)    {     for(j=0;j<SCREEN_W;j++)     {      //*pTemp = COLOR_GREEN;      *pTemp = 0x07E0;       pTemp++;     }    }    for(i=0;i<SCREEN_H/4;i++)    {     for(j=0;j<SCREEN_W;j++)     {      //*pTemp = COLOR_RED;      *pTemp = 0x001F;       pTemp++;     }    }

Yaoming Qin:

回复 wu jk:

需要找到一个合理的cache 策略,我在内部确认,看下版是否有改进,年底左右会出下一版。

wu jk:

回复 Yaoming Qin:

CACHE_ALL 再配合CacheDataCleanBuff这个函数使用可以使得显示正常了,但是刷屏的过程中会出现很多色块一样的东西,不知道为什么?是否有CACHE方面的更详细的资料介绍?另外,

RasterDMAFBConfig(LCDC_INSTANCE,                  (unsigned int)GLCDBF,                  (unsigned int)GLCDBF + SCREEN_W*SCREEN_H*2 +32 – 2,                  0);

这个函数当中不知道为什么 SCREEN_W*SCREEN_H*2 +32 – 2这一句需要减2,而不是直接写SCREEN_W*SCREEN_H*2 +32?

Yaoming Qin:

回复 wu jk:

CacheDataCleanBuff 就是用来flush cache的, Cache的资料在google下找找吧,这个是个公共的东西,来自ARM,我们这边没有什么特别的资料

Yaoming Qin:

回复 wu jk:

谢谢分享,请问现在刷屏可以到多少?

Yaoming Qin:

回复 wu jk:

我的理解-2,是因为最后两位是保留的,-3也一样

wu jk:

回复 Yaoming Qin:

大概可能一秒钟3帧左右吧

Yaoming Qin:

回复 wu jk:

谢谢分享,不过感觉还是慢了点,请问你的应用程序占的CPU高么

赞(0)
未经允许不得转载:TI中文支持网 » 关于am335x starter kit的速度问题请教
分享到: 更多 (0)