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

📄 radio.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 3 页
字号:
; 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 + -