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

📄 guidev_measure.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 2 页
字号:
                          AREA ||i._FillPolygon||, CODE, READONLY, ALIGN=1

                  _FillPolygon PROC
;;;235    */
;;;236    static void _FillPolygon(const GUI_POINT* paPoint, int NumPoints, int x0, int y0) {
000000  b57c              PUSH     {r2-r6,lr}
000002  4614              MOV      r4,r2
;;;237      GUI_RECT r;
;;;238      _CalcPolyRect(&r, paPoint, NumPoints);
000004  460a              MOV      r2,r1
000006  4601              MOV      r1,r0
000008  461d              MOV      r5,r3                 ;236
00000a  4668              MOV      r0,sp
00000c  f7fffffe          BL       _CalcPolyRect
;;;239      GUI_MoveRect(&r, x0, y0);
000010  462a              MOV      r2,r5
000012  4621              MOV      r1,r4
000014  4668              MOV      r0,sp
000016  f7fffffe          BL       GUI_MoveRect
;;;240      _MarkRect(r.x0, r.y0, r.x1, r.y1);
00001a  f9bd3006          LDRSH    r3,[sp,#6]
00001e  f9bd2004          LDRSH    r2,[sp,#4]
000022  f9bd1002          LDRSH    r1,[sp,#2]
000026  f9bd0000          LDRSH    r0,[sp,#0]
00002a  f7fffffe          BL       _MarkRect
;;;241    }
00002e  bd7c              POP      {r2-r6,pc}
;;;242    
                          ENDP


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

                  _FillPolygonAA PROC
;;;246    */
;;;247    static void _FillPolygonAA(const GUI_POINT* paPoint, int NumPoints, int x0, int y0) {
000000  b57c              PUSH     {r2-r6,lr}
000002  4614              MOV      r4,r2
;;;248      #if GUI_SUPPORT_AA
;;;249        GUI_RECT r;
;;;250        _CalcPolyRect(&r, paPoint, NumPoints);
000004  460a              MOV      r2,r1
000006  4601              MOV      r1,r0
000008  461d              MOV      r5,r3                 ;247
00000a  4668              MOV      r0,sp
00000c  f7fffffe          BL       _CalcPolyRect
;;;251        GUI_MoveRect(&r, x0, y0);
000010  462a              MOV      r2,r5
000012  4621              MOV      r1,r4
000014  4668              MOV      r0,sp
000016  f7fffffe          BL       GUI_MoveRect
;;;252        if (GUI_Context.AA_HiResEnable) {
00001a  4816              LDR      r0,|L12.116|
00001c  f890105d          LDRB     r1,[r0,#0x5d]  ; GUI_Context
000020  b1e9              CBZ      r1,|L12.94|
;;;253          r.x0 /= GUI_Context.AA_Factor;
000022  f9bd1000          LDRSH    r1,[sp,#0]
000026  f890005c          LDRB     r0,[r0,#0x5c]  ; GUI_Context
00002a  fb91f1f0          SDIV     r1,r1,r0
00002e  f8ad1000          STRH     r1,[sp,#0]
;;;254          r.y0 /= GUI_Context.AA_Factor;
000032  f9bd1002          LDRSH    r1,[sp,#2]
000036  fb91f1f0          SDIV     r1,r1,r0
00003a  f8ad1002          STRH     r1,[sp,#2]
;;;255          r.x1 = (r.x1 + GUI_Context.AA_Factor - 1) / GUI_Context.AA_Factor;
00003e  f9bd1004          LDRSH    r1,[sp,#4]
000042  4401              ADD      r1,r1,r0
000044  1e49              SUBS     r1,r1,#1
000046  fb91f1f0          SDIV     r1,r1,r0
00004a  f8ad1004          STRH     r1,[sp,#4]
;;;256          r.y1 = (r.y1 + GUI_Context.AA_Factor - 1) / GUI_Context.AA_Factor;
00004e  f9bd1006          LDRSH    r1,[sp,#6]
000052  4401              ADD      r1,r1,r0
000054  1e49              SUBS     r1,r1,#1
000056  fb91f0f0          SDIV     r0,r1,r0
00005a  f8ad0006          STRH     r0,[sp,#6]
                  |L12.94|
;;;257        }
;;;258        _MarkRect(r.x0, r.y0, r.x1, r.y1);
00005e  f9bd3006          LDRSH    r3,[sp,#6]
000062  f9bd2004          LDRSH    r2,[sp,#4]
000066  f9bd1002          LDRSH    r1,[sp,#2]
00006a  f9bd0000          LDRSH    r0,[sp,#0]
00006e  f7fffffe          BL       _MarkRect
;;;259      #else
;;;260        GUI_USE_PARA(paPoint);
;;;261        GUI_USE_PARA(NumPoints);
;;;262        GUI_USE_PARA(x0);
;;;263        GUI_USE_PARA(y0);
;;;264      #endif
;;;265    }
000072  bd7c              POP      {r2-r6,pc}
;;;266    
                          ENDP

                  |L12.116|
                          DCD      GUI_Context

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

                  _FillRect PROC
;;;161    */
;;;162    static void _FillRect(int x0, int y0, int x1, int y1) {
000000  f7ffbffe          B.W      _MarkRect
;;;163      _MarkRect(x0, y0, x1, y1);
;;;164    }
;;;165    
                          ENDP


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

                  _GetIndexMask PROC
;;;196    */
;;;197    static unsigned int _GetIndexMask(void) {
000000  b510              PUSH     {r4,lr}
;;;198      GUI_MEASDEV* pDev = GUI_MEASDEV_H2P(GUI_Context.hDevData);
000002  4804              LDR      r0,|L14.20|
000004  f9b0004c          LDRSH    r0,[r0,#0x4c]  ; GUI_Context
000008  f7fffffe          BL       GUI_ALLOC_h2p
;;;199      return pDev->pfGetIndexMask();
00000c  6900              LDR      r0,[r0,#0x10]
00000e  e8bd4010          POP      {r4,lr}
000012  4700              BX       r0
;;;200    }
;;;201    
                          ENDP

                  |L14.20|
                          DCD      GUI_Context

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

                  _GetPixelIndex PROC
;;;151    */
;;;152    static unsigned int _GetPixelIndex(int x, int y) { 
000000  2000              MOVS     r0,#0
;;;153      GUI_USE_PARA(x);
;;;154      GUI_USE_PARA(y);
;;;155      return 0;
;;;156    }
000002  4770              BX       lr
;;;157    
                          ENDP


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

                  _GetRect PROC
;;;169    */
;;;170    static void _GetRect(LCD_RECT* pRect) {
000000  f24f0101          MOV      r1,#0xf001
;;;171      pRect->x0 = pRect->y0 = -4095;
000004  8041              STRH     r1,[r0,#2]
000006  8001              STRH     r1,[r0,#0]
;;;172      pRect->x1 = pRect->y1 =  4095;
000008  f64071ff          MOV      r1,#0xfff
00000c  80c1              STRH     r1,[r0,#6]
00000e  8081              STRH     r1,[r0,#4]
;;;173    }
000010  4770              BX       lr
;;;174    
                          ENDP


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

                  _Index2Color PROC
;;;187    */
;;;188    static LCD_COLOR _Index2Color(int Index) {
000000  b510              PUSH     {r4,lr}
000002  4604              MOV      r4,r0
;;;189      GUI_MEASDEV* pDev = GUI_MEASDEV_H2P(GUI_Context.hDevData);
000004  4804              LDR      r0,|L17.24|
000006  f9b0004c          LDRSH    r0,[r0,#0x4c]  ; GUI_Context
00000a  f7fffffe          BL       GUI_ALLOC_h2p
;;;190      return pDev->pfIndex2Color(Index);
00000e  68c1              LDR      r1,[r0,#0xc]
000010  4620              MOV      r0,r4
000012  e8bd4010          POP      {r4,lr}
000016  4708              BX       r1
;;;191    }
;;;192    
                          ENDP

                  |L17.24|
                          DCD      GUI_Context

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

                  _MarkPixel PROC
;;;69     */
;;;70     static void _MarkPixel(int x, int y) {
000000  b570              PUSH     {r4-r6,lr}
000002  4604              MOV      r4,r0
;;;71       GUI_MEASDEV* pDev = (GUI_MEASDEV*)(GUI_MEMDEV_H2P(GUI_Context.hDevData));
000004  480e              LDR      r0,|L18.64|
000006  460d              MOV      r5,r1                 ;70
000008  f9b0004c          LDRSH    r0,[r0,#0x4c]  ; GUI_Context
00000c  f7fffffe          BL       GUI_ALLOC_h2p
;;;72       if (x < pDev->rUsed.x0)
000010  f9b02000          LDRSH    r2,[r0,#0]
;;;73         pDev->rUsed.x0 = x;
000014  b221              SXTH     r1,r4
000016  42a2              CMP      r2,r4                 ;72
000018  dd00              BLE      |L18.28|
00001a  8001              STRH     r1,[r0,#0]
                  |L18.28|
;;;74       if (x > pDev->rUsed.x1)
00001c  f9b02004          LDRSH    r2,[r0,#4]
000020  42a2              CMP      r2,r4
000022  da00              BGE      |L18.38|
;;;75         pDev->rUsed.x1 = x;
000024  8081              STRH     r1,[r0,#4]
                  |L18.38|
;;;76       if (y < pDev->rUsed.y0)
000026  f9b02002          LDRSH    r2,[r0,#2]
;;;77         pDev->rUsed.y0 = y;
00002a  b229              SXTH     r1,r5
00002c  42aa              CMP      r2,r5                 ;76
00002e  dd00              BLE      |L18.50|
000030  8041              STRH     r1,[r0,#2]
                  |L18.50|
;;;78       if (y > pDev->rUsed.y1)
000032  f9b02006          LDRSH    r2,[r0,#6]
000036  42aa              CMP      r2,r5
000038  da00              BGE      |L18.60|
;;;79         pDev->rUsed.y1 = y;
00003a  80c1              STRH     r1,[r0,#6]
                  |L18.60|
;;;80     }
00003c  bd70              POP      {r4-r6,pc}
;;;81     
                          ENDP

00003e  0000              DCW      0x0000
                  |L18.64|
                          DCD      GUI_Context

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

                  _MarkRect PROC
;;;85     */
;;;86     static void _MarkRect(int x0, int y0, int x1, int y1) {
000000  e92d41f0          PUSH     {r4-r8,lr}
000004  4605              MOV      r5,r0
;;;87       GUI_MEASDEV* pDev = (GUI_MEASDEV*)(GUI_MEMDEV_H2P(GUI_Context.hDevData));
000006  480f              LDR      r0,|L19.68|
000008  460f              MOV      r7,r1                 ;86
00000a  4616              MOV      r6,r2                 ;86
00000c  461c              MOV      r4,r3                 ;86
00000e  f9b0004c          LDRSH    r0,[r0,#0x4c]  ; GUI_Context
000012  f7fffffe          BL       GUI_ALLOC_h2p
;;;88       if (x0 < pDev->rUsed.x0)
000016  f9b01000          LDRSH    r1,[r0,#0]
00001a  42a9              CMP      r1,r5
00001c  dd00              BLE      |L19.32|
;;;89         pDev->rUsed.x0 = x0;
00001e  8005              STRH     r5,[r0,#0]
                  |L19.32|
;;;90       if (x1 > pDev->rUsed.x1)
000020  f9b01004          LDRSH    r1,[r0,#4]
000024  42b1              CMP      r1,r6
000026  da00              BGE      |L19.42|
;;;91         pDev->rUsed.x1 = x1;
000028  8086              STRH     r6,[r0,#4]
                  |L19.42|
;;;92       if (y1 < pDev->rUsed.y0)
00002a  f9b01002          LDRSH    r1,[r0,#2]
00002e  42a1              CMP      r1,r4
000030  dd00              BLE      |L19.52|
;;;93         pDev->rUsed.y0 = y0;
000032  8047              STRH     r7,[r0,#2]
                  |L19.52|
;;;94       if (y1 > pDev->rUsed.y1)
000034  f9b01006          LDRSH    r1,[r0,#6]
000038  42a1              CMP      r1,r4
00003a  da00              BGE      |L19.62|
;;;95         pDev->rUsed.y1 = y1;
00003c  80c4              STRH     r4,[r0,#6]
                  |L19.62|
;;;96     }
00003e  e8bd81f0          POP      {r4-r8,pc}
;;;97     
                          ENDP

000042  0000              DCW      0x0000
                  |L19.68|
                          DCD      GUI_Context

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

                  _SetPixelIndex PROC
;;;134    */
;;;135    static void _SetPixelIndex(int x, int y, int Index) {
000000  f7ffbffe          B.W      _MarkPixel
;;;136      GUI_USE_PARA(Index);
;;;137      _MarkPixel(x, y);
;;;138    }
;;;139    
                          ENDP


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

                  _XorPixel PROC
;;;143    */
;;;144    static void _XorPixel(int x, int y) {
000000  f7ffbffe          B.W      _MarkPixel
;;;145      _MarkPixel(x, y);
;;;146    }
;;;147    
                          ENDP


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

                  _APIList
                          DCD      _Color2Index
                          DCD      _Index2Color
                          DCD      _GetIndexMask
                          DCD      _DrawBitmap
                          DCD      _DrawHLine
                          DCD      _DrawVLine
                          DCD      _FillRect
                          DCD      _GetPixelIndex
                          DCD      _GetRect
                          DCD      _SetPixelIndex
                          DCD      _XorPixel
                          DCD      0x00000000
                          DCD      _FillPolygon
                          DCD      _FillPolygonAA
                          DCD      0x00000000
                          DCD      0x00000000

⌨️ 快捷键说明

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