📄 lcddummy.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\lcddummy.o --depend=.\Obj\lcddummy.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\GUI\LCDDriver\LCDDummy.c]
THUMB
AREA ||i.DrawBitLine16BPP||, CODE, READONLY, ALIGN=2
DrawBitLine16BPP PROC
;;;368 #if (LCD_BITSPERPIXEL > 8)
;;;369 static void DrawBitLine16BPP(int x,int y,U16 const GUI_UNI_PTR * p,int xsize,const LCD_PIXELINDEX * pTrans)
000000 e92d41f0 PUSH {r4-r8,lr}
;;;370 {
000004 4606 MOV r6,r0
;;;371 LCD_PIXELINDEX pixel;
;;;372 if((GUI_Context.DrawMode&LCD_DRAWMODE_TRANS)==0)
000006 481f LDR r0,|L1.132|
000008 9f06 LDR r7,[sp,#0x18]
00000a 7b00 LDRB r0,[r0,#0xc] ; GUI_Context
00000c 4688 MOV r8,r1 ;370
00000e 4614 MOV r4,r2 ;370
000010 461d MOV r5,r3 ;370
000012 0780 LSLS r0,r0,#30
000014 d41a BMI |L1.76|
;;;373 {
;;;374 if(pTrans)
000016 b1b7 CBZ r7,|L1.70|
000018 e009 B |L1.46|
|L1.26|
;;;375 {
;;;376 for(;xsize>0;xsize--,x++,p++)
;;;377 {
;;;378 pixel = *p;
00001a 8820 LDRH r0,[r4,#0]
;;;379 LCD_L0_SetPixelIndex(x, y, *(pTrans + pixel));
00001c 4641 MOV r1,r8
00001e f8372010 LDRH r2,[r7,r0,LSL #1]
000022 4630 MOV r0,r6
000024 f7fffffe BL LCD_L0_SetPixelIndex
000028 1e6d SUBS r5,r5,#1 ;376
00002a 1c76 ADDS r6,r6,#1 ;376
00002c 1ca4 ADDS r4,r4,#2 ;376
|L1.46|
00002e 2d00 CMP r5,#0 ;376
000030 dcf3 BGT |L1.26|
|L1.50|
;;;380 }
;;;381 }
;;;382 else
;;;383 {
;;;384 for(;xsize>0;xsize--,x++,p++)
;;;385 {
;;;386 LCD_L0_SetPixelIndex(x, y, *p);
;;;387 }
;;;388 }
;;;389 }
;;;390 else
;;;391 {
;;;392 if(pTrans)
;;;393 {
;;;394 for(;xsize>0;xsize--,x++,p++)
;;;395 {
;;;396 pixel = *p;
;;;397 if(pixel)
;;;398 {
;;;399 LCD_L0_SetPixelIndex(x, y,*(pTrans+pixel));
;;;400 }
;;;401 }
;;;402 }
;;;403 else
;;;404 {
;;;405 for(;xsize>0;xsize--,x++,p++)
;;;406 {
;;;407 pixel = *p;
;;;408 if(pixel)
;;;409 {
;;;410 LCD_L0_SetPixelIndex(x, y,pixel);
;;;411 }
;;;412 }
;;;413 }
;;;414 }
;;;415 }
000032 e8bd81f0 POP {r4-r8,pc}
|L1.54|
000036 8822 LDRH r2,[r4,#0] ;386
000038 4641 MOV r1,r8 ;386
00003a 4630 MOV r0,r6 ;386
00003c f7fffffe BL LCD_L0_SetPixelIndex
000040 1e6d SUBS r5,r5,#1 ;384
000042 1c76 ADDS r6,r6,#1 ;384
000044 1ca4 ADDS r4,r4,#2 ;384
|L1.70|
000046 2d00 CMP r5,#0 ;384
000048 dcf5 BGT |L1.54|
00004a e7f2 B |L1.50|
|L1.76|
00004c b1bf CBZ r7,|L1.126|
00004e e00a B |L1.102|
|L1.80|
000050 8820 LDRH r0,[r4,#0] ;396
000052 b128 CBZ r0,|L1.96|
000054 f8372010 LDRH r2,[r7,r0,LSL #1] ;399
000058 4641 MOV r1,r8 ;399
00005a 4630 MOV r0,r6 ;399
00005c f7fffffe BL LCD_L0_SetPixelIndex
|L1.96|
000060 1e6d SUBS r5,r5,#1 ;394
000062 1c76 ADDS r6,r6,#1 ;394
000064 1ca4 ADDS r4,r4,#2 ;394
|L1.102|
000066 2d00 CMP r5,#0 ;394
000068 dcf2 BGT |L1.80|
00006a e7e2 B |L1.50|
|L1.108|
00006c 8822 LDRH r2,[r4,#0] ;407
00006e b11a CBZ r2,|L1.120|
000070 4641 MOV r1,r8 ;410
000072 4630 MOV r0,r6 ;410
000074 f7fffffe BL LCD_L0_SetPixelIndex
|L1.120|
000078 1e6d SUBS r5,r5,#1 ;405
00007a 1c76 ADDS r6,r6,#1 ;405
00007c 1ca4 ADDS r4,r4,#2 ;405
|L1.126|
00007e 2d00 CMP r5,#0 ;405
000080 dcf4 BGT |L1.108|
000082 e7d6 B |L1.50|
;;;416 #endif
ENDP
|L1.132|
DCD GUI_Context
AREA ||i.LCD_L0_DrawBitmap||, CODE, READONLY, ALIGN=1
LCD_L0_DrawBitmap PROC
;;;529 */
;;;530 void LCD_L0_DrawBitmap(int x0, int y0,
000000 e92d5ffc PUSH {r2-r12,lr}
;;;531 int xsize, int ysize,
;;;532 int BitsPerPixel,
;;;533 int BytesPerLine,
;;;534 const U8 GUI_UNI_PTR * pData, int Diff,
;;;535 const LCD_PIXELINDEX* pTrans)
;;;536 {
;;;537 int i;
;;;538 /* Use _DrawBitLineXBPP */
;;;539 for (i=0; i<ysize; i++) {
000004 e9dd890c LDRD r8,r9,[sp,#0x30]
000008 4682 MOV r10,r0 ;536
00000a 460d MOV r5,r1 ;536
00000c 4693 MOV r11,r2 ;536
00000e 461f MOV r7,r3 ;536
000010 2400 MOVS r4,#0
000012 9e0e LDR r6,[sp,#0x38]
000014 e020 B |L2.88|
|L2.22|
;;;540 switch (BitsPerPixel) {
000016 4640 MOV r0,r8
000018 f1b80f04 CMP r8,#4
00001c d02a BEQ |L2.116|
00001e dc0d BGT |L2.60|
000020 2801 CMP r0,#1
000022 d01d BEQ |L2.96|
000024 2802 CMP r0,#2
000026 d115 BNE |L2.84|
;;;541 case 1:
;;;542 _DrawBitLine1BPP(x0, i + y0, pData, Diff, xsize, pTrans);
;;;543 break;
;;;544 #if (LCD_MAX_LOG_COLORS > 2)
;;;545 case 2:
;;;546 _DrawBitLine2BPP(x0, i + y0, pData, Diff, xsize, pTrans);
000028 9b10 LDR r3,[sp,#0x40]
00002a 1961 ADDS r1,r4,r5
00002c e9cdb300 STRD r11,r3,[sp,#0]
000030 4632 MOV r2,r6
000032 4650 MOV r0,r10
000034 9b0f LDR r3,[sp,#0x3c]
000036 f7fffffe BL _DrawBitLine2BPP
;;;547 break;
00003a e00b B |L2.84|
|L2.60|
00003c 2808 CMP r0,#8 ;540
00003e d023 BEQ |L2.136|
000040 2810 CMP r0,#0x10 ;540
000042 d107 BNE |L2.84|
;;;548 #endif
;;;549 #if (LCD_MAX_LOG_COLORS > 4)
;;;550 case 4:
;;;551 _DrawBitLine4BPP(x0, i + y0, pData, Diff, xsize, pTrans);
;;;552 break;
;;;553 #endif
;;;554 #if (LCD_MAX_LOG_COLORS > 16)
;;;555 case 8:
;;;556 _DrawBitLine8BPP(x0, i + y0, pData, xsize, pTrans);
;;;557 break;
;;;558 #endif
;;;559 #if (LCD_BITSPERPIXEL > 8)
;;;560 case 16:
;;;561 DrawBitLine16BPP(x0, i + y0, (const U16 *)pData, xsize, pTrans);
000044 9b10 LDR r3,[sp,#0x40]
000046 9300 STR r3,[sp,#0]
000048 1961 ADDS r1,r4,r5
00004a 465b MOV r3,r11
00004c 4632 MOV r2,r6
00004e 4650 MOV r0,r10
000050 f7fffffe BL DrawBitLine16BPP
|L2.84|
;;;562 break;
;;;563 #endif
;;;564 }
;;;565 pData += BytesPerLine;
000054 444e ADD r6,r6,r9
000056 1c64 ADDS r4,r4,#1 ;539
|L2.88|
000058 42bc CMP r4,r7 ;539
00005a dbdc BLT |L2.22|
;;;566 }
;;;567 }
00005c e8bd9ffc POP {r2-r12,pc}
|L2.96|
000060 9b10 LDR r3,[sp,#0x40] ;542
000062 1961 ADDS r1,r4,r5 ;542
000064 e9cdb300 STRD r11,r3,[sp,#0] ;542
000068 4632 MOV r2,r6 ;542
00006a 4650 MOV r0,r10 ;542
00006c 9b0f LDR r3,[sp,#0x3c] ;542
00006e f7fffffe BL _DrawBitLine1BPP
000072 e7ef B |L2.84|
|L2.116|
000074 9b10 LDR r3,[sp,#0x40] ;551
000076 1961 ADDS r1,r4,r5 ;551
000078 e9cdb300 STRD r11,r3,[sp,#0] ;551
00007c 4632 MOV r2,r6 ;551
00007e 4650 MOV r0,r10 ;551
000080 9b0f LDR r3,[sp,#0x3c] ;551
000082 f7fffffe BL _DrawBitLine4BPP
000086 e7e5 B |L2.84|
|L2.136|
000088 9b10 LDR r3,[sp,#0x40] ;556
00008a 9300 STR r3,[sp,#0] ;556
00008c 1961 ADDS r1,r4,r5 ;556
00008e 465b MOV r3,r11 ;556
000090 4632 MOV r2,r6 ;556
000092 4650 MOV r0,r10 ;556
000094 f7fffffe BL _DrawBitLine8BPP
000098 e7dc B |L2.84|
;;;568
ENDP
AREA ||i.LCD_L0_DrawHLine||, CODE, READONLY, ALIGN=2
LCD_L0_DrawHLine PROC
;;;473 */
;;;474 void LCD_L0_DrawHLine(int x0,int y,int x1)
000000 e92d41f0 PUSH {r4-r8,lr}
;;;475 {
;;;476 if(GUI_Context.DrawMode&LCD_DRAWMODE_XOR)
000004 4e0c LDR r6,|L3.56|
000006 4604 MOV r4,r0 ;475
000008 7b30 LDRB r0,[r6,#0xc] ; GUI_Context
00000a 460f MOV r7,r1 ;475
00000c 4615 MOV r5,r2 ;475
00000e 07c0 LSLS r0,r0,#31
000010 d00f BEQ |L3.50|
000012 e004 B |L3.30|
|L3.20|
;;;477 {
;;;478 for(;x0<=x1;x0++)
;;;479 {
;;;480 LCD_L0_XorPixel(x0,y);
000014 4639 MOV r1,r7
000016 4620 MOV r0,r4
000018 f7fffffe BL LCD_L0_XorPixel
00001c 1c64 ADDS r4,r4,#1 ;478
|L3.30|
00001e 42ac CMP r4,r5 ;478
000020 ddf8 BLE |L3.20|
|L3.34|
;;;481 }
;;;482 }
;;;483 else
;;;484 {
;;;485 for(;x0<=x1;x0++)
;;;486 {
;;;487 LCD_L0_SetPixelIndex(x0, y, LCD_COLORINDEX);
;;;488 }
;;;489 }
;;;490 }
000022 e8bd81f0 POP {r4-r8,pc}
|L3.38|
000026 8872 LDRH r2,[r6,#2] ;487 ; GUI_Context
000028 4639 MOV r1,r7 ;487
00002a 4620 MOV r0,r4 ;487
00002c f7fffffe BL LCD_L0_SetPixelIndex
000030 1c64 ADDS r4,r4,#1 ;485
|L3.50|
000032 42ac CMP r4,r5 ;485
000034 ddf7 BLE |L3.38|
000036 e7f4 B |L3.34|
;;;491
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -