⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcdlib.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]

; commandline [-errors .\err\lcdlib.err -O0 -asm -g+ -cpu ARM920T -fs "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  Lcd_Init PROC
;;;45     void Lcd_Init(int type)
;;;46     {
                  |L1.0|
000000  e250cc40          SUBS     r12,r0,#0x4000
;;;47         switch(type)
000004  a25ccf41          SUBGES   r12,r12,#0x104
000008  0a000198          BEQ      |L1.1648|
00000c  ca00001a          BGT      |L1.124|
000010  e250cd80          SUBS     r12,r0,#0x2000
000014  a25cc002          SUBGES   r12,r12,#2
000018  0a0000e2          BEQ      |L1.936|
00001c  ca00000c          BGT      |L1.84|
000020  e240cd40          SUB      r12,r0,#0x1000
000024  e25cc001          SUBS     r12,r12,#1
000028  0a00002e          BEQ      |L1.232|
00002c  e240cd40          SUB      r12,r0,#0x1000
000030  e25cc002          SUBS     r12,r12,#2
000034  0a000052          BEQ      |L1.388|
000038  e240cd40          SUB      r12,r0,#0x1000
00003c  e25cc004          SUBS     r12,r12,#4
000040  0a00007c          BEQ      |L1.568|
000044  e240cd80          SUB      r12,r0,#0x2000
000048  e25cc001          SUBS     r12,r12,#1
00004c  1a00035e          BNE      |L1.3532|
000050  ea0000a2          B        |L1.736|
                  |L1.84|
000054  e240cd80          SUB      r12,r0,#0x2000
000058  e25cc004          SUBS     r12,r12,#4
00005c  0a0000fb          BEQ      |L1.1104|
000060  e240cd80          SUB      r12,r0,#0x2000
000064  e25cc008          SUBS     r12,r12,#8
000068  0a000122          BEQ      |L1.1272|
00006c  e240cc41          SUB      r12,r0,#0x4100
000070  e25cc002          SUBS     r12,r12,#2
000074  1a000354          BNE      |L1.3532|
000078  ea000148          B        |L1.1440|
                  |L1.124|
00007c  e250cc40          SUBS     r12,r0,#0x4000
000080  a25ccf82          SUBGES   r12,r12,#0x208
000084  0a00027d          BEQ      |L1.2688|
000088  ca00000c          BGT      |L1.192|
00008c  e240cc40          SUB      r12,r0,#0x4000
000090  e25ccf42          SUBS     r12,r12,#0x108
000094  0a0001a9          BEQ      |L1.1856|
000098  e240cc42          SUB      r12,r0,#0x4200
00009c  e25cc001          SUBS     r12,r12,#1
0000a0  0a0001da          BEQ      |L1.2064|
0000a4  e240cc42          SUB      r12,r0,#0x4200
0000a8  e25cc002          SUBS     r12,r12,#2
0000ac  0a00020b          BEQ      |L1.2272|
0000b0  e240cc40          SUB      r12,r0,#0x4000
0000b4  e25ccf81          SUBS     r12,r12,#0x204
0000b8  1a000343          BNE      |L1.3532|
0000bc  ea00023b          B        |L1.2480|
                  |L1.192|
0000c0  e240cc44          SUB      r12,r0,#0x4400
0000c4  e25cc001          SUBS     r12,r12,#1
0000c8  0a0002a0          BEQ      |L1.2896|
0000cc  e240cc44          SUB      r12,r0,#0x4400
0000d0  e25cc002          SUBS     r12,r12,#2
0000d4  0a0002d2          BEQ      |L1.3108|
0000d8  e240cc44          SUB      r12,r0,#0x4400
0000dc  e25cc004          SUBS     r12,r12,#4
0000e0  1a000339          BNE      |L1.3532|
0000e4  ea000303          B        |L1.3320|
;;;48         {
;;;49         case MODE_STN_1BIT:
;;;50            	frameBuffer1Bit=(U32 (*)[SCR_XSIZE_STN/32])LCDFRAMEBUFFER;
                  |L1.232|
0000e8  e3a015c6          MOV      r1,#0x31800000
0000ec  e59f2ce0          LDR      r2,|L1.3540|
0000f0  e5821000          STR      r1,[r2,#0]  ; frameBuffer1Bit
;;;51     	rLCDCON1=(CLKVAL_STN_MONO<<8)|(MVAL_USED<<7)|(1<<5)|(0<<1)|0; 
0000f4  e59f1cdc          LDR      r1,|L1.3544|
0000f8  e3a0244d          MOV      r2,#0x4d000000
0000fc  e5821000          STR      r1,[r2,#0]
;;;52        	// 4-bit single scan,1bpp STN,ENVID=off
;;;53     	rLCDCON2=(0<<24)|(LINEVAL_STN<<14)|(0<<6)|(0<<0);	// It is not TFT LCD. So,.....    		
000100  e3a019ef          MOV      r1,#0x3bc000
000104  e3a0244d          MOV      r2,#0x4d000000
000108  e5821004          STR      r1,[r2,#4]
;;;54     	rLCDCON3=(WDLY_STN<<19)|(HOZVAL_STN<<8)|(LINEBLANK_MONO<<0);
00010c  e59f1cc8          LDR      r1,|L1.3548|
000110  e3a0244d          MOV      r2,#0x4d000000
000114  e5821008          STR      r1,[r2,#8]
;;;55     	rLCDCON4=(MVAL<<8)|(WLH_STN<<0);
000118  e3a01ed0          MOV      r1,#0xd00
00011c  e3a0244d          MOV      r2,#0x4d000000
000120  e582100c          STR      r1,[r2,#0xc]
;;;56     	rLCDCON5=0;
000124  e3a01000          MOV      r1,#0
000128  e3a0244d          MOV      r2,#0x4d000000
00012c  e5821010          STR      r1,[r2,#0x10]
;;;57     	//BPP24BL:x,FRM565:x,INVVCLK:x,INVVLINE:x,INVVFRAME:x,INVVD:x,
;;;58     	//INVVDEN:x,INVPWREN:x,INVLEND:x,PWREN:x,ENLEND:x,BSWP:x,HWSWP:x
;;;59     	rLCDSADDR1=(((U32)frameBuffer1Bit>>22)<<21)|M5D((U32)frameBuffer1Bit>>1);		
000130  e59f1c9c          LDR      r1,|L1.3540|
000134  e5911000          LDR      r1,[r1,#0]  ; frameBuffer1Bit
000138  e1a01b21          MOV      r1,r1,LSR #22
00013c  e1a01a81          MOV      r1,r1,LSL #21
000140  e59f2c8c          LDR      r2,|L1.3540|
000144  e5922000          LDR      r2,[r2,#0]  ; frameBuffer1Bit
000148  e1a02502          MOV      r2,r2,LSL #10
00014c  e18115a2          ORR      r1,r1,r2,LSR #11
000150  e3a0244d          MOV      r2,#0x4d000000
000154  e5821014          STR      r1,[r2,#0x14]
;;;60     	rLCDSADDR2=M5D( ((U32)frameBuffer1Bit+(SCR_XSIZE_STN*LCD_YSIZE_STN/8))>>1 );
000158  e59f1c74          LDR      r1,|L1.3540|
00015c  e5911000          LDR      r1,[r1,#0]  ; frameBuffer1Bit
000160  e2811c4b          ADD      r1,r1,#0x4b00
000164  e1a01501          MOV      r1,r1,LSL #10
000168  e1a015a1          MOV      r1,r1,LSR #11
00016c  e3a0244d          MOV      r2,#0x4d000000
000170  e5821018          STR      r1,[r2,#0x18]
;;;61     	rLCDSADDR3=(((SCR_XSIZE_STN-LCD_XSIZE_STN)/16)<<11)|(LCD_XSIZE_STN/16);
000174  e59f1c64          LDR      r1,|L1.3552|
000178  e3a0244d          MOV      r2,#0x4d000000
00017c  e582101c          STR      r1,[r2,#0x1c]
;;;62         break;
000180  ea000312          B        |L1.3536|
;;;63     
;;;64         case MODE_STN_2BIT:
;;;65         	frameBuffer2Bit=(U32 (*)[SCR_XSIZE_STN/16])LCDFRAMEBUFFER;
                  |L1.388|
000184  e3a015c6          MOV      r1,#0x31800000
000188  e59f2c54          LDR      r2,|L1.3556|
00018c  e5821000          STR      r1,[r2,#0]  ; frameBuffer2Bit
;;;66         	rLCDCON1=(CLKVAL_STN_GRAY<<8)|(MVAL_USED<<7)|(1<<5)|(1<<1)|0;
000190  e59f1c50          LDR      r1,|L1.3560|
000194  e3a0244d          MOV      r2,#0x4d000000
000198  e5821000          STR      r1,[r2,#0]
;;;67        	// 4-bit single scan,2bpp STN,ENVID=off
;;;68         	rLCDCON2=(0<<24)|(LINEVAL_STN<<14)|(0<<6)|(0<<0);
00019c  e3a019ef          MOV      r1,#0x3bc000
0001a0  e3a0244d          MOV      r2,#0x4d000000
0001a4  e5821004          STR      r1,[r2,#4]
;;;69         	rLCDCON3=(WDLY_STN<<19)|(HOZVAL_STN<<8)|(LINEBLANK_GRAY<<0);
0001a8  e59f1c3c          LDR      r1,|L1.3564|
0001ac  e3a0244d          MOV      r2,#0x4d000000
0001b0  e5821008          STR      r1,[r2,#8]
;;;70         	rLCDCON4=(MVAL<<8)|(WLH_STN<<0);
0001b4  e3a01ed0          MOV      r1,#0xd00
0001b8  e3a0244d          MOV      r2,#0x4d000000
0001bc  e582100c          STR      r1,[r2,#0xc]
;;;71         	rLCDCON5=0;
0001c0  e3a01000          MOV      r1,#0
0001c4  e3a0244d          MOV      r2,#0x4d000000
0001c8  e5821010          STR      r1,[r2,#0x10]
;;;72     	//BPP24BL:x,FRM565:x,INVVCLK:x,INVVLINE:x,INVVFRAME:x,INVVD:x,
;;;73     	//INVVDEN:x,INVPWREN:x,INVLEND:x,PWREN:x,ENLEND:x,BSWP:x,HWSWP:x
;;;74         	rLCDSADDR1=(((U32)frameBuffer2Bit>>22)<<21)|M5D((U32)frameBuffer2Bit>>1);
0001cc  e59f1c10          LDR      r1,|L1.3556|
0001d0  e5911000          LDR      r1,[r1,#0]  ; frameBuffer2Bit
0001d4  e1a01b21          MOV      r1,r1,LSR #22
0001d8  e1a01a81          MOV      r1,r1,LSL #21
0001dc  e59f2c00          LDR      r2,|L1.3556|
0001e0  e5922000          LDR      r2,[r2,#0]  ; frameBuffer2Bit
0001e4  e1a02502          MOV      r2,r2,LSL #10
0001e8  e18115a2          ORR      r1,r1,r2,LSR #11
0001ec  e3a0244d          MOV      r2,#0x4d000000
0001f0  e5821014          STR      r1,[r2,#0x14]
;;;75         	rLCDSADDR2=M5D( ((U32)frameBuffer2Bit+(SCR_XSIZE_STN*LCD_YSIZE_STN/4))>>1);
0001f4  e59f1be8          LDR      r1,|L1.3556|
0001f8  e5911000          LDR      r1,[r1,#0]  ; frameBuffer2Bit
0001fc  e2811c96          ADD      r1,r1,#0x9600
000200  e1a01501          MOV      r1,r1,LSL #10
000204  e1a015a1          MOV      r1,r1,LSR #11
000208  e3a0244d          MOV      r2,#0x4d000000
00020c  e5821018          STR      r1,[r2,#0x18]
;;;76         	rLCDSADDR3=(((SCR_XSIZE_STN-LCD_XSIZE_STN)/8)<<11)|(LCD_XSIZE_STN/8);
000210  e59f1bd8          LDR      r1,|L1.3568|
000214  e3a0244d          MOV      r2,#0x4d000000
000218  e582101c          STR      r1,[r2,#0x1c]
;;;77     	rDITHMODE=0x0;
00021c  e3a01000          MOV      r1,#0
000220  e3a0244d          MOV      r2,#0x4d000000
000224  e582104c          STR      r1,[r2,#0x4c]
;;;78     	rBLUELUT =0xf950;	// 4-Gray only
000228  e59f1bc4          LDR      r1,|L1.3572|
00022c  e3a0244d          MOV      r2,#0x4d000000
000230  e5821028          STR      r1,[r2,#0x28]
;;;79         break;
000234  ea0002e5          B        |L1.3536|
;;;80         	
;;;81         case MODE_STN_4BIT:
;;;82         	frameBuffer4Bit=(U32 (*)[SCR_XSIZE_STN/8])LCDFRAMEBUFFER;
                  |L1.568|
000238  e3a015c6          MOV      r1,#0x31800000
00023c  e59f2bb4          LDR      r2,|L1.3576|
000240  e5821000          STR      r1,[r2,#0]  ; frameBuffer4Bit
;;;83         	rLCDCON1=(CLKVAL_STN_GRAY<<8)|(MVAL_USED<<7)|(1<<5)|(2<<1)|0;
000244  e59f1bb0          LDR      r1,|L1.3580|
000248  e3a0244d          MOV      r2,#0x4d000000
00024c  e5821000          STR      r1,[r2,#0]
;;;84         	// 4-bit single scan,4bpp STN,ENVID=off
;;;85     	rLCDCON2=(0<<24)|(LINEVAL_STN<<14)|(0<<6)|(0<<0);
000250  e3a019ef          MOV      r1,#0x3bc000
000254  e3a0244d          MOV      r2,#0x4d000000
000258  e5821004          STR      r1,[r2,#4]
;;;86     	rLCDCON3=(WDLY_STN<<19)|(HOZVAL_STN<<8)|(LINEBLANK_GRAY<<0);
00025c  e59f1b88          LDR      r1,|L1.3564|
000260  e3a0244d          MOV      r2,#0x4d000000
000264  e5821008          STR      r1,[r2,#8]
;;;87     	rLCDCON4=(MVAL<<8)|(WLH_STN<<0);
000268  e3a01ed0          MOV      r1,#0xd00
00026c  e3a0244d          MOV      r2,#0x4d000000
000270  e582100c          STR      r1,[r2,#0xc]
;;;88     	rLCDCON5=0;
000274  e3a01000          MOV      r1,#0
000278  e3a0244d          MOV      r2,#0x4d000000
00027c  e5821010          STR      r1,[r2,#0x10]
;;;89     	//BPP24BL:x,FRM565:x,INVVCLK:x,INVVLINE:x,INVVFRAME:x,INVVD:x,
;;;90     	//INVVDEN:x,INVPWREN:x,INVLEND:x,PWREN:x,ENLEND:x,BSWP:x,HWSWP:x
;;;91     	rLCDSADDR1=(((U32)frameBuffer4Bit>>22)<<21)|M5D((U32)frameBuffer4Bit>>1);
000280  e59f1b70          LDR      r1,|L1.3576|
000284  e5911000          LDR      r1,[r1,#0]  ; frameBuffer4Bit
000288  e1a01b21          MOV      r1,r1,LSR #22
00028c  e1a01a81          MOV      r1,r1,LSL #21
000290  e59f2b60          LDR      r2,|L1.3576|
000294  e5922000          LDR      r2,[r2,#0]  ; frameBuffer4Bit
000298  e1a02502          MOV      r2,r2,LSL #10
00029c  e18115a2          ORR      r1,r1,r2,LSR #11
0002a0  e3a0244d          MOV      r2,#0x4d000000
0002a4  e5821014          STR      r1,[r2,#0x14]
;;;92     	rLCDSADDR2=M5D( ((U32)frameBuffer4Bit+(SCR_XSIZE_STN*LCD_YSIZE_STN/2))>>1 );
0002a8  e59f1b48          LDR      r1,|L1.3576|
0002ac  e5911000          LDR      r1,[r1,#0]  ; frameBuffer4Bit
0002b0  e2811b4b          ADD      r1,r1,#0x12c00
0002b4  e1a01501          MOV      r1,r1,LSL #10
0002b8  e1a015a1          MOV      r1,r1,LSR #11
0002bc  e3a0244d          MOV      r2,#0x4d000000
0002c0  e5821018          STR      r1,[r2,#0x18]
;;;93     	rLCDSADDR3=(((SCR_XSIZE_STN-LCD_XSIZE_STN)/4)<<11)|(LCD_XSIZE_STN/4);
0002c4  e59f1b34          LDR      r1,|L1.3584|
0002c8  e3a0244d          MOV      r2,#0x4d000000
0002cc  e582101c          STR      r1,[r2,#0x1c]
;;;94     	rDITHMODE=0x0;
0002d0  e3a01000          MOV      r1,#0
0002d4  e3a0244d          MOV      r2,#0x4d000000
0002d8  e582104c          STR      r1,[r2,#0x4c]
;;;95         break;
0002dc  ea0002bb          B        |L1.3536|

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -