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

📄 guidev_auto.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_auto.o --depend=.\Obj\guidev_auto.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_Auto.c]
                          THUMB

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

                  GUI_MEMDEV_CreateAuto PROC
;;;39     */
;;;40     int GUI_MEMDEV_CreateAuto(GUI_AUTODEV* pAutoDev) {
000000  2101              MOVS     r1,#1
;;;41       pAutoDev->FirstCall = 1;
000002  7401              STRB     r1,[r0,#0x10]
;;;42       return 0;
000004  2000              MOVS     r0,#0
;;;43     }
000006  4770              BX       lr
;;;44     
                          ENDP


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

                  GUI_MEMDEV_DeleteAuto PROC
;;;48     */
;;;49     void GUI_MEMDEV_DeleteAuto(GUI_AUTODEV* pAutoDev) {
000000  4770              BX       lr
;;;50       GUI_USE_PARA(pAutoDev);
;;;51     }
;;;52     
                          ENDP


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

                  GUI_MEMDEV_DrawAuto PROC
;;;56     */
;;;57     int GUI_MEMDEV_DrawAuto(GUI_AUTODEV* pAutoDev, GUI_AUTODEV_INFO* pAutoDevInfo, GUI_CALLBACK_VOID_P* pfDraw, void* pData) {
000000  e92d4ffe          PUSH     {r1-r11,lr}
000004  4605              MOV      r5,r0
000006  460c              MOV      r4,r1
000008  4616              MOV      r6,r2
00000a  469b              MOV      r11,r3
;;;58       GUI_RECT rTemp;
;;;59       GUI_HMEM hMem = GUI_MEASDEV_Create();
00000c  f7fffffe          BL       GUI_MEASDEV_Create
000010  0007              MOVS     r7,r0
;;;60       if (!hMem) {
000012  d041              BEQ      |L3.152|
;;;61         return 1;
;;;62       }
;;;63       GUI_MEASDEV_Select(hMem);
000014  4638              MOV      r0,r7
000016  f7fffffe          BL       GUI_MEASDEV_Select
;;;64       /* Measure area to draw */
;;;65       if (pAutoDev->FirstCall) {
00001a  7c29              LDRB     r1,[r5,#0x10]
00001c  f04f0a00          MOV      r10,#0                ;59
000020  f04f0901          MOV      r9,#1                 ;61
;;;66         /* Measure complete area */
;;;67         pAutoDevInfo->DrawFixed = 1;
;;;68         pfDraw(pData);
;;;69         GUI_MEASDEV_GetRect(hMem, &pAutoDev->rView);
;;;70         /* Measure variable area only */
;;;71         GUI_MEASDEV_ClearRect(hMem);
;;;72         pAutoDevInfo->DrawFixed = 0;
;;;73         pfDraw(pData);
;;;74         GUI_MEASDEV_GetRect(hMem, &pAutoDev->rPrev);
000024  f1050808          ADD      r8,r5,#8
000028  b199              CBZ      r1,|L3.82|
00002a  f8849000          STRB     r9,[r4,#0]            ;67
00002e  4658              MOV      r0,r11                ;68
000030  47b0              BLX      r6                    ;68
000032  4629              MOV      r1,r5                 ;69
000034  4638              MOV      r0,r7                 ;69
000036  f7fffffe          BL       GUI_MEASDEV_GetRect
00003a  4638              MOV      r0,r7                 ;71
00003c  f7fffffe          BL       GUI_MEASDEV_ClearRect
000040  f884a000          STRB     r10,[r4,#0]           ;72
000044  4658              MOV      r0,r11                ;73
000046  47b0              BLX      r6                    ;73
000048  4641              MOV      r1,r8                 ;73
00004a  4638              MOV      r0,r7
00004c  f7fffffe          BL       GUI_MEASDEV_GetRect
000050  e014              B        |L3.124|
                  |L3.82|
;;;75       } else {
;;;76         /* Measure variable area only */
;;;77         pfDraw(pData);
000052  4658              MOV      r0,r11
000054  47b0              BLX      r6
;;;78         GUI_MEASDEV_GetRect(hMem, &pAutoDev->rView);
000056  4629              MOV      r1,r5
000058  4638              MOV      r0,r7
00005a  f7fffffe          BL       GUI_MEASDEV_GetRect
;;;79         rTemp = pAutoDev->rView;
00005e  2208              MOVS     r2,#8
000060  4629              MOV      r1,r5
000062  a801              ADD      r0,sp,#4
000064  f7fffffe          BL       __aeabi_memcpy
000068  4642              MOV      r2,r8
;;;80         GUI_MergeRect(&pAutoDev->rView, &pAutoDev->rView, &pAutoDev->rPrev);
00006a  4629              MOV      r1,r5
00006c  4628              MOV      r0,r5
00006e  f7fffffe          BL       GUI_MergeRect
;;;81         pAutoDev->rPrev = rTemp;
000072  2208              MOVS     r2,#8
000074  a901              ADD      r1,sp,#4
000076  4640              MOV      r0,r8
000078  f7fffffe          BL       __aeabi_memcpy
                  |L3.124|
;;;82       }
;;;83       GUI_MEASDEV_Delete(hMem);
00007c  4638              MOV      r0,r7
00007e  f7fffffe          BL       GUI_MEASDEV_Delete
;;;84       /* Do the actual drawing */
;;;85       pAutoDevInfo->DrawFixed = 1;
000082  f8849000          STRB     r9,[r4,#0]
;;;86       if (GUI_MEMDEV_Draw(&pAutoDev->rView, pfDraw, pData, 0, GUI_MEMDEV_NOTRANS)) {
000086  2301              MOVS     r3,#1
000088  9300              STR      r3,[sp,#0]
00008a  2300              MOVS     r3,#0
00008c  465a              MOV      r2,r11
00008e  4631              MOV      r1,r6
000090  4628              MOV      r0,r5
000092  f7fffffe          BL       GUI_MEMDEV_Draw
000096  b110              CBZ      r0,|L3.158|
                  |L3.152|
;;;87         return 1;
000098  2001              MOVS     r0,#1
                  |L3.154|
;;;88       }
;;;89       pAutoDevInfo->DrawFixed = 0;
;;;90       pAutoDev->FirstCall = 0;
;;;91       return 0;
;;;92     }
00009a  e8bd8ffe          POP      {r1-r11,pc}
                  |L3.158|
00009e  f884a000          STRB     r10,[r4,#0]           ;89
0000a2  f885a010          STRB     r10,[r5,#0x10]        ;90
0000a6  2000              MOVS     r0,#0                 ;91
0000a8  e7f7              B        |L3.154|
;;;93     
                          ENDP

⌨️ 快捷键说明

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