主题 : 关于lcd显示问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 5198
精华: 0
发帖: 17
金钱: 140 两
威望: 111 点
综合积分: 34 分
注册时间: 2009-04-14
最后登录: 2011-05-05
楼主  发表于: 2009-10-11 19:24

 关于lcd显示问题

裸机下在2440test里增加一个函数
void get_whole(unsigned short temp[320][240])
{ int temp_x,temp_y;
for(temp_y=0;temp_y<320;temp_y++)
for(temp_x=0;temp_x<240;temp_x++)
temp[temp_y][temp_x]=LCD_BUFFER[temp_y][temp_x];
}
调用之后进行调用自带的清屏函数,下到sdram就会在屏幕的下方某些区域会显示为原来的图片,无法清平,造成显示不正常。后来测试,只要一读取LCD_BUFFER[
temp_y][temp_x]的值就会这样。
再后来,我把 mmu_init里的 MMU_EnableDCache(); 注释掉,也就是关闭数据cache 就没问题了。
我想可能跟 缓存有关,再带的2440test里的缓存没有处理好,但是具体怎么处理我想了很久也不知道怎么,你们也可以在自己的板子上试试, 我已经在两块板子上都试验过了。 请求知道的人能解答一下
[ 此帖被jiangkaibo在2009-10-11 19:41重新编辑 ]