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

📄 guidev_banding.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\guidev_banding.o --depend=.\Obj\guidev_banding.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\MemDev\GUIDEV_Banding.c]
                          THUMB

                          AREA ||i.GUI_MEMDEV_Draw||, CODE, READONLY, ALIGN=1

                  GUI_MEMDEV_Draw PROC
;;;75     */
;;;76     int GUI_MEMDEV_Draw(GUI_RECT* pRect, GUI_CALLBACK_VOID_P* pfDraw, void* pData, int NumLines, int Flags) {
000000  e92d4ff8          PUSH     {r3-r11,lr}
;;;77       int x0, y0, x1, y1, xsize, ysize;
;;;78       GUI_MEMDEV_Handle hMD;
;;;79       if (pRect) {
000004  f8dda028          LDR      r10,[sp,#0x28]
000008  0004              MOVS     r4,r0                 ;76
00000a  4688              MOV      r8,r1                 ;76
00000c  4693              MOV      r11,r2                ;76
00000e  461f              MOV      r7,r3                 ;76
000010  d021              BEQ      |L1.86|
;;;80         x0 = (pRect->x0 < 0) ? 0 : pRect->x0;
000012  2600              MOVS     r6,#0
000014  f9b41000          LDRSH    r1,[r4,#0]
000018  4630              MOV      r0,r6
00001a  2900              CMP      r1,#0
00001c  db00              BLT      |L1.32|
00001e  4608              MOV      r0,r1
                  |L1.32|
000020  4681              MOV      r9,r0
;;;81         y0 = (pRect->y0 < 0) ? 0 : pRect->y0;
000022  f9b40002          LDRSH    r0,[r4,#2]
000026  2800              CMP      r0,#0
000028  db00              BLT      |L1.44|
00002a  4606              MOV      r6,r0
                  |L1.44|
;;;82         #if GUI_NUM_LAYERS == 1
;;;83           x1 = _Min(pRect->x1, LCD_GET_XSIZE() - 1);
00002c  f7fffffe          BL       LCD_GetXSize
000030  1e41              SUBS     r1,r0,#1
000032  f9b40004          LDRSH    r0,[r4,#4]
000036  f7fffffe          BL       _Min
00003a  4605              MOV      r5,r0
;;;84           y1 = _Min(pRect->y1, LCD_GET_YSIZE() - 1);
00003c  f7fffffe          BL       LCD_GetYSize
000040  1e41              SUBS     r1,r0,#1
000042  f9b40006          LDRSH    r0,[r4,#6]
000046  f7fffffe          BL       _Min
;;;85         #else
;;;86           x1 = _Min(pRect->x1, LCD_GetXSizeEx(GUI_Context.SelLayer) - 1);
;;;87           y1 = _Min(pRect->y1, LCD_GetYSizeEx(GUI_Context.SelLayer) - 1);
;;;88         #endif
;;;89         xsize = x1 - x0 + 1;
00004a  eba50409          SUB      r4,r5,r9
00004e  1c64              ADDS     r4,r4,#1
;;;90         ysize = y1 - y0 + 1;
000050  1b85              SUBS     r5,r0,r6
000052  1c6d              ADDS     r5,r5,#1
000054  e008              B        |L1.104|
                  |L1.86|
;;;91       } else {
;;;92         x0 = 0;
000056  f04f0900          MOV      r9,#0
;;;93         y0 = 0;
00005a  464e              MOV      r6,r9
;;;94         #if GUI_NUM_LAYERS == 1
;;;95           xsize = LCD_GET_XSIZE();
00005c  f7fffffe          BL       LCD_GetXSize
000060  4604              MOV      r4,r0
;;;96           ysize = LCD_GET_YSIZE();
000062  f7fffffe          BL       LCD_GetYSize
000066  4605              MOV      r5,r0
                  |L1.104|
;;;97         #else
;;;98           xsize = LCD_GetXSizeEx(GUI_Context.SelLayer);
;;;99           ysize = LCD_GetYSizeEx(GUI_Context.SelLayer);
;;;100        #endif
;;;101      }
;;;102      if (NumLines == 0) {
000068  b907              CBNZ     r7,|L1.108|
;;;103        NumLines = -ysize;   /* Request <ysize> lines ... Less is o.k. */
00006a  426f              RSBS     r7,r5,#0
                  |L1.108|
;;;104      }
;;;105      if ((xsize <= 0) || (ysize <= 0))
00006c  2c00              CMP      r4,#0
00006e  dd01              BLE      |L1.116|
000070  2d00              CMP      r5,#0
000072  dc02              BGT      |L1.122|
                  |L1.116|
;;;106        return 0;           /* Nothing to do ... */
000074  2000              MOVS     r0,#0
                  |L1.118|
;;;107    /* Create memory device */
;;;108      hMD = GUI_MEMDEV_CreateEx(x0, y0, xsize, NumLines, Flags);
;;;109      if (!hMD) {
;;;110        GUI_DEBUG_ERROROUT("GUI_MEMDEV_Draw() Not enough memory ...");            /* Not enough memory ! */
;;;111        pfDraw(pData);
;;;112        return 1;
;;;113      }
;;;114      NumLines = GUI_MEMDEV_GetYSize(hMD);
;;;115      GUI_MEMDEV_Select(hMD);
;;;116    /* Start drawing ... */
;;;117      {
;;;118        int i;
;;;119        for (i = 0; i < ysize; i += NumLines) {
;;;120          int RemLines = ysize - i;
;;;121          if (RemLines < NumLines) {
;;;122            GUI_MEMDEV_ReduceYSize(hMD, RemLines);
;;;123          }
;;;124          if (i) {
;;;125            GUI_MEMDEV_SetOrg(hMD, x0, y0 + i);
;;;126            GUI_MEMDEV_Clear(hMD);
;;;127          }
;;;128          pfDraw(pData);
;;;129          GUI_MEMDEV_CopyToLCD(hMD);
;;;130        }
;;;131      }
;;;132      GUI_MEMDEV_Delete(hMD);
;;;133      GUI_MEMDEV_Select(0);
;;;134      return 0;             /* Success ! */
;;;135    }
000076  e8bd8ff8          POP      {r3-r11,pc}
                  |L1.122|
00007a  463b              MOV      r3,r7                 ;108
00007c  4622              MOV      r2,r4                 ;108
00007e  4631              MOV      r1,r6                 ;108
000080  4648              MOV      r0,r9                 ;108
000082  f8cda000          STR      r10,[sp,#0]           ;108
000086  f7fffffe          BL       GUI_MEMDEV_CreateEx
00008a  ea5f0a00          MOVS     r10,r0                ;108
00008e  d104              BNE      |L1.154|
000090  4658              MOV      r0,r11                ;111
000092  4641              MOV      r1,r8                 ;111
000094  4788              BLX      r1                    ;111
000096  2001              MOVS     r0,#1                 ;112
000098  e7ed              B        |L1.118|
                  |L1.154|
00009a  4650              MOV      r0,r10                ;114
00009c  f7fffffe          BL       GUI_MEMDEV_GetYSize
0000a0  4607              MOV      r7,r0                 ;114
0000a2  4650              MOV      r0,r10                ;115
0000a4  f7fffffe          BL       GUI_MEMDEV_Select
0000a8  2400              MOVS     r4,#0                 ;119
0000aa  e015              B        |L1.216|
                  |L1.172|
0000ac  1b29              SUBS     r1,r5,r4              ;120
0000ae  42b9              CMP      r1,r7                 ;121
0000b0  da02              BGE      |L1.184|
0000b2  4650              MOV      r0,r10                ;122
0000b4  f7fffffe          BL       GUI_MEMDEV_ReduceYSize
                  |L1.184|
0000b8  b13c              CBZ      r4,|L1.202|
0000ba  1932              ADDS     r2,r6,r4              ;125
0000bc  4649              MOV      r1,r9                 ;125
0000be  4650              MOV      r0,r10                ;125
0000c0  f7fffffe          BL       GUI_MEMDEV_SetOrg
0000c4  4650              MOV      r0,r10                ;126
0000c6  f7fffffe          BL       GUI_MEMDEV_Clear
                  |L1.202|
0000ca  4658              MOV      r0,r11                ;128
0000cc  4641              MOV      r1,r8                 ;128
0000ce  4788              BLX      r1                    ;128
0000d0  4650              MOV      r0,r10                ;129
0000d2  f7fffffe          BL       GUI_MEMDEV_CopyToLCD
0000d6  443c              ADD      r4,r4,r7              ;119
                  |L1.216|
0000d8  42ac              CMP      r4,r5                 ;119
0000da  dbe7              BLT      |L1.172|
0000dc  4650              MOV      r0,r10                ;132
0000de  f7fffffe          BL       GUI_MEMDEV_Delete
0000e2  2000              MOVS     r0,#0                 ;133
0000e4  f7fffffe          BL       GUI_MEMDEV_Select
0000e8  e7c4              B        |L1.116|
;;;136    
                          ENDP


                          AREA ||i._Min||, CODE, READONLY, ALIGN=1

                  _Min PROC
;;;53     */
;;;54     static int _Min(int v0, int v1) {
000000  4288              CMP      r0,r1
;;;55       if (v0 <= v1) {
000002  dd00              BLE      |L2.6|
;;;56         return v0;
;;;57       }
;;;58       return v1;
000004  4608              MOV      r0,r1
                  |L2.6|
;;;59     }
000006  4770              BX       lr
;;;60     
                          ENDP

⌨️ 快捷键说明

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