mac_radio.lst

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

LST
1,202
字号
     63          /* ------------------------------------------------------------------------------------------------
     64           *                                        Local Variables
     65           * ------------------------------------------------------------------------------------------------
     66           */

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
     67          static uint8 reqChannel;
   \                     ??reqChannel:
   \   000000                DS 1

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
     68          static uint8 reqTxPower;
   \                     ??reqTxPower:
   \   000000                DS 1
     69          
     70          
     71          /* ------------------------------------------------------------------------------------------------
     72           *                                        Local Functions
     73           * ------------------------------------------------------------------------------------------------
     74           */
     75          static uint8 radioComputeED(int8 rssiDbm);
     76          
     77          
     78          /**************************************************************************************************
     79           * @fn          macRadioInit
     80           *
     81           * @brief       Initialize radio software.
     82           *
     83           * @param       none
     84           *
     85           * @return      none
     86           **************************************************************************************************
     87           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
     88          void macRadioInit(void)
   \                     macRadioInit:
     89          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
     90            /* variable initialization for this module */
     91            reqChannel    = MAC_RADIO_CHANNEL_DEFAULT;
   \   000004   740B         MOV     A,#0xb
   \   000006   90....       MOV     DPTR,#??reqChannel
   \   000009   F0           MOVX    @DPTR,A
     92            macPhyChannel = MAC_RADIO_CHANNEL_DEFAULT;
   \   00000A   90....       MOV     DPTR,#macPhyChannel
   \   00000D   F0           MOVX    @DPTR,A
     93            reqTxPower    = MAC_RADIO_TX_POWER_DEFAULT;
   \   00000E   741F         MOV     A,#0x1f
   \   000010   90....       MOV     DPTR,#??reqTxPower
   \   000013   F0           MOVX    @DPTR,A
     94            macPhyTxPower = MAC_RADIO_TX_POWER_DEFAULT;
   \   000014   90....       MOV     DPTR,#macPhyTxPower
   \   000017   80..         SJMP    ??Subroutine2_0
     95          }

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine2:
   \   000000   90DF4B       MOV     DPTR,#-0x20b5
   \                     ??Subroutine2_0:
   \   000003   F0           MOVX    @DPTR,A
   \   000004   80..         SJMP    ??Subroutine0_1

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   90....       MOV     DPTR,#(??radioComputeED & 0xffff)
   \   000003   74..         MOV     A,#((??radioComputeED >> 16) & 0xff)
   \                     ??Subroutine0_0:
   \   000005   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \                     ??Subroutine0_1:
   \   000008   D083         POP     DPH
   \   00000A   D082         POP     DPL
   \   00000C   02....       LJMP    ?BRET
     96          
     97          
     98          /**************************************************************************************************
     99           * @fn          macRadioReset
    100           *
    101           * @brief       Resets the radio module.
    102           *
    103           * @param       none
    104           *
    105           * @return      none
    106           **************************************************************************************************
    107           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    108          void macRadioReset(void)
   \                     macRadioReset:
    109          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    110            macRadioStopScan();
   \   000004                ; Setup parameters for call to function macRadioStopScan
   \   000004   90....       MOV     DPTR,#(macRadioStopScan & 0xffff)
   \   000007   74..         MOV     A,#((macRadioStopScan >> 16) & 0xff)
   \   000009   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    111            macRadioEnergyDetectStop();
   \   00000C                ; Setup parameters for call to function macRadioEnergyDetectStop
   \   00000C   90....       MOV     DPTR,#(macRadioEnergyDetectStop & 0xffff)
   \   00000F   74..         MOV     A,#((macRadioEnergyDetectStop >> 16) & 0xff)
   \   000011   80..         SJMP    ??Subroutine0_0
    112          }
    113          
    114          
    115          /**************************************************************************************************
    116           * @fn          macRadioRandomByte
    117           *
    118           * @brief       Return a random byte derived from previously set random seed.
    119           *
    120           * @param       none
    121           *
    122           * @return      a random byte
    123           **************************************************************************************************
    124           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    125          uint8 macRadioRandomByte(void)
   \                     macRadioRandomByte:
    126          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    127            return(MAC_RADIO_RANDOM_BYTE());
   \   000004                ; Setup parameters for call to function macMcuRandomByte
   \   000004   90....       MOV     DPTR,#(macMcuRandomByte & 0xffff)
   \   000007   74..         MOV     A,#((macMcuRandomByte >> 16) & 0xff)
   \   000009   80..         SJMP    ??Subroutine0_0
    128          }
    129          
    130          
    131          /**************************************************************************************************
    132           * @fn          macRadioSetPanCoordinator
    133           *
    134           * @brief       Configure the pan coordinator status of the radio
    135           *
    136           * @param       panCoordFlag - non-zero to configure radio to be pan coordinator
    137           *                             zero to configure radio as NON pan coordinator
    138           *
    139           * @return      none
    140           **************************************************************************************************
    141           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    142          void macRadioSetPanCoordinator(uint8 panCoordFlag)
   \                     macRadioSetPanCoordinator:
    143          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    144            /* abstracted radio configuration */
    145            MAC_RADIO_SET_PAN_COORDINATOR(panCoordFlag);
   \   000004   90DF02       MOV     DPTR,#-0x20fe
   \   000007   E0           MOVX    A,@DPTR
   \   000008   FA           MOV     R2,A
   \   000009   E9           MOV     A,R1
   \   00000A   6004         JZ      ??macRadioSetPanCoordinator_0
   \   00000C   D2F0         SETB    B.0
   \   00000E   8002         SJMP    ??macRadioSetPanCoordinator_1
   \                     ??macRadioSetPanCoordinator_0:
   \   000010   C2F0         CLR     B.0
   \                     ??macRadioSetPanCoordinator_1:
   \   000012   A2F0         MOV     C,B.0
   \   000014   E4           CLR     A
   \   000015   92E0         MOV     0xE0 /* A   */.0,C
   \   000017   C4           SWAP    A
   \   000018   C0E0         PUSH    A
   \   00001A   74EF         MOV     A,#-0x11
   \   00001C   5A           ANL     A,R2
   \   00001D   FA           MOV     R2,A
   \   00001E   D0E0         POP     A
   \   000020   4A           ORL     A,R2
   \   000021   80..         SJMP    ??Subroutine2_0
    146          }
    147          
    148          
    149          /**************************************************************************************************
    150           * @fn          macRadioSetPanID
    151           *
    152           * @brief       Set the pan ID on the radio.
    153           *
    154           * @param       panID - 16 bit PAN identifier
    155           *
    156           * @return      none
    157           **************************************************************************************************
    158           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    159          void macRadioSetPanID(uint16 panID)
   \                     macRadioSetPanID:
    160          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    161            /* abstracted radio configuration */
    162            MAC_RADIO_SET_PAN_ID(panID);
   \   000004   EA           MOV     A,R2
   \   000005   90DF4C       MOV     DPTR,#-0x20b4
   \   000008   F0           MOVX    @DPTR,A
   \   000009   EB           MOV     A,R3
   \   00000A   80..         SJMP    ?Subroutine2
    163          }
    164          
    165          
    166          /**************************************************************************************************
    167           * @fn          macRadioSetShortAddr
    168           *
    169           * @brief       Set the short addrss on the radio.
    170           *
    171           * @param       shortAddr - 16 bit short address
    172           *
    173           * @return      none
    174           **************************************************************************************************
    175           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    176          void macRadioSetShortAddr(uint16 shortAddr)
   \                     macRadioSetShortAddr:
    177          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    178            /* abstracted radio configuration */
    179            MAC_RADIO_SET_SHORT_ADDR(shortAddr);
   \   000004   EA           MOV     A,R2
   \   000005   90DF4E       MOV     DPTR,#-0x20b2
   \   000008   F0           MOVX    @DPTR,A
   \   000009   EB           MOV     A,R3
   \   00000A   90DF4D       MOV     DPTR,#-0x20b3
   \   00000D   80..         SJMP    ??Subroutine2_0

⌨️ 快捷键说明

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