打印
[ZLG-ARM]

显示图片时间能快吗

[复制链接]
7998|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dsoyy|  楼主 | 2008-11-30 12:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SMARTARM2200开发板用TFT4267在现实图片的时候有明显的刷新过程,优化了下代码速度提高很大,仍然可看到刷新过程,无法满足产品需求。这个主要是主频的原因,我如何能利用现有资源(2200)实现图片的瞬间(客户可以接受)切换,或者增添些硬件等等。

请大家赐教!

相关帖子

沙发
dsoyy|  楼主 | 2008-12-1 14:56 | 只看该作者

周工的工程师呢?

请帮忙啊

使用特权

评论回复
板凳
dsoyy|  楼主 | 2008-12-3 09:39 | 只看该作者

顶起

使用特权

评论回复
地板
阿穆琪| | 2008-12-4 12:52 | 只看该作者

瓶颈不在你代码优化上,你把总线配快一下,效果就明显了

使用特权

评论回复
5
dsoyy|  楼主 | 2008-12-5 11:12 | 只看该作者

已经调了,还有倍频了。

使用特权

评论回复
6
wgc204| | 2008-12-5 11:59 | 只看该作者

楼主,你的配置参数是多少?

“已经调了,还有倍频了。”
楼主,你的配置参数是多少?
贴出来看看

使用特权

评论回复
7
wlq_9| | 2008-12-5 15:25 | 只看该作者

算算

320*240*2=153600字节.
如果你的代码在内部FLASH或者外部32位SRAM运行时,你得把FLASH上的数据调出来送到LCDC的SRAM里.如果你在外部FLASH运行,或者外部16位SRAM运行时,这个速度又得大打折扣.
极限情况下,刷屏速度能到多少,LZ心里应该有数了.如果再加上显示数据的运算,这个速度就更慢了.
结果偶就不说了.

使用特权

评论回复
8
dsoyy|  楼主 | 2008-12-8 11:02 | 只看该作者

OK

回6楼:
#define Fosc            (11059200 )   //#define Fosc            11059200                    //Crystal frequence,10MHz~25MHz,should be the same as actual status. 
                            //应当与实际一至晶振频率,10MHz~25MHz,应当与实际一至
#define Fcclk           (Fosc * 5)                  //System frequence,should be (1~32)multiples of Fosc,and should be equal or less  than 60MHz. 
                            //系统频率,必须为Fosc的整数倍(1~32),且<=60MHZ
#define Fcco            (Fcclk * 8)                 //CCO frequence,should be 2、4、8、16 multiples of Fcclk, ranged from 156MHz to 320MHz. 
                            //CCO频率,必须为Fcclk的2、4、8、16倍,范围为156MHz~320MHz
#define Fpclk           (Fcclk / 4) * 4             //VPB clock frequence , must be 1、2、4 multiples of (Fcclk / 4).
                            //VPB时钟频率,只能为(Fcclk / 4)的1、2、4倍


回7楼:
我的是16位总线接口,当在线调试使用分散加载程序到片内RAM时速度比较快,但和应用还有很大差距,如果程序下载到片外FLASH运行相当慢,要换个片内FLASH的。
我在使用这个片子的时候怎么能做到最快刷新图片还请楼上多指教。
我目前的想法:
1.程序放到片内FLASH,启用MAM;
2.显示的图片数据在P片外SRAM,改成32位宽
3、系统时钟,倍频。
4,优化算法,看那些方便用汇编优化。

。。。。
还有什么比较有效的办法?

使用特权

评论回复
9
wlq_9| | 2008-12-8 11:23 | 只看该作者

可以

最根本的办法还是换个内置LCD控制器的ARM.....
比方说ARM9+NAND+SDRAM.

使用特权

评论回复
10
dsoyy|  楼主 | 2008-12-8 13:35 | 只看该作者

谢谢楼上

基本平台用了LPC22系列,除非遇到不可行性,平台不能轻易改动。
2478好像带LCD控制器和DMA。

使用特权

评论回复
11
阿穆琪| | 2008-12-10 08:37 | 只看该作者

不是配置主频率呵

楼主,你把外部RAM的总线频率配快一些,这才是关键!!!
瓶颈在外频不在主频,配快了就看几乎不到刷屏了!
无论LCD还是取指令取数据,都要通过MEM控制器从外部RAM取数据。
它相当于电脑的内存条,同样1G的内存,DDR2 667的内存是不是比SD133的快.一个道理

使用特权

评论回复
12
cjj3543| | 2008-12-10 09:15 | 只看该作者

你用的是ZLG_GUI吗?

 楼主,你用的是ZLG_GUI吗?周公的GUI里面的驱动都是描点的方式,你把驱动改写下就可以了。

使用特权

评论回复
13
lpCFans| | 2008-12-10 13:22 | 只看该作者

顶...

使用特权

评论回复
14
dsoyy|  楼主 | 2008-12-10 15:31 | 只看该作者

回楼上

回11楼:
我在EMC已经处理了,速度得到提升了,和要求有差距;
回12楼:
你说的对,我目前操作方式是点扫描如果处理LCDBUF会很快,而且如果我选屏采用双BUF的会得到大幅提升。

欢迎大家继续赐教。

使用特权

评论回复
15
wlq_9| | 2008-12-10 16:28 | 只看该作者

LS

内存也是钱啊,单fb就要占用150K,双buf就是300K.
我觉得你非要用LPC系列,选24**比较好,一是带SDRAM,内存成本低得多,二是支持LCDC.

使用特权

评论回复
16
dsoyy|  楼主 | 2008-12-10 22:30 | 只看该作者

正解

LPC2478也好,留意过。
最后会综合考虑。
不知道带BUF的TFT价钱会贵多少。

2200 + TFT(BUF)   和  2478.


此外我想问下如果用UCGUI代码较大,程序放外部FLASH,为了是速度提升,我把程序在开机便搬到内部RAM,但是内部RAM不足够大,这个应该如何解决?      用外部SDRAM吗?

使用特权

评论回复
17
winfeng| | 2008-12-11 11:53 | 只看该作者

给你出个主意:

1 在内存里建一个TFTLCD BUF 镜像显存,GUI的算法操作镜像显存,操作完成后再把显存 copy到 LCD 的BUF
2 可以修改GUI底层驱动算法只拷贝内容变化的显存,提高效率。

使用特权

评论回复
18
dsoyy|  楼主 | 2008-12-11 15:01 | 只看该作者

winfeng

好主意:
方式1,相当于给LCDBUF建立一个缓存,有点2级缓存的意思,对吧,给TFT节省了成本;
方式2:有点疑问,2幅图片切换,copy数据前还要比较,不会不花费更多时间?

使用特权

评论回复
19
winfeng| | 2008-12-13 17:33 | 只看该作者

1 不是两种方式,是一种
2 不节省成本,要多花费一个显示缓冲区的成本,但内存足够的话就不增加成本
3 不是copy数据前比较,而是在gui的底层驱动里实现,比如把显示区域划分为若干个小区,在一个点操作函数(可以叫GUI_set_point())里,你操作过那个点,就把哪个点所在的小区标记为需要更新就可以了,拷贝数据时仅仅拷贝需要更新的小区所对应的显存。

使用特权

评论回复
20
wgc204| | 2009-1-16 09:48 | 只看该作者

是不是可以考虑使用ATF16V8 ?

我考虑用ATF16V8来修改硬件设计,将SDRAM和LCD配置为可选的"DMA"模式,显示LCD时,直接读取SDRAM对应的LCD的空间,这样LCD就直接显示了。
省去先读取数据到CPU,CPU在写数据到LCD的中间过程。
试验中....

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

144

主题

566

帖子

3

粉丝