打印

s3c2410 lcd初始化一小段代码不理解

[复制链接]
3068|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cjjnjust|  楼主 | 2009-10-8 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 cjjnjust 于 2009-10-8 11:12 编辑

arm2410 LCD640.C 中LCDInit函数中的一部分代码  不懂什么意思

        LCDBANK=0x32000000>>22;  /*LCDBANK是视频缓冲区在系统内存中位置*/
LCDBASEU=0x0;   
LCDBASEL=LCDBASEU+(480)*640;
rLCDADDR1= (LCDBANK < <21)|LCDBASEU;   
rLCDADDR2=LCDBASEL;
rLCDADDR3= (640)|(0 < <11);
rLCDINTMSK=(INT_FrSyn < <1)|INT_FiCnt;
rLCDLPCSEL=0;
rTPAL=(0 < <24);     
for(i=0;i <640*480;i++)
*(pLCDBuffer16I1+i)=0x0;
        rLCDCON1+=LCDCON1_ENVID;

S3C2410中 LCDBACK=LCDADDR1[29:21] LCDBASEU=LCDADDR[0:20]  
问题1:为什么是0x32000000,右移22位后还要左移,为什么不直接给出一个数,然后左移21位。(经过我调试后最后rLCDADDR1=0x19000000,LCDBASEL=0x0004B000)

下面这段代码是刷新函数中的部分代码:
LCDBANK=0x32096000>>22;
LCDBASEU=(0x32096000 < <9)>>10;   
LCDBASEL=LCDBASEU+(480)*640;
//rLCDADDR1=0x33000000>>1;
rLCDADDR1= (LCDBANK < <21)|LCDBASEU;   
rLCDADDR2=LCDBASEL;
rLCDADDR3= (640)|(0 < <11);

问题二:为什么是0x32096000(96000是640*480*2的十六进制)?我对程序分析后是这样,rLCDADDR1指向了0x1904B000,
        rLCDADDR2指向了0x19096000。也就是rLCDADDR1相对初始地址后移了640*480,rLCDADDR2也后移了640*480。
        这样就是刷新吗?


void LCD_Refresh(){
int i; //U32 lcddata;
U16 pixcolor; //一个像素点的颜色
U8* pbuf=(U8*)LCDBufferII2[0];
U32 LCDBASEU,LCDBASEL,LCDBANK;
for(i=0;i<LCDWIDTH*LCDHEIGHT;i++)
{
pixcolor=((pbuf[0]&0xf8)<<11)|((pbuf[1]&0xfc)<<6)|(pbuf[2]&0xf8);
pbuf+=4;
*(pLCDBuffer16I2+i)=pixcolor;
}
LCDBANK=0x32096000>>22;
LCDBASEU=(0x32096000<<9)>>10;
LCDBASEL=LCDBASEU+(480)*640;
rLCDADDR1= (LCDBANK<<21)|LCDBASEU;
rLCDADDR2=LCDBASEL;
rLCDADDR3= (640)|(0<<11);
}


上面代码是刷新函数代码,pixcolor是5:6:5的模式的颜色,这个颜色值怎样传给VD[23:0],是不是只要设置了LCDCON寄存器,就会自己映射到VD[23:19],VD[15:10],VD[7:3]???[

相关帖子

沙发
阿南| | 2009-10-8 15:57 | 只看该作者
设置成565后,自动映射的

使用特权

评论回复
板凳
cjjnjust|  楼主 | 2009-10-8 17:04 | 只看该作者
谢谢南哥,
右移22位 是因为是4MB对齐,那么为什么是0x32000000呢?
下面那个<<9 然后再>>10又是为什么?
ADS ARMulator是不是不能仿真RTC中断?想做一个简单的电子钟,第一个任务是想从RTC中读出年月日等时间的数据,然后放在寄存器中,在调试的时候发现是否正确。但是现在运行一个别人写的程序,我在目标板上运行是能跳到中断处理程序,但是调试的时候没反应。
这种情况下我该怎样来测试?如果烧写到目标板上怎样才可以知道实时的时间?
谢谢了,这里的大牛

使用特权

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

本版积分规则

10

主题

31

帖子

1

粉丝