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

📄 mac_rx.lst

📁 用IAR开发的ZIGBEE网络路由例子
💻 LST
📖 第 1 页 / 共 5 页
字号:

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    119          uint8 macRxActive;
   \                     macRxActive:
   \   000000                DS 1

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    120          uint8 macRxFilter;
   \                     macRxFilter:
   \   000000                DS 1

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    121          uint8 macRxOutgoingAckFlag;
   \                     macRxOutgoingAckFlag:
   \   000000                DS 1
    122          
    123          
    124          /* ------------------------------------------------------------------------------------------------
    125           *                                       Local Constants
    126           * ------------------------------------------------------------------------------------------------
    127           */

   \                                 In segment CODE_C, align 1
    128          static const uint8 CODE macRxAddrLen[] =
   \                     ??macRxAddrLen:
   \   000000   00BE040A     DB 0, 190, 4, 10
    129          {
    130            0,                                                /* no address */
    131            DUMMY_LEN,                                        /* reserved */
    132            MAC_PAN_ID_FIELD_LEN + MAC_SHORT_ADDR_FIELD_LEN,  /* short address + pan id */
    133            MAC_PAN_ID_FIELD_LEN + MAC_EXT_ADDR_FIELD_LEN     /* extended address + pan id */
    134          };
    135          
    136          
    137          /* ------------------------------------------------------------------------------------------------
    138           *                                       Local Prototypes
    139           * ------------------------------------------------------------------------------------------------
    140           */
    141          static void rxHaltCleanupFinalStep(void);
    142          
    143          static void rxStartIsr(void);
    144          static void rxAddrIsr(void);
    145          static void rxPayloadIsr(void);
    146          static void rxDiscardIsr(void);
    147          static void rxFcsIsr(void);
    148          
    149          static void rxPrepPayload(void);
    150          static void rxDiscardFrame(void);
    151          static void rxDone(void);
    152          static void rxPostRxUpdates(void);
    153          
    154          
    155          /* ------------------------------------------------------------------------------------------------
    156           *                                         Local Variables
    157           * ------------------------------------------------------------------------------------------------
    158           */

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    159          static void    (* pFuncRxState)(void);
   \                     ??pFuncRxState:
   \   000000                DS 3

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    160          static macRx_t  * pRxBuf;
   \                     ??pRxBuf:
   \   000000                DS 2
    161          

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    162          static uint8  rxBuf[MAC_PHY_PHR_LEN + MAC_FCF_FIELD_LEN + MAC_SEQ_NUM_FIELD_LEN];
   \                     ??rxBuf:
   \   000000                DS 4

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

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

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

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

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

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

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    169          static uint8  rxResetFlag;
   \                     ??rxResetFlag:
   \   000000                DS 1
    170          
    171          
    172          /**************************************************************************************************
    173           * @fn          macRxInit
    174           *
    175           * @brief       Initialize receive variable states.
    176           *
    177           * @param       none
    178           *
    179           * @return      none
    180           **************************************************************************************************
    181           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    182          void macRxInit(void)
   \                     macRxInit:
    183          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    184            macRxFilter          = RX_FILTER_OFF;
   \   000004   E4           CLR     A
   \   000005   90....       MOV     DPTR,#macRxFilter
   \   000008   F0           MOVX    @DPTR,A
    185            rxPromiscuousMode    = PROMISCUOUS_MODE_OFF;
   \   000009   90....       MOV     DPTR,#??rxPromiscuousMode
   \   00000C   F0           MOVX    @DPTR,A
    186            pRxBuf               = NULL; /* required for macRxReset() to function correctly */
   \   00000D   90....       MOV     DPTR,#??pRxBuf
   \   000010   F0           MOVX    @DPTR,A
   \   000011   A3           INC     DPTR
   \   000012   F0           MOVX    @DPTR,A
    187            macRxActive          = MAC_RX_ACTIVE_NO_ACTIVITY;
   \   000013   90....       MOV     DPTR,#macRxActive
   \   000016   12....       LCALL   ?Subroutine1 & 0xFFFF
    188            pFuncRxState         = &rxStartIsr;
    189            macRxOutgoingAckFlag = 0;
   \                     ??CrossCallReturnLabel_2:
   \   000019   E4           CLR     A
   \   00001A   90....       MOV     DPTR,#macRxOutgoingAckFlag
   \   00001D   F0           MOVX    @DPTR,A
    190            rxIsrActiveFlag      = 0;
   \   00001E   90....       MOV     DPTR,#??rxIsrActiveFlag
   \   000021   F0           MOVX    @DPTR,A
    191            rxResetFlag          = 0;
   \   000022   90....       MOV     DPTR,#??rxResetFlag
   \   000025   F0           MOVX    @DPTR,A
    192          }
   \   000026   02....       LJMP    ??Subroutine20_0 & 0xFFFF

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine20:
   \   000000   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \                     ??Subroutine20_0:
   \   000003   D083         POP     DPH
   \   000005   D082         POP     DPL
   \   000007   02....       LJMP    ?BRET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine1:
   \   000000   12....       LCALL   ?Subroutine16 & 0xFFFF
   \                     ??CrossCallReturnLabel_36:
   \   000003   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine16:
   \   000000   F0           MOVX    @DPTR,A
   \   000001   90....       MOV     DPTR,#??pFuncRxState
   \   000004   74..         MOV     A,#(??rxStartIsr & 0xff)
   \   000006   F0           MOVX    @DPTR,A
   \   000007   A3           INC     DPTR
   \   000008   74..         MOV     A,#((??rxStartIsr >> 8) & 0xff)
   \   00000A   F0           MOVX    @DPTR,A
   \   00000B   A3           INC     DPTR
   \   00000C   74..         MOV     A,#((??rxStartIsr >> 16) & 0xff)
   \   00000E   F0           MOVX    @DPTR,A
   \   00000F   22           RET
    193          
    194          
    195          /**************************************************************************************************
    196           * @fn          macRxRadioPowerUpInit
    197           *
    198           * @brief       Initialization for after radio first powers up.
    199           *
    200           * @param       none
    201           *
    202           * @return      none
    203           **************************************************************************************************
    204           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    205          void macRxRadioPowerUpInit(void)
   \                     macRxRadioPowerUpInit:
    206          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    207            /* set threshold at initial value */
    208            MAC_RADIO_SET_RX_THRESHOLD(RX_THRESHOLD_START_LEN);
   \   000004   7405         MOV     A,#0x5
   \   000006   90DF4F       MOV     DPTR,#-0x20b1
   \   000009   F0           MOVX    @DPTR,A
    209          
    210            /* clear any accidental threshold interrupt that happened as part of power up sequence */
    211            MAC_RADIO_CLEAR_RX_THRESHOLD_INTERRUPT_FLAG();
   \   00000A   75E9DF       MOV     0xe9,#-0x21
    212          
    213            /* enable threshold interrupts */
    214            MAC_RADIO_ENABLE_RX_THRESHOLD_INTERRUPT();
   \   00000D                ; Setup parameters for call to function macMcuOrRFIM
   \   00000D   7920         MOV     R1,#0x20
   \   00000F   90....       MOV     DPTR,#(macMcuOrRFIM & 0xffff)
   \   000012   74..         MOV     A,#((macMcuOrRFIM >> 16) & 0xff)
   \   000014   02....       LJMP    ?Subroutine20 & 0xFFFF
    215          }

⌨️ 快捷键说明

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