本人用该板子,改写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高么