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

📄 sampleapphw.lst

📁 用IAR开发的ZIGBEE网络路由例子
💻 LST
📖 第 1 页 / 共 2 页
字号:
     73           * TYPEDEFS
     74           */
     75          
     76          /*********************************************************************
     77           * GLOBAL VARIABLES
     78           */
     79          
     80          /*********************************************************************
     81           * EXTERNAL VARIABLES
     82           */
     83          
     84          /*********************************************************************
     85           * EXTERNAL FUNCTIONS
     86           */
     87          
     88          /*********************************************************************
     89           * LOCAL VARIABLES
     90           */
     91          
     92          /*********************************************************************
     93           * LOCAL FUNCTIONS
     94           */
     95          
     96          /*********************************************************************
     97           * @fn      readCoordinatorJumper
     98           *
     99           * @brief   Checks for a jumper to determine if the device should
    100           *          become a coordinator
    101           *
    102           * NOTES:   Jumper should be between P7.1 and P7.3 on the CC2430DB.
    103           *          P7.1 -> CC2430 P1.3
    104           *          p7.3 -> CC2430 P0.4
    105           *
    106           * NOTES:   Jumper should be between I/O A pin 9 and 11 on the CC2430EB.
    107           *          I/O A pin 9  -> CC2430 P0.2
    108           *          I/O A pin 11 -> CC2430 P0.3
    109           *
    110           * @return  TRUE if the jumper is there, FALSE if not
    111           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    112          uint8 readCoordinatorJumper( void )
   \                     readCoordinatorJumper:
    113          {
   \   000000   74F6         MOV     A,#-0xa
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 10
   \   000005                ; Auto size: 0
    114            uint8 jumpered;
    115            uint8 x, y;
    116            uint8 result;
    117            uint8 saveJumpInSEL;
    118            uint8 saveJumpInDIR;
    119            uint8 saveJumpInINP;
    120            uint8 saveJumpOutSEL;
    121            uint8 saveJumpOutDIR;
    122            uint8 saveJumpOutINP;
    123            
    124            jumpered = TRUE;
   \   000005   7901         MOV     R1,#0x1
    125            
    126            // Setup PORTs
    127            saveJumpInSEL = JUMPERIN_SEL;
   \   000007   E5F4         MOV     A,0xf4
   \   000009   FC           MOV     R4,A
    128            saveJumpInDIR = JUMPERIN_DIR;
   \   00000A   E5FE         MOV     A,0xfe
   \   00000C   FD           MOV     R5,A
    129            saveJumpInINP = JUMPERIN_INP;
   \   00000D   E5F6         MOV     A,0xf6
   \   00000F   FE           MOV     R6,A
    130            saveJumpOutSEL = P0SEL;
   \   000010   E5F3         MOV     A,0xf3
   \   000012   FF           MOV     R7,A
    131            saveJumpOutDIR = P0DIR;
   \   000013   E5FD         MOV     A,0xfd
   \   000015   F5..         MOV     ?V0 + 0,A
    132            saveJumpOutINP = P0INP;
   \   000017   E58F         MOV     A,0x8f
   \   000019   F5..         MOV     ?V0 + 1,A
    133            
    134            JUMPERIN_SEL &= ~(JUMPERIN_BIT);
   \   00001B   53F4F7       ANL     0xf4,#0xf7
    135            JUMPERIN_DIR &= ~(JUMPERIN_BIT);
   \   00001E   53FEF7       ANL     0xfe,#0xf7
    136            JUMPERIN_INP &= ~(JUMPERIN_BIT);
   \   000021   53F6F7       ANL     0xf6,#0xf7
    137            JUMPEROUT_SEL &= ~(JUMPEROUT_BIT);
   \   000024   53F3EF       ANL     0xf3,#0xef
    138            JUMPEROUT_DIR |= JUMPEROUT_BIT;
   \   000027   43FD10       ORL     0xfd,#0x10
    139            JUMPEROUT_INP &= ~(JUMPERIN_BIT);
   \   00002A   538FF7       ANL     0x8f,#0xf7
    140            
    141            for ( x = 0; x < 8; x++ )
   \   00002D   7B00         MOV     R3,#0x0
    142            {    
    143              if ( x & 0x01 )
    144              {
    145                JUMPEROUT |= JUMPEROUT_BIT;      
    146                for ( y = 0; y < 8; y++ );
    147                result = JUMPERIN & JUMPERIN_BIT;
    148                if ( result != JUMPERIN_BIT )
    149                  jumpered = FALSE;
    150              }
    151              else
    152              {      
    153                JUMPEROUT &= ~(JUMPEROUT_BIT);      
   \                     ??readCoordinatorJumper_0:
   \   00002F   C284         CLR     0x80.4
    154                for ( y = 0; y < 8; y++ );
   \   000031   7A08         MOV     R2,#0x8
   \                     ??readCoordinatorJumper_1:
   \   000033   1A           DEC     R2
   \   000034   EA           MOV     A,R2
   \   000035   70FC         JNZ     ??readCoordinatorJumper_1
    155                result = JUMPERIN & JUMPERIN_BIT;
   \   000037   7408         MOV     A,#0x8
   \   000039   5590         ANL     A,0x90
    156                if ( result != 0x00 )
   \   00003B   701E         JNZ     ??readCoordinatorJumper_2
    157                  jumpered = FALSE;
    158              }
   \                     ??readCoordinatorJumper_3:
   \   00003D   0B           INC     R3
   \   00003E   EB           MOV     A,R3
   \   00003F   C3           CLR     C
   \   000040   9408         SUBB    A,#0x8
   \   000042   501B         JNC     ??readCoordinatorJumper_4
   \   000044   EB           MOV     A,R3
   \   000045   A2E0         MOV     C,0xE0 /* A   */.0
   \   000047   50E6         JNC     ??readCoordinatorJumper_0
   \   000049   D284         SETB    0x80.4
   \   00004B   7A08         MOV     R2,#0x8
   \                     ??readCoordinatorJumper_5:
   \   00004D   1A           DEC     R2
   \   00004E   EA           MOV     A,R2
   \   00004F   70FC         JNZ     ??readCoordinatorJumper_5
   \   000051   7408         MOV     A,#0x8
   \   000053   5590         ANL     A,0x90
   \   000055   FA           MOV     R2,A
   \   000056   7408         MOV     A,#0x8
   \   000058   6A           XRL     A,R2
   \   000059   60E2         JZ      ??readCoordinatorJumper_3
   \                     ??readCoordinatorJumper_2:
   \   00005B   7900         MOV     R1,#0x0
   \   00005D   80DE         SJMP    ??readCoordinatorJumper_3
    159            }
    160            
    161            // Restore directions
    162            JUMPERIN_SEL = saveJumpInSEL;
   \                     ??readCoordinatorJumper_4:
   \   00005F   8CF4         MOV     0xf4,R4
    163            JUMPERIN_DIR = saveJumpInDIR;
   \   000061   8DFE         MOV     0xfe,R5
    164            JUMPERIN_INP = saveJumpInINP;
   \   000063   8EF6         MOV     0xf6,R6
    165            JUMPEROUT_SEL = saveJumpOutSEL;
   \   000065   8FF3         MOV     0xf3,R7
    166            JUMPEROUT_DIR = saveJumpOutDIR;
   \   000067   85..FD       MOV     0xfd,?V0 + 0
    167            JUMPEROUT_INP = saveJumpOutINP;
   \   00006A   85..8F       MOV     0x8f,?V0 + 1
    168            
    169            return ( jumpered );
   \   00006D   7F02         MOV     R7,#0x2
   \   00006F   02....       LJMP    ?BANKED_LEAVE_XDATA
    170          }

   \                                 In segment SFR_AN, at 0x80
   \   union <unnamed> volatile __sfr _A_P0
   \                     _A_P0:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0x90
   \   union <unnamed> volatile __sfr _A_P1
   \                     _A_P1:
   \   000000                DS 1

   Maximum stack usage in bytes:

     Function              ISTACK PSTACK XSTACK
     --------              ------ ------ ------
     readCoordinatorJumper     0      0     10


   Segment part sizes:

     Function/Label        Bytes
     --------------        -----
     P0INP                    1
     P0SEL                    1
     P1SEL                    1
     P1INP                    1
     P0DIR                    1
     P1DIR                    1
     readCoordinatorJumper  114
     _A_P0                    1
     _A_P1                    1

 
 114 bytes in segment BANKED_CODE
   8 bytes in segment SFR_AN
 
 114 bytes of CODE memory
   0 bytes of DATA memory (+ 8 bytes shared)

Errors: none
Warnings: none

⌨️ 快捷键说明

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