mac_tx.lst

来自「TI的基于ZIGBEE2006的协议栈」· LST 代码 · 共 1,206 行 · 第 1/5 页

LST
1,206
字号
   \   000005   A3           INC     DPTR
   \   000006   E0           MOVX    A,@DPTR
   \   000007   F583         MOV     DPH,A
   \   000009   8A82         MOV     DPL,R2
   \   00000B   A3           INC     DPTR
   \   00000C   A3           INC     DPTR
   \   00000D   A3           INC     DPTR
   \   00000E   A3           INC     DPTR
   \   00000F   22           RET
    262          
    263          
    264          /*=================================================================================================
    265           * @fn          txCsmaPrep
    266           *
    267           * @brief       Prepare/initialize for a CSMA transmit.
    268           *
    269           * @param       none
    270           *
    271           * @return      none
    272           *=================================================================================================
    273           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    274          static void txCsmaPrep(void)
   \                     ??txCsmaPrep:
    275          {
   \   000000   74F6         MOV     A,#-0xa
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 10
   \   000005                ; Auto size: 0
    276            macTxCsmaBackoffDelay = macRadioRandomByte() & ((1 << macTxBe) - 1);
   \   000005                ; Setup parameters for call to function macRadioRandomByte
   \   000005   90....       MOV     DPTR,#(macRadioRandomByte & 0xffff)
   \   000008   74..         MOV     A,#((macRadioRandomByte >> 16) & 0xff)
   \   00000A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00000D   E9           MOV     A,R1
   \   00000E   FA           MOV     R2,A
   \   00000F   75..01       MOV     ?V0 + 0,#0x1
   \   000012   75..00       MOV     ?V0 + 1,#0x0
   \   000015   90....       MOV     DPTR,#macTxBe
   \   000018   E0           MOVX    A,@DPTR
   \   000019   78..         MOV     R0,#?V0 + 0
   \   00001B   12....       LCALL   ?S_SHL
   \   00001E   E5..         MOV     A,?V0 + 0
   \   000020   14           DEC     A
   \   000021   5A           ANL     A,R2
   \   000022   90....       MOV     DPTR,#macTxCsmaBackoffDelay
   \   000025   F0           MOVX    @DPTR,A
    277          
    278            if (macTxType == MAC_TX_TYPE_SLOTTED_CSMA)
   \   000026   90....       MOV     DPTR,#macTxType
   \   000029   E0           MOVX    A,@DPTR
   \   00002A   7007         JNZ     ??txCsmaPrep_1
    279            {
    280              MAC_RADIO_TX_PREP_CSMA_SLOTTED();
   \   00002C                ; Setup parameters for call to function macCspTxPrepCsmaSlotted
   \   00002C   90....       MOV     DPTR,#(macCspTxPrepCsmaSlotted & 0xffff)
   \   00002F   74..         MOV     A,#((macCspTxPrepCsmaSlotted >> 16) & 0xff)
   \   000031   8005         SJMP    ??txCsmaPrep_2
    281            }
    282            else
    283            {
    284              MAC_RADIO_TX_PREP_CSMA_UNSLOTTED();
   \                     ??txCsmaPrep_1:
   \   000033                ; Setup parameters for call to function macCspTxPrepCsmaUnslotted
   \   000033   90....       MOV     DPTR,#(macCspTxPrepCsmaUnslotted & 0xffff)
   \   000036   74..         MOV     A,#((macCspTxPrepCsmaUnslotted >> 16) & 0xff)
   \                     ??txCsmaPrep_2:
   \   000038   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    285            }
    286          }
   \   00003B   7F02         MOV     R7,#0x2
   \   00003D   02....       LJMP    ?BANKED_LEAVE_XDATA
    287          
    288          
    289          /*=================================================================================================
    290           * @fn          txGo
    291           *
    292           * @brief       Start a transmit going.
    293           *
    294           * @param       none
    295           *
    296           * @return      none
    297           *=================================================================================================
    298           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    299          static void txGo(void)
   \                     ??txGo:
    300          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    301            /*
    302             *  If execution has reached this point, any transmitted ACK has long since completed.  It is
    303             *  possible though that there is still a pending callback.  If so, it is irrelevant and needs to
    304             *  be canceled at this point.
    305             */
    306            MAC_RADIO_CANCEL_ACK_TX_DONE_CALLBACK();
   \   000004                ; Setup parameters for call to function macMcuAndRFIM
   \   000004   79EF         MOV     R1,#-0x11
   \   000006   90....       MOV     DPTR,#(macMcuAndRFIM & 0xffff)
   \   000009   74..         MOV     A,#((macMcuAndRFIM >> 16) & 0xff)
   \   00000B   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    307          
    308            /* based on type of transmit, call the correct "go" functionality */
    309            if (macTxType == MAC_TX_TYPE_SLOTTED)
   \   00000E   90....       MOV     DPTR,#macTxType
   \   000011   E0           MOVX    A,@DPTR
   \   000012   6402         XRL     A,#0x2
   \   000014   7007         JNZ     ??txGo_1
    310            {
    311              MAC_RADIO_TX_GO_SLOTTED();
   \   000016                ; Setup parameters for call to function macCspTxGoSlotted
   \   000016   90....       MOV     DPTR,#(macCspTxGoSlotted & 0xffff)
   \   000019   74..         MOV     A,#((macCspTxGoSlotted >> 16) & 0xff)
   \   00001B   8005         SJMP    ??txGo_2
    312            }
    313            else
    314            {
    315              txCsmaGo();
   \                     ??txGo_1:
   \   00001D                ; Setup parameters for call to function txCsmaGo
   \   00001D   90....       MOV     DPTR,#(??txCsmaGo & 0xffff)
   \   000020   74..         MOV     A,#((??txCsmaGo >> 16) & 0xff)
   \                     ??txGo_2:
   \   000022   80..         SJMP    ?Subroutine5
    316            }
    317          }

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine5:
   \   000000   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000003   80..         SJMP    ??Subroutine3_0
    318          
    319          
    320          /*=================================================================================================
    321           * @fn          txCsmaGo
    322           *
    323           * @brief       Start a CSMA transmit going.
    324           *
    325           * @param       none
    326           *
    327           * @return      none
    328           *=================================================================================================
    329           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    330          static void txCsmaGo(void)
   \                     ??txCsmaGo:
    331          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    332            if (macTxType == MAC_TX_TYPE_SLOTTED_CSMA)
   \   000004   90....       MOV     DPTR,#macTxType
   \   000007   E0           MOVX    A,@DPTR
   \   000008   701B         JNZ     ??txCsmaGo_1
    333            {
    334              if (macTxCsmaBackoffDelay >= macDataTxTimeAvailable())
   \   00000A                ; Setup parameters for call to function macDataTxTimeAvailable
   \   00000A   90....       MOV     DPTR,#(macDataTxTimeAvailable & 0xffff)
   \   00000D   74..         MOV     A,#((macDataTxTimeAvailable >> 16) & 0xff)
   \   00000F   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000012   E9           MOV     A,R1
   \   000013   FA           MOV     R2,A
   \   000014   90....       MOV     DPTR,#macTxCsmaBackoffDelay
   \   000017   E0           MOVX    A,@DPTR
   \   000018   C3           CLR     C
   \   000019   9A           SUBB    A,R2
   \   00001A   4009         JC      ??txCsmaGo_1
    335              {
    336                txComplete(MAC_NO_TIME);
   \   00001C                ; Setup parameters for call to function txComplete
   \   00001C   791C         MOV     R1,#0x1c
   \   00001E   90....       MOV     DPTR,#(??txComplete & 0xffff)
   \   000021   74..         MOV     A,#((??txComplete >> 16) & 0xff)
   \   000023   8005         SJMP    ??txCsmaGo_2
    337                return;
    338              }
    339            }
    340          
    341            MAC_RADIO_TX_GO_CSMA();
   \                     ??txCsmaGo_1:
   \   000025                ; Setup parameters for call to function macCspTxGoCsma
   \   000025   90....       MOV     DPTR,#(macCspTxGoCsma & 0xffff)
   \   000028   74..         MOV     A,#((macCspTxGoCsma >> 16) & 0xff)
   \                     ??txCsmaGo_2:
   \   00002A   80..         SJMP    ?Subroutine5
    342          }
    343          
    344          
    345          /**************************************************************************************************
    346           * @fn          macTxFrameRetransmit
    347           *
    348           * @brief       Retransmit the last frame.
    349           *
    350           * @param       none
    351           *
    352           * @return      none
    353           **************************************************************************************************
    354           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    355          void macTxFrameRetransmit(void)
   \                     macTxFrameRetransmit:
    356          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    357            txRetransmitFlag = 1;
   \   000004   7401         MOV     A,#0x1
   \   000006   90....       MOV     DPTR,#??txRetransmitFlag
   \   000009   F0           MOVX    @DPTR,A
    358            macTxFrame(macTxType);
   \   00000A                ; Setup parameters for call to function macTxFrame
   \   00000A   90....       MOV     DPTR,#macTxType
   \   00000D   E0           MOVX    A,@DPTR
   \   00000E   F9           MOV     R1,A
   \   00000F   90....       MOV     DPTR,#(macTxFrame & 0xffff)
   \   000012   74..         MOV     A,#((macTxFrame >> 16) & 0xff)
   \   000014                REQUIRE ?Subroutine5
   \   000014                ; // Fall through to label ?Subroutine5
    359          }
    360          
    361          
    362          /**************************************************************************************************
    363           * @fn          macTxStartQueuedFrame
    364           *
    365           * @brief       See if there is a queued frame waiting to transmit.  If so, initiate
    366           *              the transmit now.
    367           *
    368           * @param       none
    369           *
    370           * @return      none
    371           **************************************************************************************************
    372           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next

⌨️ 快捷键说明

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