AM3352 LCD动态修改 Frame Buffer 0 Base地址

AM3352 在uboot 下的LCD初始化完成后, LCD可以正常显示,使用的是LCD Controller in Raster Mode,只设置了使用一个Frame Buffer 0。能否再去修改Frame Buffer 0 Base address?

目前我的做法是先将LCD controller 及 irq都disable,修改Frame Buffer 0 Base address及Frame Buffer 0 Celling address后,再重新使能LCD controller及irq。但这样修改后LCD显示不正常,出现有规律的花屏。

有人成功动态改过 Frame Buffer 0 Base address吗?

2 个回复

  • 回复 Shine:

    Hi Shine,

    谢谢提供的链接,文档很有用。但是看到里面有两个Use Case的时序图没有太理解。

    1. 下面这张图上是use case3:single buffer usage model,并没有在EOF0 INT来之后去修改 cfg_fb0_base & cfg_fb0_ceil,cfg_fb0_base & cfg_fb0_ceil一直保持的是B0,但为什么显示出黄色部分的B1,B2,B3,B4。我的理解是没有去修改cfg_fb0_base & cfg_fb0_ceil,就会一直显示B0的内容。

    2. 另外一个是use case4,这个是要更新 cfg_fb0_base & cfg_fb0_ceil,我的理解是single buffer pointer修改只会去修改cfg_fb0_base & cfg_fb0_ceil 或者 cfg_fb1_base & cfg_fb1_ceil ,如果两个都改,而且两个都用,就属于ping pang buffer。下图把cfg_fb0_base & cfg_fb0_ceil 和cfg_fb1_base & cfg_fb1_ceil都改了,见黄色部分,并且EOF0 INT之后,只会使用cfg_fb0_base & cfg_fb0_ceil 的值,为什么显示出了更新在cfg_fb1_base & cfg_fb1_ceil 中的B2呢?

    Best Regards

    xixiguohx