阅读:1365回复:4
急啊:LCD闪烁,估计是带宽不足,如何解决?
我用的是pxa255,LCD Controller 用的是pxa内部集成的,我的nk.bin如果download到SDRAM中运行,一切正常。可是在Flash中XIP,在屏幕刷新时就出现闪烁,在CPU运算量大的时候,尤其如此,如在用IE上网时。我能不能把整个nk.bin都压缩了,然后解压缩到SDRAM中运行呢?大家用NAND Flash和Hard Disk类似的设备都是如何运行的?
那位大侠遇到过类似的情形,快帮忙啊。 |
|
沙发#
发布于:2004-09-24 10:50
先顶一下。
我在线等,急啊。期待与各位同仁交流,共同提高。 |
|
论坛版主
|
板凳#
发布于:2004-09-24 15:08
我这样做的:开始放到nor里面,后来太大了,就放到了nand里面,在系统启动时选择启动方式,从哪里面load os。从nand flash里面load出来比较慢(没有用burst方式优化读),10M需要45秒,优化后会变好,你可以考虑这样做能不能满足启动的时间。
在把os 放到nand里面后,启动代码使用bootloader,这部分起始代码和os的共享,所以长度一样,load os后才好计算跳转的位置,对了,我想问一句,你说原来在flash里面xip真的都是在flash里面码?兄弟是否真正看过xip时wince自己是否把自己搬到了sdram?如果没有,页表放到什么地方的呢?我反汇编看他的页表是紧挨nk.nb0后的64K对齐的地址放的,如果你运行在flash,那么这段空间也在flash,显然不对,我当初自己做搬移就是因为发现运行在flash不对。 |
|
地板#
发布于:2004-09-24 15:34
楼上的兄弟,能讲一下nk.bin放在nand flash或hard disk里,运行的过程吗?因为它们都是block device,都不能象SDRAM那样随意线性存取。搬的那段代码在Platform Builder中有吗?或者我怎么控制啊。
|
|
论坛版主
|
地下室#
发布于:2004-09-24 16:00
还是用nk.nb0把,虽然Nk.bin也可以自己做解压,但是不值得,压缩率一般不超过10%,本来从nand flash load 就慢。
nand flash的存取和管理是我自己写的代码,在axd里面用仿真器将os镜像写入,然后在启动代码中装载。由于os对nand flash的驱动有额外的控制,如ecc等,所以我只关心块替换,也就是自己管理坏块,别的没什么特别的地方,你可以自己写这段代码,根据你的硬件做就行 |
|