📄 radio.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\radio.o --depend=.\Obj\radio.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\Widget\RADIO.c]
THUMB
AREA ||i.RADIO_AddValue||, CODE, READONLY, ALIGN=1
RADIO_AddValue PROC
;;;393 */
;;;394 void RADIO_AddValue(RADIO_Handle hObj, int Add) {
000000 b570 PUSH {r4-r6,lr}
000002 0004 MOVS r4,r0
000004 460d MOV r5,r1
;;;395 if (hObj) {
000006 d00a BEQ |L1.30|
;;;396 RADIO_Obj* pObj;
;;;397 WM_LOCK();
;;;398 pObj = RADIO_H2P(hObj);
000008 4620 MOV r0,r4
00000a f7fffffe BL GUI_ALLOC_h2p
;;;399 RADIO_SetValue(hObj, pObj->Sel + Add);
00000e f9b00038 LDRSH r0,[r0,#0x38]
000012 1941 ADDS r1,r0,r5
000014 4620 MOV r0,r4
000016 e8bd4070 POP {r4-r6,lr}
00001a f7ffbffe B.W RADIO_SetValue
|L1.30|
;;;400 WM_UNLOCK();
;;;401 }
;;;402 }
00001e bd70 POP {r4-r6,pc}
;;;403
ENDP
AREA ||i.RADIO_CreateEx||, CODE, READONLY, ALIGN=2
RADIO_CreateEx PROC
;;;333 */
;;;334 RADIO_Handle RADIO_CreateEx(int x0, int y0, int xSize, int ySize, WM_HWIN hParent,
000000 e92d5fff PUSH {r0-r12,lr}
;;;335 int WinFlags, int ExFlags, int Id, int NumItems, int Spacing)
;;;336 {
;;;337 RADIO_Handle hObj;
;;;338 int Height, i;
;;;339 /* Calculate helper variables */
;;;340 Height = RADIO__apDefaultImage[0]->YSize + RADIO_BORDER * 2;
000004 f8dfa0c0 LDR r10,|L2.200|
000008 468e MOV lr,r1 ;336
00000a 4616 MOV r6,r2 ;336
;;;341 Spacing = (Spacing <= 0) ? 20 : Spacing;
00000c f8da1000 LDR r1,[r10,#0] ; RADIO__apDefaultImage
000010 e9dd2412 LDRD r2,r4,[sp,#0x48] ;340
000014 4684 MOV r12,r0 ;336
000016 461f MOV r7,r3 ;336
000018 884d LDRH r5,[r1,#2] ;340
00001a 9b0f LDR r3,[sp,#0x3c] ;340
00001c 2014 MOVS r0,#0x14
00001e 2c00 CMP r4,#0
000020 f1050504 ADD r5,r5,#4 ;340
000024 dd00 BLE |L2.40|
000026 4620 MOV r0,r4
|L2.40|
;;;342 NumItems = (NumItems <= 0) ? 2 : NumItems;
000028 2402 MOVS r4,#2
00002a 4680 MOV r8,r0 ;341
00002c 2a00 CMP r2,#0
00002e dd00 BLE |L2.50|
000030 4614 MOV r4,r2
|L2.50|
;;;343 if (ySize == 0) {
000032 b917 CBNZ r7,|L2.58|
;;;344 ySize = Height + ((NumItems - 1) * Spacing);
000034 1e60 SUBS r0,r4,#1
000036 fb005708 MLA r7,r0,r8,r5
|L2.58|
;;;345 }
;;;346 if (xSize == 0) {
00003a b90e CBNZ r6,|L2.64|
;;;347 xSize = RADIO__apDefaultImage[0]->XSize + RADIO_BORDER * 2;
00003c 880e LDRH r6,[r1,#0]
00003e 1d36 ADDS r6,r6,#4
|L2.64|
;;;348 }
;;;349 #if WM_SUPPORT_TRANSPARENCY
;;;350 WinFlags |= WM_CF_HASTRANS;
000040 b298 UXTH r0,r3
;;;351 #endif
;;;352 /* Create the window */
;;;353 hObj = WM_CreateWindowAsChild(x0, y0, xSize, ySize, hParent, WinFlags, _RADIO_Callback, sizeof(RADIO_Obj) - sizeof(WM_Obj));
000042 f0400101 ORR r1,r0,#1
000046 980e LDR r0,[sp,#0x38]
000048 2330 MOVS r3,#0x30
00004a 4a20 LDR r2,|L2.204|
00004c e88d000f STM sp,{r0-r3}
000050 463b MOV r3,r7
000052 4632 MOV r2,r6
000054 4671 MOV r1,lr
000056 4660 MOV r0,r12
000058 f7fffffe BL WM_CreateWindowAsChild
00005c ea5f0900 MOVS r9,r0
;;;354 if (hObj) {
000060 d02e BEQ |L2.192|
;;;355 RADIO_Obj* pObj;
;;;356 WM_LOCK();
;;;357 pObj = RADIO_H2P(hObj);
000062 4648 MOV r0,r9
000064 f7fffffe BL GUI_ALLOC_h2p
000068 4606 MOV r6,r0
;;;358 /* Init sub-classes */
;;;359 GUI_ARRAY_CREATE(&pObj->TextArray);
;;;360 for (i = 0; i < NumItems; i++) {
00006a 2700 MOVS r7,#0
;;;361 GUI_ARRAY_AddItem(&pObj->TextArray, NULL, 0);
00006c f1000b34 ADD r11,r0,#0x34
000070 e005 B |L2.126|
|L2.114|
000072 2200 MOVS r2,#0
000074 4611 MOV r1,r2
000076 4658 MOV r0,r11
000078 f7fffffe BL GUI_ARRAY_AddItem
00007c 1c7f ADDS r7,r7,#1 ;360
|L2.126|
00007e 42a7 CMP r7,r4 ;360
000080 dbf7 BLT |L2.114|
;;;362 }
;;;363 /* Init widget specific variables */
;;;364 ExFlags &= RADIO_TEXTPOS_LEFT;
000082 9810 LDR r0,[sp,#0x40]
;;;365 WIDGET__Init(&pObj->Widget, Id, WIDGET_STATE_FOCUSSABLE | ExFlags);
000084 9911 LDR r1,[sp,#0x44]
000086 f4007080 AND r0,r0,#0x100 ;364
00008a f0400210 ORR r2,r0,#0x10
00008e 4630 MOV r0,r6
000090 f7fffffe BL WIDGET__Init
;;;366 /* Init member variables */
;;;367 RADIO_INIT_ID(pObj);
;;;368 pObj->apBmRadio[0] = RADIO__apDefaultImage[0];
000094 f8da1000 LDR r1,[r10,#0] ; RADIO__apDefaultImage
;;;369 pObj->apBmRadio[1] = RADIO__apDefaultImage[1];
000098 62b1 STR r1,[r6,#0x28]
00009a f8da0004 LDR r0,[r10,#4] ; RADIO__apDefaultImage
;;;370 pObj->pBmCheck = RADIO__pDefaultImageCheck;
00009e 62f0 STR r0,[r6,#0x2c]
0000a0 4809 LDR r0,|L2.200|
0000a2 3810 SUBS r0,r0,#0x10
0000a4 6881 LDR r1,[r0,#8] ; RADIO__pDefaultImageCheck
;;;371 pObj->pFont = RADIO__pDefaultFont;
0000a6 6331 STR r1,[r6,#0x30]
0000a8 6841 LDR r1,[r0,#4] ; RADIO__pDefaultFont
;;;372 pObj->TextColor = RADIO__DefaultTextColor;
0000aa 64f1 STR r1,[r6,#0x4c]
0000ac 6800 LDR r0,[r0,#0] ; RADIO__DefaultTextColor
;;;373 pObj->BkColor = WM_GetBkColor(hParent);
0000ae 64b0 STR r0,[r6,#0x48]
0000b0 980e LDR r0,[sp,#0x38]
0000b2 f7fffffe BL WM_GetBkColor
;;;374 pObj->NumItems = NumItems;
0000b6 6470 STR r0,[r6,#0x44]
0000b8 87f4 STRH r4,[r6,#0x3e]
;;;375 pObj->Spacing = Spacing;
0000ba f8a6803a STRH r8,[r6,#0x3a]
;;;376 pObj->Height = Height;
0000be 87b5 STRH r5,[r6,#0x3c]
|L2.192|
;;;377 WM_UNLOCK();
;;;378 } else {
;;;379 GUI_DEBUG_ERROROUT_IF(hObj==0, "RADIO_Create failed")
;;;380 }
;;;381 return hObj;
0000c0 4648 MOV r0,r9
;;;382 }
0000c2 b004 ADD sp,sp,#0x10
0000c4 e8bd9ff0 POP {r4-r12,pc}
;;;383
ENDP
|L2.200|
DCD ||.data||+0x10
|L2.204|
DCD _RADIO_Callback
AREA ||i.RADIO_Dec||, CODE, READONLY, ALIGN=1
RADIO_Dec PROC
;;;407 */
;;;408 void RADIO_Dec(RADIO_Handle hObj) {
000000 f04f31ff MOV r1,#0xffffffff
;;;409 RADIO_AddValue(hObj, -1);
000004 f7ffbffe B.W RADIO_AddValue
;;;410 }
;;;411
ENDP
AREA ||i.RADIO_GetValue||, CODE, READONLY, ALIGN=1
RADIO_GetValue PROC
;;;450 */
;;;451 int RADIO_GetValue(RADIO_Handle hObj) {
000000 b510 PUSH {r4,lr}
000002 0001 MOVS r1,r0
;;;452 int r = 0;
000004 f04f0000 MOV r0,#0
;;;453 if (hObj) {
000008 d004 BEQ |L4.20|
;;;454 RADIO_Obj* pObj;
;;;455 WM_LOCK();
;;;456 pObj = RADIO_H2P(hObj);
00000a 4608 MOV r0,r1
00000c f7fffffe BL GUI_ALLOC_h2p
;;;457 r = pObj->Sel;
000010 f9b00038 LDRSH r0,[r0,#0x38]
|L4.20|
;;;458 WM_UNLOCK();
;;;459 }
;;;460 return r;
;;;461 }
000014 bd10 POP {r4,pc}
;;;462
ENDP
AREA ||i.RADIO_Inc||, CODE, READONLY, ALIGN=1
RADIO_Inc PROC
;;;415 */
;;;416 void RADIO_Inc(RADIO_Handle hObj) {
000000 2101 MOVS r1,#1
;;;417 RADIO_AddValue(hObj, 1);
000002 f7ffbffe B.W RADIO_AddValue
;;;418 }
;;;419
ENDP
AREA ||i.RADIO_SetValue||, CODE, READONLY, ALIGN=2
RADIO_SetValue PROC
;;;423 */
;;;424 void RADIO_SetValue(RADIO_Handle hObj, int v) {
000000 b570 PUSH {r4-r6,lr}
000002 0005 MOVS r5,r0
000004 460c MOV r4,r1
;;;425 if (hObj) {
000006 d018 BEQ |L6.58|
;;;426 RADIO_Obj* pObj;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -