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

📄 guidev_usagebm.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 2 页
字号:
000036  4904              LDR      r1,|L4.72|
;;;237        pUsage->Public.UseCnt= 1;
000038  6081              STR      r1,[r0,#8]
00003a  2101              MOVS     r1,#1
00003c  8181              STRH     r1,[r0,#0xc]
;;;238        pUsage->Private.BytesPerLine= BytesPerLine;
;;;239        GUI_UNLOCK();
;;;240      }
;;;241      return hMem;
00003e  6105              STR      r5,[r0,#0x10]
000040  4620              MOV      r0,r4
                  |L4.66|
;;;242    }
000042  e8bd87f0          POP      {r4-r10,pc}
;;;243    
                          ENDP

000046  0000              DCW      0x0000
                  |L4.72|
                          DCD      ||.constdata||

                          AREA ||i.GUI_USAGE_BM_GetNextDirty||, CODE, READONLY, ALIGN=2

                  GUI_USAGE_BM_GetNextDirty PROC
;;;124    */
;;;125    static int GUI_USAGE_BM_GetNextDirty(GUI_USAGE* p, int *pxOff, int yOff) {
000000  b570              PUSH     {r4-r6,lr}
;;;126      int x = *pxOff;
;;;127      int xEnd;
;;;128      GUI_USAGE_BM * pThis = (GUI_USAGE_BM*)p;
;;;129      int xSize = pThis->Public.XSize;
;;;130      U8* pData = (U8*)(pThis+1);
;;;131      if (yOff >= pThis->Public.YSize) {
000002  f9b06006          LDRSH    r6,[r0,#6]
000006  f9b05004          LDRSH    r5,[r0,#4]            ;129
00000a  680b              LDR      r3,[r1,#0]
00000c  f1000414          ADD      r4,r0,#0x14           ;130
000010  4296              CMP      r6,r2
000012  dd14              BLE      |L5.62|
;;;132        return 0;
;;;133      }
;;;134      pData += yOff * pThis->Private.BytesPerLine;
000014  6900              LDR      r0,[r0,#0x10]
;;;135      pData += (x>>3);
;;;136      if (x>=xSize)
000016  42ab              CMP      r3,r5
000018  fb024000          MLA      r0,r2,r0,r4           ;134
00001c  eb0004e3          ADD      r4,r0,r3,ASR #3       ;135
000020  da0d              BGE      |L5.62|
;;;137        return 0;
;;;138      {
;;;139    /* Find first bit */
;;;140        int BytesLeft = ((xSize-1) >>3) - (x>>3);
000022  1e6d              SUBS     r5,r5,#1
000024  ea4f00e5          ASR      r0,r5,#3
000028  eba005e3          SUB      r5,r0,r3,ASR #3
;;;141        /* Check first byte */
;;;142        U8 Data = (*pData++) << (x&7);
00002c  f8140b01          LDRB     r0,[r4],#1
000030  f0030207          AND      r2,r3,#7
000034  fa00f002          LSL      r0,r0,r2
000038  b2c0              UXTB     r0,r0
;;;143        while (Data == 0) {
00003a  e008              B        |L5.78|
                  |L5.60|
;;;144          if (BytesLeft ==0)
00003c  b90d              CBNZ     r5,|L5.66|
                  |L5.62|
;;;145            return 0;
00003e  2000              MOVS     r0,#0
;;;146          Data = *pData++;
;;;147          BytesLeft--;
;;;148          x= (x+8) & ~7;
;;;149        }
;;;150        while ((Data&0x80) ==0) {
;;;151          Data<<=1;
;;;152          x++;
;;;153        }
;;;154    /* Find last cleared byte */
;;;155        if (Data != 0xff) {   /* This line is simply a speed-opt and may be eliminated */
;;;156          xEnd =x;
;;;157          while (Data&0x40) {
;;;158            Data<<=1;
;;;159            xEnd++;
;;;160          }
;;;161        } else {
;;;162          xEnd =x+7;
;;;163        }
;;;164        if ((xEnd&7) ==7) {
;;;165          while (--BytesLeft >= 0) {
;;;166            if ((Data = *pData++) == 0xff) {
;;;167              xEnd+=8;
;;;168            } else {
;;;169              while (Data&0x80) {
;;;170                Data<<=1;
;;;171                xEnd++;
;;;172              }
;;;173              break;
;;;174            }
;;;175          }
;;;176        }
;;;177    
;;;178      }
;;;179      *pxOff =x;
;;;180      return xEnd-x+1;
;;;181    }
000040  bd70              POP      {r4-r6,pc}
                  |L5.66|
000042  1e6d              SUBS     r5,r5,#1              ;147
000044  f8140b01          LDRB     r0,[r4],#1            ;146
000048  3308              ADDS     r3,r3,#8              ;148
00004a  f0230307          BIC      r3,r3,#7              ;148
                  |L5.78|
00004e  2800              CMP      r0,#0                 ;143
000050  d0f4              BEQ      |L5.60|
000052  e004              B        |L5.94|
                  |L5.84|
000054  ea4f6040          LSL      r0,r0,#25             ;151
000058  ea4f6010          LSR      r0,r0,#24             ;151
00005c  1c5b              ADDS     r3,r3,#1              ;152
                  |L5.94|
00005e  0602              LSLS     r2,r0,#24             ;150
000060  d5f8              BPL      |L5.84|
000062  28ff              CMP      r0,#0xff              ;155
000064  461a              MOV      r2,r3                 ;156
000066  d009              BEQ      |L5.124|
000068  e005              B        |L5.118|
00006a  bf00              NOP                            ;158
                  |L5.108|
00006c  ea4f6040          LSL      r0,r0,#25             ;158
000070  ea4f6010          LSR      r0,r0,#24             ;158
000074  1c52              ADDS     r2,r2,#1              ;159
                  |L5.118|
000076  0646              LSLS     r6,r0,#25             ;157
000078  d4f8              BMI      |L5.108|
00007a  e000              B        |L5.126|
                  |L5.124|
00007c  1dd2              ADDS     r2,r2,#7              ;162
                  |L5.126|
00007e  43d0              MVNS     r0,r2                 ;164
000080  0740              LSLS     r0,r0,#29             ;164
000082  d108              BNE      |L5.150|
000084  e005              B        |L5.146|
000086  bf00              NOP                            ;166
                  |L5.136|
000088  f8140b01          LDRB     r0,[r4],#1            ;166
00008c  28ff              CMP      r0,#0xff              ;166
00008e  d10c              BNE      |L5.170|
000090  3208              ADDS     r2,r2,#8              ;167
                  |L5.146|
000092  1e6d              SUBS     r5,r5,#1              ;165
000094  d5f8              BPL      |L5.136|
                  |L5.150|
000096  1ad0              SUBS     r0,r2,r3              ;180
000098  1c40              ADDS     r0,r0,#1              ;180
00009a  600b              STR      r3,[r1,#0]            ;180
00009c  bd70              POP      {r4-r6,pc}
00009e  bf00              NOP                            ;170
                  |L5.160|
0000a0  ea4f6040          LSL      r0,r0,#25             ;170
0000a4  ea4f6010          LSR      r0,r0,#24             ;170
0000a8  1c52              ADDS     r2,r2,#1              ;171
                  |L5.170|
0000aa  0604              LSLS     r4,r0,#24             ;169
0000ac  d4f8              BMI      |L5.160|
0000ae  e7f2              B        |L5.150|
;;;182    
                          ENDP


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

                  _GUI_USAGE_BM_Delete PROC
;;;186    */
;;;187    static void _GUI_USAGE_BM_Delete(GUI_MEMDEV_Handle hDevUsage) {
000000  f7ffbffe          B.W      GUI_ALLOC_Free
;;;188      GUI_ALLOC_Free(hDevUsage);
;;;189    }
;;;190    
                          ENDP


                          AREA ||.constdata||, DATA, READONLY, ALIGN=2

                  API
                          DCD      GUI_USAGE_BM_AddPixel
                          DCD      GUI_USAGE_BM_AddHLine
                          DCD      GUI_USAGE_BM_Clear
                          DCD      0x00000000
                          DCD      _GUI_USAGE_BM_Delete
                          DCD      GUI_USAGE_BM_GetNextDirty

⌨️ 快捷键说明

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