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

📄 mac_mcu.lst

📁 TI的基于ZIGBEE2006的协议栈
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   00000A   02....       LJMP    ?BRET
    284          }
    285          
    286          
    287          /**************************************************************************************************
    288           * @fn          macMcuTimerCount
    289           *
    290           * @brief       Returns the upper eight bits of hardware timer count.  The full 16-bit timer
    291           *              count is not returned because the timer compare feature only compares one byte.
    292           *
    293           * @param       none
    294           *
    295           * @return      upper eight bits of hardware timer count
    296           **************************************************************************************************
    297           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    298          uint8 macMcuTimerCount(void)
   \                     macMcuTimerCount:
    299          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 1
   \   000004   74FF         MOV     A,#-0x1
   \   000006   12....       LCALL   ?ALLOC_XSTACK8
    300            uint8 volatile temp;
    301          
    302            /* reading T2TLD latches T2THD */
    303            temp = T2TLD;
   \   000009   E5A6         MOV     A,0xa6
   \   00000B   85..82       MOV     DPL,?XSP + 0
   \   00000E   85..83       MOV     DPH,?XSP + 1
   \   000011   F0           MOVX    @DPTR,A
    304            return(T2THD);
   \   000012   A9A7         MOV     R1,0xa7
   \   000014   7401         MOV     A,#0x1
   \   000016   12....       LCALL   ?DEALLOC_XSTACK8
   \   000019   02....       LJMP    ?Subroutine3 & 0xFFFF
    305          }
    306          
    307          
    308          /**************************************************************************************************
    309           * @fn          macMcuTimerCapture
    310           *
    311           * @brief       Returns the last timer capture.  This capture should have occurred at the
    312           *              receive time of the last frame (the last time SFD transitioned to active).
    313           *
    314           * @param       none
    315           *
    316           * @return      last capture of hardware timer (full 16-bit value)
    317           **************************************************************************************************
    318           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    319          uint16 macMcuTimerCapture(void)
   \                     macMcuTimerCapture:
    320          {
   \   000000                ; Saved register size: 2
   \   000000                ; Auto size: 0
    321            uint16 timerCapture;
    322          
    323            timerCapture = T2CAPLPL;
   \   000000   AAA4         MOV     R2,0xa4
    324            timerCapture |= T2CAPHPH << 8;
   \   000002   E5A5         MOV     A,0xa5
   \   000004   FB           MOV     R3,A
    325          
    326            return (timerCapture);
   \   000005   02....       LJMP    ?BRET
    327          }
    328          
    329          
    330          /**************************************************************************************************
    331           * @fn          macMcuOverflowCount
    332           *
    333           * @brief       Returns the value of the overflow counter which is a special hardware feature.
    334           *              The overflow count actually is only 20 bits of information.
    335           *
    336           * @param       none
    337           *
    338           * @return      value of overflow counter
    339           **************************************************************************************************
    340           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    341          uint32 macMcuOverflowCount(void)
   \                     macMcuOverflowCount:
    342          {
   \   000000   74F4         MOV     A,#-0xc
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 12
   \   000005                ; Auto size: 4
   \   000005   74FC         MOV     A,#-0x4
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
    343            uint32 overflowCount;
    344          
    345            /* for efficiency, the 32-bit value is encoded using endian abstracted indexing */
    346          
    347            /* must read T2OF0 first, this latches T2OF1 and T2OF2 */
    348            ((uint8 *)&overflowCount)[UINT32_NDX0] = T2OF0;
   \   00000A   E5A1         MOV     A,0xa1
   \   00000C   85..82       MOV     DPL,?XSP + 0
   \   00000F   85..83       MOV     DPH,?XSP + 1
   \   000012   F0           MOVX    @DPTR,A
    349            ((uint8 *)&overflowCount)[UINT32_NDX1] = T2OF1;
   \   000013   E5A2         MOV     A,0xa2
   \   000015   C0E0         PUSH    A
   \   000017   7401         MOV     A,#0x1
   \   000019   12....       LCALL   ?XSTACK_DISP0_8
   \   00001C   D0E0         POP     A
   \   00001E   F0           MOVX    @DPTR,A
    350            ((uint8 *)&overflowCount)[UINT32_NDX2] = T2OF2;
   \   00001F   E5A3         MOV     A,0xa3
   \   000021   80..         SJMP    ?Subroutine5
    351            ((uint8 *)&overflowCount)[UINT32_NDX3] = 0;
    352          
    353            return (overflowCount);
    354          }

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine5:
   \   000000   C0E0         PUSH    A
   \   000002   7402         MOV     A,#0x2
   \   000004   12....       LCALL   ?XSTACK_DISP0_8
   \   000007   D0E0         POP     A
   \   000009   F0           MOVX    @DPTR,A
   \   00000A   7403         MOV     A,#0x3
   \   00000C   12....       LCALL   ?XSTACK_DISP0_8
   \   00000F   E4           CLR     A
   \   000010   12....       LCALL   ??Subroutine0_0 & 0xFFFF
   \                     ??CrossCallReturnLabel_4:
   \   000013   12....       LCALL   ?L_MOV_X
   \   000016   AA..         MOV     R2,?V0 + 0
   \   000018   AB..         MOV     R3,?V0 + 1
   \   00001A   AC..         MOV     R4,?V0 + 2
   \   00001C   AD..         MOV     R5,?V0 + 3
   \                     ??Subroutine5_0:
   \   00001E   7404         MOV     A,#0x4
   \   000020   12....       LCALL   ?DEALLOC_XSTACK8
   \   000023   7F04         MOV     R7,#0x4
   \   000025   02....       LJMP    ?BANKED_LEAVE_XDATA

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   85..82       MOV     DPL,?XSP + 0
   \   000003   85..83       MOV     DPH,?XSP + 1
   \   000006   EA           MOV     A,R2
   \   000007   F0           MOVX    @DPTR,A
   \   000008   A3           INC     DPTR
   \   000009   EB           MOV     A,R3
   \   00000A   F0           MOVX    @DPTR,A
   \   00000B   A3           INC     DPTR
   \   00000C   EC           MOV     A,R4
   \   00000D   F0           MOVX    @DPTR,A
   \   00000E   A3           INC     DPTR
   \   00000F   ED           MOV     A,R5
   \                     ??Subroutine0_0:
   \   000010   F0           MOVX    @DPTR,A
   \   000011   85..82       MOV     DPL,?XSP + 0
   \   000014   85..83       MOV     DPH,?XSP + 1
   \   000017   78..         MOV     R0,#?V0 + 0
   \   000019   22           RET
    355          
    356          
    357          /**************************************************************************************************
    358           * @fn          macMcuOverflowCapture
    359           *
    360           * @brief       Returns the last capture of the overflow counter.  A special hardware feature
    361           *              captures the overflow counter when the regular hardware timer is captured.
    362           *
    363           * @param       none
    364           *
    365           * @return      last capture of overflow count
    366           **************************************************************************************************
    367           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    368          uint32 macMcuOverflowCapture(void)
   \                     macMcuOverflowCapture:
    369          {
   \   000000   74F4         MOV     A,#-0xc
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 12
   \   000005                ; Auto size: 4
   \   000005   74FC         MOV     A,#-0x4
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
    370            uint32 overflowCapture;
    371          
    372            /* for efficiency, the 32-bit value is encoded using endian abstracted indexing */
    373          
    374            ((uint8 *)&overflowCapture)[UINT32_NDX0] = T2PEROF0;
   \   00000A   E59C         MOV     A,0x9c
   \   00000C   85..82       MOV     DPL,?XSP + 0
   \   00000F   85..83       MOV     DPH,?XSP + 1
   \   000012   F0           MOVX    @DPTR,A
    375            ((uint8 *)&overflowCapture)[UINT32_NDX1] = T2PEROF1;
   \   000013   E59D         MOV     A,0x9d
   \   000015   C0E0         PUSH    A
   \   000017   7401         MOV     A,#0x1
   \   000019   12....       LCALL   ?XSTACK_DISP0_8
   \   00001C   D0E0         POP     A
   \   00001E   F0           MOVX    @DPTR,A
    376            ((uint8 *)&overflowCapture)[UINT32_NDX2] = T2PEROF2 & PEROF2_BITS;
   \   00001F   740F         MOV     A,#0xf
   \   000021   559E         ANL     A,0x9e
   \   000023   80..         SJMP    ?Subroutine5
    377            ((uint8 *)&overflowCapture)[UINT32_NDX3] = 0;
    378          
    379            return (overflowCapture);
    380          }
    381          
    382          
    383          /**************************************************************************************************
    384           * @fn          macMcuOverflowSetCount
    385           *
    386           * @brief       Sets the value of the hardware overflow counter.
    387           *
    388           * @param       count - new overflow count value
    389           *
    390           * @return      none
    391           **************************************************************************************************
    392           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    393          void macMcuOverflowSetCount(uint32 count)
   \                     macMcuOverflowSetCount:
    394          {
   \   000000   74F4         MOV     A,#-0xc
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 12
   \   000005                ; Auto size: 4
   \   000005   74FC         MOV     A,#-0x4
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
   \   00000A   12....       LCALL   ?Subroutine0 & 0xFFFF
    395            MAC_ASSERT(!((count >> 16) & ~PEROF2_BITS));   /* illegal count value */
   \                     ??CrossCallReturnLabel_2:
   \   00000D   12....       LCALL   ?L_MOV_X
   \   000010   7410         MOV     A,#0x10
   \   000012   78..         MOV     R0,#?V0 + 0
   \   000014   12....       LCALL   ?UL_SHR
   \   000017   12....       LCALL   ?Subroutine1 & 0xFFFF
   \                     ??CrossCallReturnLabel_0:
   \   00001A   7001         JNZ     ??macMcuOverflowSetCount_0
   \   00001C   E9           MOV     A,R1

⌨️ 快捷键说明

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