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

📄 lcddummy.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
; 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 + -