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

📄 guidev_measure.txt

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

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

                  GUI_MEASDEV_ClearRect PROC
;;;309    */
;;;310    void GUI_MEASDEV_ClearRect(GUI_MEASDEV_Handle hMemDev) {
000000  b510              PUSH     {r4,lr}
;;;311      if (hMemDev) {
000002  2800              CMP      r0,#0
000004  d008              BEQ      |L1.24|
;;;312        GUI_MEASDEV* pDevData;
;;;313        GUI_LOCK();
;;;314        pDevData = (GUI_MEASDEV*)GUI_ALLOC_h2p(hMemDev);
000006  f7fffffe          BL       GUI_ALLOC_h2p
;;;315        pDevData->rUsed.x0 = GUI_XMAX;
00000a  f64071ff          MOV      r1,#0xfff
00000e  8001              STRH     r1,[r0,#0]
;;;316        pDevData->rUsed.y0 = GUI_YMAX;
000010  8041              STRH     r1,[r0,#2]
;;;317        pDevData->rUsed.x1 = GUI_XMIN;
000012  4249              RSBS     r1,r1,#0
000014  8081              STRH     r1,[r0,#4]
;;;318        pDevData->rUsed.y1 = GUI_YMIN;
000016  80c1              STRH     r1,[r0,#6]
                  |L1.24|
;;;319        GUI_UNLOCK();
;;;320      } 
;;;321    }
000018  bd10              POP      {r4,pc}
;;;322    
                          ENDP


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

                  GUI_MEASDEV_Create PROC
;;;326    */
;;;327    GUI_MEASDEV_Handle GUI_MEASDEV_Create(void) {
000000  b510              PUSH     {r4,lr}
;;;328      int MemSize;
;;;329      GUI_MEASDEV_Handle hMemDev;
;;;330      MemSize = sizeof(GUI_MEASDEV);
;;;331      hMemDev = GUI_ALLOC_AllocZero(MemSize);
000002  2014              MOVS     r0,#0x14
000004  f7fffffe          BL       GUI_ALLOC_AllocZero
000008  0004              MOVS     r4,r0
;;;332      if (hMemDev) {
00000a  d00d              BEQ      |L2.40|
;;;333        GUI_MEASDEV* pDevData;
;;;334        GUI_LOCK();
;;;335        pDevData = (GUI_MEASDEV*)GUI_ALLOC_h2p(hMemDev);
00000c  4620              MOV      r0,r4
00000e  f7fffffe          BL       GUI_ALLOC_h2p
;;;336        pDevData->pfColor2Index = GUI_Context.pDeviceAPI->pfColor2Index;    
000012  4a06              LDR      r2,|L2.44|
000014  4601              MOV      r1,r0                 ;335
000016  6c90              LDR      r0,[r2,#0x48]  ; GUI_Context
000018  6803              LDR      r3,[r0,#0]
;;;337        pDevData->pfIndex2Color = GUI_Context.pDeviceAPI->pfIndex2Color;
00001a  608b              STR      r3,[r1,#8]
00001c  6c90              LDR      r0,[r2,#0x48]  ; GUI_Context
00001e  6842              LDR      r2,[r0,#4]
;;;338        GUI_MEASDEV_ClearRect(hMemDev);
000020  4620              MOV      r0,r4
000022  60ca              STR      r2,[r1,#0xc]
000024  f7fffffe          BL       GUI_MEASDEV_ClearRect
                  |L2.40|
;;;339        GUI_UNLOCK();
;;;340      } else {
;;;341        GUI_DEBUG_WARN("GUI_MEASDEV_Create: Alloc failed");
;;;342      }
;;;343      return hMemDev;
000028  4620              MOV      r0,r4
;;;344    }
00002a  bd10              POP      {r4,pc}
;;;345    
                          ENDP

                  |L2.44|
                          DCD      GUI_Context

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

                  GUI_MEASDEV_Delete PROC
;;;297    */
;;;298    void GUI_MEASDEV_Delete(GUI_MEASDEV_Handle hMemDev) {
000000  b510              PUSH     {r4,lr}
000002  0004              MOVS     r4,r0
;;;299      /* Make sure memory device is not used */
;;;300      if ((GUI_Context.hDevData = hMemDev) != 0) {
000004  4805              LDR      r0,|L3.28|
000006  f8a0404c          STRH     r4,[r0,#0x4c]
00000a  d001              BEQ      |L3.16|
;;;301    	  GUI_SelectLCD();
00000c  f7fffffe          BL       GUI_SelectLCD
                  |L3.16|
;;;302      }
;;;303      GUI_ALLOC_Free(hMemDev);
000010  4620              MOV      r0,r4
000012  e8bd4010          POP      {r4,lr}
000016  f7ffbffe          B.W      GUI_ALLOC_Free
;;;304    }
;;;305    
                          ENDP

00001a  0000              DCW      0x0000
                  |L3.28|
                          DCD      GUI_Context

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

                  GUI_MEASDEV_GetRect PROC
;;;367    */
;;;368    void GUI_MEASDEV_GetRect(GUI_MEASDEV_Handle hMem, GUI_RECT* pRect) {
000000  b510              PUSH     {r4,lr}
000002  460c              MOV      r4,r1
;;;369      if (hMem) {
000004  2800              CMP      r0,#0
000006  d00b              BEQ      |L4.32|
;;;370        GUI_MEASDEV* pDev;
;;;371        GUI_LOCK();
;;;372        pDev = (GUI_MEASDEV*)GUI_ALLOC_h2p(hMem);
000008  f7fffffe          BL       GUI_ALLOC_h2p
;;;373        if (pRect) {
00000c  2c00              CMP      r4,#0
00000e  d007              BEQ      |L4.32|
;;;374          pRect->x0 = pDev->rUsed.x0;
000010  8801              LDRH     r1,[r0,#0]
000012  8021              STRH     r1,[r4,#0]
;;;375          pRect->y0 = pDev->rUsed.y0;
000014  8841              LDRH     r1,[r0,#2]
000016  8061              STRH     r1,[r4,#2]
;;;376          pRect->x1 = pDev->rUsed.x1;
000018  8881              LDRH     r1,[r0,#4]
00001a  80a1              STRH     r1,[r4,#4]
;;;377          pRect->y1 = pDev->rUsed.y1;
00001c  88c0              LDRH     r0,[r0,#6]
00001e  80e0              STRH     r0,[r4,#6]
                  |L4.32|
;;;378        }
;;;379        GUI_UNLOCK();
;;;380      }
;;;381    }
000020  bd10              POP      {r4,pc}
;;;382    
                          ENDP


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

                  GUI_MEASDEV_Select PROC
;;;349    */
;;;350    void GUI_MEASDEV_Select(GUI_MEASDEV_Handle hMem) {
000000  b510              PUSH     {r4,lr}
000002  0004              MOVS     r4,r0
;;;351      if (hMem == 0) {
000004  d103              BNE      |L5.14|
;;;352        GUI_SelectLCD();
000006  e8bd4010          POP      {r4,lr}
00000a  f7ffbffe          B.W      GUI_SelectLCD
                  |L5.14|
;;;353      } else {
;;;354        #if GUI_WINSUPPORT
;;;355          WM_Deactivate();
00000e  f7fffffe          BL       WM_Deactivate
;;;356        #endif
;;;357        GUI_Context.hDevData     = hMem;
000012  4805              LDR      r0,|L5.40|
;;;358        GUI_Context.pDeviceAPI   = &_APIList;
000014  4905              LDR      r1,|L5.44|
000016  f8a0404c          STRH     r4,[r0,#0x4c]         ;357
;;;359        GUI_Context.pClipRect_HL = NULL;
00001a  6481              STR      r1,[r0,#0x48]  ; GUI_Context
00001c  2100              MOVS     r1,#0
;;;360        LCD_SetClipRectMax();
00001e  6101              STR      r1,[r0,#0x10]  ; GUI_Context
000020  e8bd4010          POP      {r4,lr}
000024  f7ffbffe          B.W      LCD_SetClipRectMax
;;;361      }
;;;362    }
;;;363    
                          ENDP

                  |L5.40|
                          DCD      GUI_Context
                  |L5.44|
                          DCD      ||.constdata||

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

                  _CalcPolyRect PROC
;;;205    */
;;;206    static void _CalcPolyRect(GUI_RECT *pr, const GUI_POINT* paPoint, int NumPoints) {
000000  b5f0              PUSH     {r4-r7,lr}
;;;207      int i;
;;;208      int xMin, xMax, yMin, yMax;
;;;209      xMin = GUI_XMAX;
000002  f64076ff          MOV      r6,#0xfff
;;;210      yMin = GUI_YMAX;
;;;211      xMax = GUI_XMIN;
000006  f1c60c00          RSB      r12,r6,#0
00000a  4637              MOV      r7,r6                 ;210
;;;212      yMax = GUI_YMIN;
00000c  46e6              MOV      lr,r12
;;;213      for (i = 0; i  <NumPoints; i++) {
00000e  2500              MOVS     r5,#0
000010  e012              B        |L6.56|
;;;214        int x = paPoint->x;
000012  bf00              NOP      
                  |L6.20|
000014  f9b13000          LDRSH    r3,[r1,#0]
;;;215        int y = paPoint->y;
000018  f9b14002          LDRSH    r4,[r1,#2]
;;;216        if (xMin > x)
00001c  429e              CMP      r6,r3
00001e  dd00              BLE      |L6.34|
;;;217          xMin = x;
000020  461e              MOV      r6,r3
                  |L6.34|
;;;218        if (xMax < x)
000022  459c              CMP      r12,r3
000024  da00              BGE      |L6.40|
;;;219          xMax = x;
000026  469c              MOV      r12,r3
                  |L6.40|
;;;220        if (yMin > y)
000028  42a7              CMP      r7,r4
00002a  dd00              BLE      |L6.46|
;;;221          yMin = y;
00002c  4627              MOV      r7,r4
                  |L6.46|
;;;222        if (yMax < y)
00002e  45a6              CMP      lr,r4
000030  da00              BGE      |L6.52|
;;;223          yMax = y;
000032  46a6              MOV      lr,r4
                  |L6.52|
;;;224        paPoint++;
000034  1d09              ADDS     r1,r1,#4
000036  1c6d              ADDS     r5,r5,#1              ;213
                  |L6.56|
000038  4295              CMP      r5,r2                 ;213
00003a  dbeb              BLT      |L6.20|
;;;225      }
;;;226      pr->x0 = xMin;
00003c  8006              STRH     r6,[r0,#0]
;;;227      pr->x1 = xMax;
00003e  f8a0c004          STRH     r12,[r0,#4]
;;;228      pr->y0 = yMin;
000042  8047              STRH     r7,[r0,#2]
;;;229      pr->y1 = yMax;
000044  f8a0e006          STRH     lr,[r0,#6]
;;;230    }
000048  bdf0              POP      {r4-r7,pc}
;;;231    
                          ENDP


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

                  _Color2Index PROC
;;;178    */
;;;179    static unsigned int _Color2Index(LCD_COLOR Color) {
000000  b510              PUSH     {r4,lr}
000002  4604              MOV      r4,r0
;;;180      GUI_MEASDEV* pDev = GUI_MEASDEV_H2P(GUI_Context.hDevData);
000004  4804              LDR      r0,|L7.24|
000006  f9b0004c          LDRSH    r0,[r0,#0x4c]  ; GUI_Context
00000a  f7fffffe          BL       GUI_ALLOC_h2p
;;;181      return pDev->pfColor2Index(Color);
00000e  6881              LDR      r1,[r0,#8]
000010  4620              MOV      r0,r4
000012  e8bd4010          POP      {r4,lr}
000016  4708              BX       r1
;;;182    }
;;;183    
                          ENDP

                  |L7.24|
                          DCD      GUI_Context

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

                  _DrawBitmap PROC
;;;101    */
;;;102    static void _DrawBitmap(int x0, int y0, int xsize, int ysize,
000000  440b              ADD      r3,r3,r1
;;;103                           int BitsPerPixel, int BytesPerLine,
;;;104                           const U8 GUI_UNI_PTR * pData, int Diff,
;;;105                           const LCD_PIXELINDEX* pTrans)
;;;106    {
;;;107      GUI_USE_PARA(BitsPerPixel);
;;;108      GUI_USE_PARA(BytesPerLine);
;;;109      GUI_USE_PARA(pData);
;;;110      GUI_USE_PARA(Diff);
;;;111      GUI_USE_PARA(pTrans);
;;;112      _MarkRect(x0, y0, x0 + xsize - 1, y0 + ysize - 1);
000002  1e5b              SUBS     r3,r3,#1
000004  4402              ADD      r2,r2,r0
000006  1e52              SUBS     r2,r2,#1
000008  f7ffbffe          B.W      _MarkRect
;;;113    }
;;;114    
                          ENDP


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

                  _DrawHLine PROC
;;;118    */
;;;119    static void _DrawHLine(int x0, int y,  int x1) {
000000  460b              MOV      r3,r1
;;;120      _MarkRect(x0, y, x1, y);
000002  f7ffbffe          B.W      _MarkRect
;;;121    }
;;;122    
                          ENDP


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

                  _DrawVLine PROC
;;;126    */
;;;127    static void _DrawVLine(int x , int y0,  int y1) {
000000  4613              MOV      r3,r2
;;;128      _MarkRect(x, y0, x, y1);
000002  4602              MOV      r2,r0
000004  f7ffbffe          B.W      _MarkRect
;;;129    }
;;;130    
                          ENDP


⌨️ 快捷键说明

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