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

📄 guitimer.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\guitimer.o --depend=.\Obj\guitimer.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\Core\GUITimer.c]
                          THUMB

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

                  GUI_TIMER_Context PROC
;;;233    //////
;;;234    void GUI_TIMER_Context(GUI_TIMER_HANDLE hObj, U32 Context) {
000000  b510              PUSH     {r4,lr}
000002  460c              MOV      r4,r1
;;;235      GUI_LOCK(); {
;;;236       	GUI_TIMER_Obj* pObj = GUI_TIMER_H2P(hObj);
000004  f7fffffe          BL       GUI_ALLOC_h2p
;;;237        pObj->Context = Context;
;;;238      } GUI_UNLOCK(); 
;;;239    }
000008  60c4              STR      r4,[r0,#0xc]
00000a  bd10              POP      {r4,pc}
;;;240    //////
                          ENDP


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

                  GUI_TIMER_Create PROC
;;;177    */
;;;178    GUI_TIMER_HANDLE GUI_TIMER_Create(GUI_TIMER_CALLBACK* cb, int Time, U32 Context, int Flags) {
000000  e92d41f0          PUSH     {r4-r8,lr}
000004  460e              MOV      r6,r1
000006  4605              MOV      r5,r0
;;;179      GUI_TIMER_HANDLE hObj;
;;;180      GUI_TIMER_Obj* pObj;
;;;181      GUI_LOCK();
;;;182      GUI_USE_PARA(Flags);
;;;183      GUI_USE_PARA(Time);
;;;184      GUI_pfTimerExec = GUI_TIMER_Exec;
000008  490a              LDR      r1,|L2.52|
00000a  4809              LDR      r0,|L2.48|
;;;185    	{
;;;186        /* Alloc memory for obj */
;;;187        hObj = GUI_ALLOC_AllocZero(sizeof(GUI_TIMER_Obj));
00000c  6008              STR      r0,[r1,#0]  ; GUI_pfTimerExec
00000e  4617              MOV      r7,r2                 ;178
000010  2018              MOVS     r0,#0x18
000012  f7fffffe          BL       GUI_ALLOC_AllocZero
000016  4604              MOV      r4,r0
;;;188        pObj = GUI_TIMER_H2P(hObj);
000018  f7fffffe          BL       GUI_ALLOC_h2p
;;;189        /* init member variables */
;;;190        pObj->cb = cb;
;;;191    		pObj->Context = Context;
;;;192    		pObj->t0 = Time;	//houhh 20061018...
;;;193        /* Link it */
;;;194    		_Link(hObj);
00001c  e9c07603          STRD     r7,r6,[r0,#0xc]
000020  6005              STR      r5,[r0,#0]
000022  4620              MOV      r0,r4
000024  f7fffffe          BL       _Link
;;;195    	} GUI_UNLOCK();
;;;196      return hObj;
000028  4620              MOV      r0,r4
;;;197    }
00002a  e8bd81f0          POP      {r4-r8,pc}
;;;198    
                          ENDP

00002e  0000              DCW      0x0000
                  |L2.48|
                          DCD      GUI_TIMER_Exec
                  |L2.52|
                          DCD      GUI_pfTimerExec

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

                  GUI_TIMER_Delete PROC
;;;202    */
;;;203    void GUI_TIMER_Delete(GUI_TIMER_HANDLE hObj) {
000000  b510              PUSH     {r4,lr}
000002  4604              MOV      r4,r0
;;;204    /* Unlink Timer */
;;;205      GUI_LOCK();
;;;206      _Unlink(hObj);
000004  f7fffffe          BL       _Unlink
;;;207      GUI_ALLOC_Free(hObj);
000008  4620              MOV      r0,r4
00000a  e8bd4010          POP      {r4,lr}
00000e  f7ffbffe          B.W      GUI_ALLOC_Free
;;;208      GUI_UNLOCK();
;;;209    }
;;;210    
                          ENDP


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

                  GUI_TIMER_Exec PROC
;;;148    */
;;;149    int GUI_TIMER_Exec(void) {
000000  b57c              PUSH     {r2-r6,lr}
;;;150      int r = 0;
000002  2500              MOVS     r5,#0
;;;151      GUI_TIMER_TIME t = GUI_GetTime();
000004  f7fffffe          BL       GUI_GetTime
000008  4604              MOV      r4,r0
;;;152      GUI_LOCK(); {
;;;153        while (hFirstTimer) {
;;;154         	GUI_TIMER_Obj* pTimer = GUI_TIMER_H2P(hFirstTimer);
00000a  4e0d              LDR      r6,|L4.64|
;;;155          if ((pTimer->t0-t) <=0) {
;;;156            GUI_TIMER_MESSAGE tm;
;;;157            tm.Time = t;
;;;158    				tm.Context = pTimer->Context;
;;;159            _hActiveTimer = hFirstTimer;
;;;160            hFirstTimer = pTimer->hNext;
;;;161            pTimer->cb(&tm);
;;;162            r = 1;
;;;163    			} else
;;;164    			  break;
;;;165        }
00000c  e011              B        |L4.50|
00000e  bf00              NOP                            ;154
                  |L4.16|
000010  f7fffffe          BL       GUI_ALLOC_h2p
000014  6901              LDR      r1,[r0,#0x10]         ;155
000016  1b09              SUBS     r1,r1,r4              ;155
000018  2900              CMP      r1,#0                 ;155
00001a  dc0e              BGT      |L4.58|
00001c  9400              STR      r4,[sp,#0]            ;158
00001e  68c1              LDR      r1,[r0,#0xc]          ;158
000020  9101              STR      r1,[sp,#4]            ;159
000022  8831              LDRH     r1,[r6,#0]            ;159  ; hFirstTimer
000024  8071              STRH     r1,[r6,#2]            ;159
000026  8881              LDRH     r1,[r0,#4]            ;160
000028  8031              STRH     r1,[r6,#0]            ;160
00002a  6801              LDR      r1,[r0,#0]            ;161
00002c  4668              MOV      r0,sp                 ;161
00002e  4788              BLX      r1                    ;161
000030  2501              MOVS     r5,#1                 ;162
                  |L4.50|
000032  f9b60000          LDRSH    r0,[r6,#0]            ;153  ; hFirstTimer
000036  2800              CMP      r0,#0                 ;153
000038  d1ea              BNE      |L4.16|
                  |L4.58|
;;;166        /*
;;;167    		GUI_TIMER_Obj* pObj = GUI_TIMER_H2P(hObj);
;;;168        pObj->t0 = Time;
;;;169        */
;;;170      } GUI_UNLOCK(); 
;;;171      return r;
00003a  4628              MOV      r0,r5
;;;172    }
00003c  bd7c              POP      {r2-r6,pc}
;;;173    
                          ENDP

00003e  0000              DCW      0x0000
                  |L4.64|
                          DCD      ||.data||

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

                  GUI_TIMER_Restart PROC
;;;258    */
;;;259    void GUI_TIMER_Restart(GUI_TIMER_HANDLE hObj) {
000000  b570              PUSH     {r4-r6,lr}
000002  0004              MOVS     r4,r0
;;;260      GUI_TIMER_Obj* pObj;
;;;261      GUI_LOCK();
;;;262      {
;;;263        if (hObj == 0) {
000004  d102              BNE      |L5.12|
;;;264          hObj = _hActiveTimer;
000006  480a              LDR      r0,|L5.48|
000008  f9b04002          LDRSH    r4,[r0,#2]  ; _hActiveTimer
                  |L5.12|
;;;265        }
;;;266       	pObj = GUI_TIMER_H2P(hObj);
00000c  4620              MOV      r0,r4
00000e  f7fffffe          BL       GUI_ALLOC_h2p
000012  4605              MOV      r5,r0
;;;267        pObj->t0 = GUI_GetTime() +pObj->Period;
000014  f7fffffe          BL       GUI_GetTime
000018  6969              LDR      r1,[r5,#0x14]
00001a  4401              ADD      r1,r1,r0
;;;268    		_Unlink(hObj);
00001c  4620              MOV      r0,r4
00001e  6129              STR      r1,[r5,#0x10]
000020  f7fffffe          BL       _Unlink
;;;269    		_Link(hObj);
000024  4620              MOV      r0,r4
000026  e8bd4070          POP      {r4-r6,lr}
00002a  f7ffbffe          B.W      _Link
;;;270      } GUI_UNLOCK(); 
;;;271    }
;;;272    
                          ENDP

00002e  0000              DCW      0x0000
                  |L5.48|
                          DCD      ||.data||

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

                  GUI_TIMER_SetDelay PROC
;;;245    */
;;;246    void GUI_TIMER_SetDelay(GUI_TIMER_HANDLE hObj, GUI_TIMER_TIME Delay) {
000000  b570              PUSH     {r4-r6,lr}
000002  4605              MOV      r5,r0
000004  460c              MOV      r4,r1

⌨️ 快捷键说明

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