aishiqi1992 发表于 2012-2-25 19:56:25

【初学】2440的裸机程序是怎么实现对LCD的控制?

2440的板子配的LCD裸机程序,有点看不懂,我看绘图的最终语句就是          LCD_BUFFER=c;

但是我一直找不到把LCD_BUFFER写到LCD里面的函数啊。。真晕。。

源码下面RVDS1.2的

点击此处下载 ourdev_722153L5COD0.rar(文件大小:57K) (原文件名:1.11-lcd.rar)

s200661524 发表于 2012-3-4 13:46:18

2440的自带LCD控制器,有专用的DMA将显存里面的数据刷到LCD,不需要CPU送数据到LCD屏幕,所以在初始化LCD的时候只需要将显存的位置告诉LCD控制器就行了,去找找LCD的初始化函数,里面肯定有一句是将LCD_BUFFER这个变量的地址赋值给一个LCD控制器相关的的寄存器了。

aishiqi1992 发表于 2012-3-4 16:49:35

回复【1楼】s200661524
2440的自带lcd控制器,有专用的dma将显存里面的数据刷到lcd,不需要cpu送数据到lcd屏幕,所以在初始化lcd的时候只需要将显存的位置告诉lcd控制器就行了,去找找lcd的初始化函数,里面肯定有一句是将lcd_buffer这个变量的地址赋值给一个lcd控制器相关的的寄存器了。
-----------------------------------------------------------------------

那天下这么多LCD,如果没有驱动程序的话,处理器怎么都知道怎么去驱动?岂不是很不科学?你是什么工大的??

s200661524 发表于 2012-3-4 20:18:59

大连理工,你去看看2440的数据手册,上面有关于LCD控制器的一章,讲得很清楚,它支持哪几种类型的LCD,有一大堆寄存器去配置你的lcd的时序参数,这样就可以支持天下一大堆的lcd。裸机程序写那几个lcd控制器就是叫驱动程序,只要配置了lcd控制器的那几个寄存器,lcd控制器就知道怎么去驱动外接的lcd,具体驱动时序cpu不参与。

gracialee 发表于 2012-4-21 12:40:56

弄完了把LcD驱动一下。

北极熊 发表于 2012-4-21 18:42:36

初始化完成后,LCD控制器一直利用DMA将显示缓存单元 LCD_BUFFER中的数据显示到屏幕上,因此,若想改变屏幕显示内容,只需更改显示缓存 LCD_BUFFER即可。

dianzichina 发表于 2012-4-21 20:16:56

S3C44BOX的裸机对LCD屏的控制的飘过。

wye11083 发表于 2012-4-21 20:18:04

找到了,addr.h
volatile static unsigned short LCD_BUFFER;

Lcd_Init(void)

rLCDSADDR1=(((U32)LCD_BUFFER>>22)<<21)|M5D((U32)LCD_BUFFER>>1);
        rLCDSADDR2=M5D( ((U32)LCD_BUFFER+(SCR_XSIZE_TFT_320240*LCD_YSIZE_TFT_320240*2))>>1 );
        rLCDSADDR3=(((SCR_XSIZE_TFT_320240-LCD_XSIZE_TFT_320240)/1)<<11)|(LCD_XSIZE_TFT_320240/1);
        rLCDINTMSK|=(3);                 // MASK LCD Sub Interrupt

trucy 发表于 2012-4-22 00:28:40

呵呵,我個人理解其實DMA只不過是內部通道,怎麼去處理只要我們中控制好時序就OK
页: [1]
查看完整版本: 【初学】2440的裸机程序是怎么实现对LCD的控制?