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

📄 mac_tx.lst

📁 CC2430上开关控制灯和温度传感器采集两个例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   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
    373          void macTxStartQueuedFrame(void)
   \                     macTxStartQueuedFrame:
    374          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    375            halIntState_t  s;
    376          
    377            MAC_ASSERT(!macRxActive && !macRxOutgoingAckFlag); /* queued frames should not transmit in middle of a receive */
   \   000004   90....       MOV     DPTR,#macRxActive
   \   000007   E0           MOVX    A,@DPTR
   \   000008   7006         JNZ     ??macTxStartQueuedFrame_0
   \   00000A   90....       MOV     DPTR,#macRxOutgoingAckFlag
   \   00000D   E0           MOVX    A,@DPTR
   \   00000E   6008         JZ      ??macTxStartQueuedFrame_1
   \                     ??macTxStartQueuedFrame_0:
   \   000010                ; Setup parameters for call to function halAssertHandler
   \   000010   90....       MOV     DPTR,#(halAssertHandler & 0xffff)
   \   000013   74..         MOV     A,#((halAssertHandler >> 16) & 0xff)
   \   000015   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    378            
    379            /*
    380             *  Critical sections around the state change prevents any sort of race condition
    381             *  with macTxFrame().  This guarantees function txGo() will only be be called once.
    382             */
    383            HAL_ENTER_CRITICAL_SECTION(s);
   \                     ??macTxStartQueuedFrame_1:
   \   000018   A2AF         MOV     C,0xa8.7
   \   00001A   E4           CLR     A
   \   00001B   92E0         MOV     0xE0 /* A   */.0,C
   \   00001D   C2AF         CLR     0xa8.7
    384            if (macTxActive == MAC_TX_ACTIVE_QUEUED)
   \   00001F   90....       MOV     DPTR,#macTxActive
   \   000022   E0           MOVX    A,@DPTR
   \   000023   6402         XRL     A,#0x2
   \   000025   700A         JNZ     ??macTxStartQueuedFrame_2
    385            {
    386              macTxActive = MAC_TX_ACTIVE_GO;
   \   000027   7483         MOV     A,#-0x7d
   \   000029   12....       LCALL   ?Subroutine2 & 0xFFFF

⌨️ 快捷键说明

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