wm_criticalhandle.txt
来自「STM32F103ZET6+UCOSII+UCGUI源码」· 文本 代码 · 共 76 行
TXT
76 行
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\wm_criticalhandle.o --depend=.\Obj\wm_criticalhandle.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\WM\WM_CriticalHandle.c]
THUMB
AREA ||i.WM__AddCriticalHandle||, CODE, READONLY, ALIGN=2
WM__AddCriticalHandle PROC
;;;34 */
;;;35 void WM__AddCriticalHandle(WM_CRITICAL_HANDLE* pCriticalHandle) {
000000 4902 LDR r1,|L1.12|
;;;36 pCriticalHandle->pNext = WM__pFirstCriticalHandle;
000002 680a LDR r2,[r1,#0] ; WM__pFirstCriticalHandle
;;;37 WM__pFirstCriticalHandle = pCriticalHandle;
000004 6002 STR r2,[r0,#0]
;;;38 }
000006 6008 STR r0,[r1,#0] ; WM__pFirstCriticalHandle
000008 4770 BX lr
;;;39
ENDP
00000a 0000 DCW 0x0000
|L1.12|
DCD WM__pFirstCriticalHandle
AREA ||i.WM__RemoveCriticalHandle||, CODE, READONLY, ALIGN=2
WM__RemoveCriticalHandle PROC
;;;43 */
;;;44 void WM__RemoveCriticalHandle(WM_CRITICAL_HANDLE* pCriticalHandle) {
000000 4b09 LDR r3,|L2.40|
;;;45 if (WM__pFirstCriticalHandle) {
000002 6819 LDR r1,[r3,#0] ; WM__pFirstCriticalHandle
000004 2900 CMP r1,#0
000006 d005 BEQ |L2.20|
;;;46 WM_CRITICAL_HANDLE *pCH, *pLast = 0;
000008 2200 MOVS r2,#0
|L2.10|
;;;47 for (pCH = WM__pFirstCriticalHandle; pCH; pCH = pCH->pNext) {
;;;48 if (pCH == pCriticalHandle) {
00000a 4281 CMP r1,r0
00000c d106 BNE |L2.28|
;;;49 if (pLast) {
00000e 6808 LDR r0,[r1,#0]
000010 b10a CBZ r2,|L2.22|
;;;50 pLast->pNext = pCH->pNext;
000012 6010 STR r0,[r2,#0]
|L2.20|
;;;51 } else if (pCH->pNext) {
;;;52 WM__pFirstCriticalHandle = pCH->pNext;
;;;53 } else {
;;;54 WM__pFirstCriticalHandle = 0;
;;;55 }
;;;56 break;
;;;57 }
;;;58 pLast = pCH;
;;;59 }
;;;60 }
;;;61 }
000014 4770 BX lr
|L2.22|
000016 2800 CMP r0,#0 ;51
000018 6018 STR r0,[r3,#0] ;52 ; WM__pFirstCriticalHandle
00001a 4770 BX lr
|L2.28|
00001c 460a MOV r2,r1 ;58
00001e 6809 LDR r1,[r1,#0] ;47
000020 2900 CMP r1,#0 ;47
000022 d1f2 BNE |L2.10|
000024 4770 BX lr
;;;62
ENDP
000026 0000 DCW 0x0000
|L2.40|
DCD WM__pFirstCriticalHandle
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?