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

📄 zmac_cb.lst

📁 用IAR开发的ZIGBEE网络路由例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   00001F   F8           MOV     R0,A
   \   000020   7421         MOV     A,#0x21
   \   000022   28           ADD     A,R0
   \   000023   FA           MOV     R2,A
   \   000024   E4           CLR     A
   \   000025   3400         ADDC    A,#0x0
   \   000027   FB           MOV     R3,A
   \   000028   8027         SJMP    ??getZMacDynamicSize_3
     87            case MAC_MLME_SCAN_CNF:
     88              if (pData->scanCnf.scanType == ZMAC_ED_SCAN)
   \                     ??getZMacDynamicSize_2:
   \   00002A   8A82         MOV     DPL,R2
   \   00002C   8B83         MOV     DPH,R3
   \   00002E   A3           INC     DPTR
   \   00002F   A3           INC     DPTR
   \   000030   E0           MOVX    A,@DPTR
   \   000031   7004         JNZ     ??getZMacDynamicSize_4
     89                return ZMAC_ED_SCAN_MAXCHANNELS;
   \   000033   7A1B         MOV     R2,#0x1b
   \   000035   8018         SJMP    ??getZMacDynamicSize_5
     90              else
     91                return sizeof( ZMacPanDesc_t ) * pData->scanCnf.resultListSize;
   \                     ??getZMacDynamicSize_4:
   \   000037   8A82         MOV     DPL,R2
   \   000039   8B83         MOV     DPH,R3
   \   00003B   A3           INC     DPTR
   \   00003C   A3           INC     DPTR
   \   00003D   A3           INC     DPTR
   \   00003E   A3           INC     DPTR
   \   00003F   A3           INC     DPTR
   \   000040   A3           INC     DPTR
   \   000041   A3           INC     DPTR
   \   000042   A3           INC     DPTR
   \   000043   E0           MOVX    A,@DPTR
   \   000044   75F021       MOV     B,#0x21
   \   000047   A4           MUL     AB
   \   000048   FA           MOV     R2,A
   \   000049   ABF0         MOV     R3,B
   \   00004B   8004         SJMP    ??getZMacDynamicSize_3
     92            }
     93          
     94            return 0;
   \                     ??getZMacDynamicSize_0:
   \   00004D   7A00         MOV     R2,#0x0
   \                     ??getZMacDynamicSize_5:
   \   00004F   7B00         MOV     R3,#0x0
   \                     ??getZMacDynamicSize_3:
   \   000051                REQUIRE ?Subroutine8
   \   000051                ; // Fall through to label ?Subroutine8
     95          }

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine8:
   \   000000   D083         POP     DPH
   \   000002   D082         POP     DPL
   \   000004   02....       LJMP    ?BRET
     96          

   \                                 In segment CODE_C, align 1
     97          const uint8 CODE zmacCBEventTable [] = {
   \                     zmacCBEventTable:
   \   000000   FF222324     DB 255, 34, 35, 36, 42, 38, 41, 37, 49, 50, 51, 55, 32, 33, 54, 255, 65
   \            2A262925
   \            31323337
   \            202136FF
   \            41      
     98            0xff,                         /* Unused */
     99            MACCB_ASSOCIATE_IND_CMD,      /* MAC_MLME_ASSOCIATE_IND */
    100            MACCB_ASSOCIATE_CNF_CMD,      /* MAC_MLME_ASSOCIATE_CNF */
    101            MACCB_DISASSOCIATE_IND_CMD,   /* MAC_MLME_DISASSOCIATE_IND */
    102            MACCB_DISASSOCIATE_CNF_CMD,   /* MAC_MLME_DISASSOCIATE_CNF */
    103            MACCB_BEACON_NOTIFY_IND_CMD,  /* MAC_MLME_BEACON_NOTIFY_IND */
    104            /*  0xff,  */                 /* MAC_MLME_GTS_IND */
    105            /*  0xff,  */                 /* MAC_MLME_GTS_CNF */
    106            MACCB_ORPHAN_IND_CMD,         /* MAC_MLME_ORPHAN_IND */
    107            MACCB_SCAN_CNF_CMD,           /* MAC_MLME_SCAN_CNF */
    108            MACCB_START_CNF_CMD,          /* MAC_MLME_START_CNF */
    109            MACCB_SYNC_LOSS_IND_CMD,      /* MAC_MLME_SYNC_LOSS_IND */
    110            MACCB_POLL_CNF_CMD,           /* MAC_MLME_POLL_CNF */
    111            MACCB_COMM_STATUS_IND_CMD,    /* MAC_MLME_COMM_STATUS_IND */
    112            /*  0xff,  */                 /* MAC_MLME_RX_ENABLE_CNF */
    113            MACCB_DATA_CNF_CMD,           /* MAC_MCPS_DATA_CNF */
    114            MACCB_DATA_IND_CMD,           /* MAC_MCPS_DATA_IND */
    115            MACCB_PURGE_CNF_CMD,          /* MAC_MCPS_PURGE_CNF */
    116            0xff,                         /* MAC_PWR_ON_CNF */
    117            MACCB_POLL_IND_CMD            /* MAC_MLME_POLL_IND */
    118          };
    119          
    120          #endif /* !defined NONWK */
    121          
    122          /********************************************************************************************************
    123           *                                                TYPEDEFS
    124           ********************************************************************************************************/
    125          
    126          /********************************************************************************************************
    127           *                                               GLOBALS
    128           ********************************************************************************************************/
    129          /* Send Callbacks to MT */
    130          void zmacSendMTCallback( macCbackEvent_t *pData );
    131          
    132          
    133          /********************************************************************************************************
    134           * @fn       MAC_CbackEvent()
    135           *
    136           * @brief    convert MAC data confirm and indication to ZMac and send to NWK
    137           *
    138           * @param    pData - pointer to macCbackEvent_t
    139           *
    140           * @return   none
    141           ********************************************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    142          void  MAC_CbackEvent(macCbackEvent_t *pData)
   \                     MAC_CbackEvent:
    143          {
   \   000000   74F0         MOV     A,#-0x10
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 16
   \   000005                ; Auto size: 5
   \   000005   74FB         MOV     A,#-0x5
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
   \   00000A   8A..         MOV     ?V0 + 4,R2
   \   00000C   8B..         MOV     ?V0 + 5,R3
    144          #ifdef MT_MAC_CB_FUNC
    145            zmacSendMTCallback ( pData );
    146          #elif !defined NONWK
    147          
    148            uint8 macEvent = pData->hdr.event;
   \   00000E   8A82         MOV     DPL,R2
   \   000010   8B83         MOV     DPH,R3
   \   000012   E0           MOVX    A,@DPTR
   \   000013   F5..         MOV     ?V0 + 6,A
    149            uint16 msgLen = zmacCBSizeTable[macEvent] + getZMacDynamicSize(macEvent, pData);
   \   000015   12....       LCALL   ?Subroutine2 & 0xFFFF
   \                     ??CrossCallReturnLabel_5:
   \   000018   FE           MOV     R6,A
   \   000019                ; Setup parameters for call to function getZMacDynamicSize
   \   000019   A9..         MOV     R1,?V0 + 6
   \   00001B   90....       MOV     DPTR,#(getZMacDynamicSize & 0xffff)
   \   00001E   74..         MOV     A,#((getZMacDynamicSize >> 16) & 0xff)
   \   000020   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000023   EA           MOV     A,R2
   \   000024   2E           ADD     A,R6
   \   000025   FE           MOV     R6,A
   \   000026   EB           MOV     A,R3
   \   000027   3400         ADDC    A,#0x0
   \   000029   FF           MOV     R7,A
    150            macCbackEvent_t *msgPtr;
    151          
    152            /* Allocate osal msg buffer */
    153            if (msgLen > 0)
   \   00002A   EE           MOV     A,R6
   \   00002B   7001         JNZ     ??MAC_CbackEvent_0
   \   00002D   EF           MOV     A,R7
   \                     ??MAC_CbackEvent_0:
   \   00002E   7003         JNZ     $+5
   \   000030   02....       LJMP    ??MAC_CbackEvent_1 & 0xFFFF
    154            {
    155              if (macEvent == MAC_MCPS_DATA_IND)
   \   000033   740D         MOV     A,#0xd
   \   000035   65..         XRL     A,?V0 + 6
   \   000037   7006         JNZ     ??MAC_CbackEvent_2
    156                msgPtr = pData;
   \   000039   AE..         MOV     R6,?V0 + 4
   \   00003B   AF..         MOV     R7,?V0 + 5
   \   00003D   8030         SJMP    ??MAC_CbackEvent_3
    157              else
    158              {
    159                if ( macEvent == MAC_MCPS_DATA_CNF )
   \                     ??MAC_CbackEvent_2:
   \   00003F   740C         MOV     A,#0xc
   \   000041   65..         XRL     A,?V0 + 6
   \   000043   7016         JNZ     ??MAC_CbackEvent_4
    160                {
    161                  osal_msg_deallocate( (uint8*)pData->dataCnf.pDataReq );
   \   000045                ; Setup parameters for call to function osal_msg_deallocate
   \   000045   85..82       MOV     DPL,?V0 + 4
   \   000048   85..83       MOV     DPH,?V0 + 5
   \   00004B   A3           INC     DPTR
   \   00004C   A3           INC     DPTR
   \   00004D   A3           INC     DPTR
   \   00004E   E0           MOVX    A,@DPTR
   \   00004F   FA           MOV     R2,A
   \   000050   A3           INC     DPTR
   \   000051   E0           MOVX    A,@DPTR
   \   000052   FB           MOV     R3,A
   \   000053   90....       MOV     DPTR,#(osal_msg_deallocate & 0xffff)
   \   000056   74..         MOV     A,#((osal_msg_deallocate >> 16) & 0xff)
   \   000058   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    162                }
    163                msgPtr = (macCbackEvent_t *)osal_msg_allocate(msgLen);
   \                     ??MAC_CbackEvent_4:
   \   00005B                ; Setup parameters for call to function osal_msg_allocate
   \   00005B   EE           MOV     A,R6
   \   00005C   FA           MOV     R2,A
   \   00005D   EF           MOV     A,R7
   \   00005E   FB           MOV     R3,A
   \   00005F   90....       MOV     DPTR,#(osal_msg_allocate & 0xffff)
   \   000062   74..         MOV     A,#((osal_msg_allocate >> 16) & 0xff)
   \   000064   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000067   8A..         MOV     ?V0 + 0,R2
   \   000069   8B..         MOV     ?V0 + 1,R3
   \   00006B   AE..         MOV     R6,?V0 + 0
   \   00006D   AF..         MOV     R7,?V0 + 1
    164              }
    165          
    166              if (msgPtr)
   \                     ??MAC_CbackEvent_3:
   \   00006F   EE           MOV     A,R6
   \   000070   7001         JNZ     ??MAC_CbackEvent_5
   \   000072   EF           MOV     A,R7
   \                     ??MAC_CbackEvent_5:
   \   000073   7003         JNZ     $+5
   \   000075   02....       LJMP    ??MAC_CbackEvent_1 & 0xFFFF
    167              {
    168                if (macEvent != MAC_MCPS_DATA_IND)
   \   000078   740D         MOV     A,#0xd
   \   00007A   65..         XRL     A,?V0 + 6
   \   00007C   602A         JZ      ??MAC_CbackEvent_6
    169                  osal_memcpy(msgPtr, pData, zmacCBSizeTable[macEvent]);
   \   00007E                ; Setup parameters for call to function osal_memcpy
   \   00007E   85....       MOV     ?V0 + 0,?V0 + 4
   \   000081   85....       MOV     ?V0 + 1,?V0 + 5
   \   000084   75..00       MOV     ?V0 + 2,#0x0
   \   000087   78..         MOV     R0,#?V0 + 0
   \   000089   12....       LCALL   ?PUSH_XSTACK_I_THREE
   \   00008C   85....       MOV     ?V0 + 0,?V0 + 6
   \   00008F   E5..         MOV     A,?V0 + 0
   \   000091   12....       LCALL   ?Subroutine2 & 0xFFFF
   \                     ??CrossCallReturnLabel_6:
   \   000094   FC           MOV     R4,A
   \   000095   7D00         MOV     R5,#0x0
   \   000097   EE           MOV     A,R6
   \   000098   FA           MOV     R2,A
   \   000099   EF           MOV     A,R7
   \   00009A   FB           MOV     R3,A
   \   00009B   90....       MOV     DPTR,#(osal_memcpy & 0xffff)
   \   00009E   74..         MOV     A,#((osal_memcpy >> 16) & 0xff)
   \   0000A0   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   0000A3   7403         MOV     A,#0x3
   \   0000A5   12....       LCALL   ?DEALLOC_XSTACK8
    170          
    171                switch (macEvent) {
   \                     ??MAC_CbackEvent_6:
   \   0000A8   E5..         MOV     A,?V0 + 6
   \   0000AA   12....       LCALL   ?UC_SWITCH_SPARSE
   \                     `?<Jumptable for MAC_CbackEvent>_0`:

⌨️ 快捷键说明

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