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

📄 mac_loc.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 4 页
字号:
    258          *          Note, however, that:
    259          *          - No more incoming packets will be processed until this function has
    260          *            returned, in fact all mechanisms except beacon handling and already
    261          *            scheduled transmissions will be halted.
    262          *          - One slot in the RX packet pool will be occupied.
    263          *
    264          *  PARAMETERS:
    265          *       MCPS_DATA_INDICATION *pMDI
    266          *         A pointer to the structure containing the received packet
    267          *
    268          ******************************************************************************/

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    269          ROOT void mcpsDataIndication(MCPS_DATA_INDICATION *pMDI)
   \                     mcpsDataIndication:
    270          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    271             NodeDataIndication(pMDI);
   \   000004                ; Setup parameters for call to function NodeDataIndication
   \   000004   90....       MOV     DPTR,#(NodeDataIndication & 0xffff)
   \   000007   74..         MOV     A,#((NodeDataIndication >> 16) & 0xff)
   \   000009   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    272          }
   \   00000C   80..         SJMP    ??Subroutine0_0

   \                                 In segment NEAR_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   F0           MOVX    @DPTR,A
   \                     ??Subroutine0_0:
   \   000001   D083         POP     DPH
   \   000003   D082         POP     DPL
   \   000005   22           RET
    273          
    274          
    275          /******************************************************************************
    276          *
    277          *	DESCRIPTION:
    278          *      mcpsDataConfirm is called by the MAC layer when a packet transmission
    279          *      initiated by mcpsDataRequest(...) has succeeded or failed.
    280          *
    281          *  PARAMETERS:
    282          *      MAC_ENUM status
    283          *          The data confirm status.
    284          *      BYTE msduHandle
    285          *          The handle of the confirmed frame
    286          *
    287          ******************************************************************************/

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    288          ROOT void mcpsDataConfirm(MAC_ENUM status, BYTE msduHandle)
   \                     mcpsDataConfirm:
    289          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    290             dataConfirmStatus = status;
   \   000004   E9           MOV     A,R1
   \   000005   90....       MOV     DPTR,#dataConfirmStatus
   \   000008   F0           MOVX    @DPTR,A
    291             dataConfirmMsduHandle = msduHandle;
   \   000009   EA           MOV     A,R2
   \   00000A   90....       MOV     DPTR,#dataConfirmMsduHandle
   \   00000D   80..         SJMP    ?Subroutine0
    292          }
    293          
    294          /******************************************************************************
    295          *
    296          ******************************************************************************/

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    297          ROOT void mlmePollConfirm(MAC_ENUM status)
   \                     mlmePollConfirm:
    298          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    299             pollConfirmStatus = status;
   \   000004   E9           MOV     A,R1
   \   000005   90....       MOV     DPTR,#pollConfirmStatus
   \   000008   80..         SJMP    ?Subroutine0
    300          }
    301          
    302          
    303          /******************************************************************************
    304          *
    305          * This function return the IEEE address written to FLASH.
    306          ******************************************************************************/
    307          #define IEEE_ADDRESS_ARRAY 0xFFF8

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    308          ROOT void FetchIeeeAddress(unsigned char *ieeeAddress)
   \                     FetchIeeeAddress:
    309          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    310             unsigned char bank;
    311          
    312             bank = MEMCTR;
   \   000004   E5C7         MOV     A,0xc7
   \   000006   FC           MOV     R4,A
    313          
    314             // switch to bank 3
    315             MEMCTR |= 0x30;
   \   000007   43C730       ORL     0xc7,#0x30
   \   00000A   E5C7         MOV     A,0xc7
    316          
    317             ieeeAddress[0] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY + 0);
   \   00000C   90FFF8       MOV     DPTR,#-0x8
   \   00000F   E4           CLR     A
   \   000010   93           MOVC    A,@A+DPTR
   \   000011   8A82         MOV     DPL,R2
   \   000013   8B83         MOV     DPH,R3
   \   000015   F0           MOVX    @DPTR,A
    318             ieeeAddress[1] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY + 1);
   \   000016   90FFF9       MOV     DPTR,#-0x7
   \   000019   E4           CLR     A
   \   00001A   93           MOVC    A,@A+DPTR
   \   00001B   8A82         MOV     DPL,R2
   \   00001D   8B83         MOV     DPH,R3
   \   00001F   A3           INC     DPTR
   \   000020   F0           MOVX    @DPTR,A
    319             ieeeAddress[2] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY + 2);
   \   000021   90FFFA       MOV     DPTR,#-0x6
   \   000024   E4           CLR     A
   \   000025   93           MOVC    A,@A+DPTR
   \   000026   8A82         MOV     DPL,R2
   \   000028   8B83         MOV     DPH,R3
   \   00002A   A3           INC     DPTR
   \   00002B   A3           INC     DPTR
   \   00002C   F0           MOVX    @DPTR,A
    320             ieeeAddress[3] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY + 3);
   \   00002D   90FFFB       MOV     DPTR,#-0x5
   \   000030   E4           CLR     A
   \   000031   93           MOVC    A,@A+DPTR
   \   000032   8A82         MOV     DPL,R2
   \   000034   8B83         MOV     DPH,R3
   \   000036   A3           INC     DPTR
   \   000037   A3           INC     DPTR
   \   000038   A3           INC     DPTR
   \   000039   F0           MOVX    @DPTR,A
    321             ieeeAddress[4] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY + 4);
   \   00003A   90FFFC       MOV     DPTR,#-0x4
   \   00003D   E4           CLR     A
   \   00003E   93           MOVC    A,@A+DPTR
   \   00003F   8A82         MOV     DPL,R2
   \   000041   8B83         MOV     DPH,R3
   \   000043   A3           INC     DPTR
   \   000044   A3           INC     DPTR
   \   000045   A3           INC     DPTR
   \   000046   A3           INC     DPTR
   \   000047   F0           MOVX    @DPTR,A
    322             ieeeAddress[5] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY + 5);
   \   000048   90FFFD       MOV     DPTR,#-0x3
   \   00004B   E4           CLR     A
   \   00004C   93           MOVC    A,@A+DPTR
   \   00004D   8A82         MOV     DPL,R2
   \   00004F   8B83         MOV     DPH,R3
   \   000051   A3           INC     DPTR
   \   000052   A3           INC     DPTR
   \   000053   A3           INC     DPTR
   \   000054   A3           INC     DPTR
   \   000055   A3           INC     DPTR
   \   000056   F0           MOVX    @DPTR,A
    323             ieeeAddress[6] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY + 6);
   \   000057   90FFFE       MOV     DPTR,#-0x2
   \   00005A   E4           CLR     A
   \   00005B   93           MOVC    A,@A+DPTR
   \   00005C   8A82         MOV     DPL,R2
   \   00005E   8B83         MOV     DPH,R3
   \   000060   A3           INC     DPTR
   \   000061   A3           INC     DPTR
   \   000062   A3           INC     DPTR
   \   000063   A3           INC     DPTR
   \   000064   A3           INC     DPTR
   \   000065   A3           INC     DPTR
   \   000066   F0           MOVX    @DPTR,A
    324             ieeeAddress[7] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY + 7);
   \   000067   90FFFF       MOV     DPTR,#-0x1
   \   00006A   E4           CLR     A
   \   00006B   93           MOVC    A,@A+DPTR
   \   00006C   8A82         MOV     DPL,R2
   \   00006E   8B83         MOV     DPH,R3
   \   000070   A3           INC     DPTR
   \   000071   A3           INC     DPTR
   \   000072   A3           INC     DPTR
   \   000073   A3           INC     DPTR
   \   000074   A3           INC     DPTR
   \   000075   A3           INC     DPTR
   \   000076   A3           INC     DPTR
   \   000077   F0           MOVX    @DPTR,A
    325          
    326             // restore old bank settings
    327             MEMCTR = bank;
   \   000078   8CC7         MOV     0xc7,R4
    328          }
   \   00007A   02....       LJMP    ??Subroutine0_0
    329          
    330          /******************************************************************************
    331          *
    332          ******************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    333          void DataRequest(WORD a, UINT8 length, BYTE* pMsdu){
   \                     DataRequest:
   \   000000   74F6         MOV     A,#-0xa
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 10
   \   000005                ; Auto size: 8
   \   000005   74F8         MOV     A,#-0x8
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
    334             ADDRESS dest;
    335             dest.Short = a;
   \   00000A   85..82       MOV     DPL,?XSP + 0
   \   00000D   85..83       MOV     DPH,?XSP + 1
   \   000010   EA           MOV     A,R2
   \   000011   F0           MOVX    @DPTR,A
   \   000012   A3           INC     DPTR
   \   000013   EB           MOV     A,R3
   \   000014   F0           MOVX    @DPTR,A
    336             dataConfirmStatus = INVALID_STATUS;
   \   000015   7480         MOV     A,#-0x80
   \   000017   90....       MOV     DPTR,#dataConfirmStatus
   \   00001A   F0           MOVX    @DPTR,A
    337             msduHandle = 1;
   \   00001B   7401         MOV     A,#0x1
   \   00001D   90....       MOV     DPTR,#msduHandle
   \   000020   F0           MOVX    @DPTR,A
    338          
    339             // Broadcasted messages and messages sent to PC should not be ack'ed
    340             if(a == BROADCAST_ADDR || a == PC_SHORT){
   \   000021   74FF         MOV     A,#-0x1
   \   000023   6A           XRL     A,R2
   \   000024   7003         JNZ     ??DataRequest_0
   \   000026   74FF         MOV     A,#-0x1
   \   000028   6B           XRL     A,R3
   \                     ??DataRequest_0:
   \   000029   600A         JZ      ??DataRequest_1
   \   00002B   7434         MOV     A,#0x34
   \   00002D   6A           XRL     A,R2
   \   00002E   7003         JNZ     ??DataRequest_2
   \   000030   7412         MOV     A,#0x12
   \   000032   6B           XRL     A,R3
   \                     ??DataRequest_2:
   \   000033   7003         JNZ     ??DataRequest_3
    341                txOptions = TX_OPT_NONE;
   \                     ??DataRequest_1:
   \   000035   E4           CLR     A
   \   000036   8002         SJMP    ??DataRequest_4
    342             }
    343             else{
    344                txOptions = TX_OPT_ACK_REQ;
   \                     ??DataRequest_3:
   \   000038   7401         MOV     A,#0x1
   \                     ??DataRequest_4:
   \   00003A   90....       MOV     DPTR,#txOptions
   \   00003D   F0           MOVX    @DPTR,A
    345             }
    346          
    347             mcpsDataRequest(SRC_ADDR_SHORT | DEST_ADDR_SHORT,
    348                             panId,
    349                             (ADDRESS *) &myShortAddr,
    350                             panId,
    351                             &dest,
    352                             length,
    353                             pMsdu,
    354                             msduHandle,
    355                             txOptions);
   \   00003E                ; Setup parameters for call to function mcpsDataRequest
   \   00003E   E0           MOVX    A,@DPTR
   \   00003F   F5..         MOV     ?V0 + 0,A
   \   000041   78..         MOV     R0,#?V0 + 0
   \   000043   12....       LCALL   ?PUSH_XSTACK_I_ONE
   \   000046   75..01       MOV     ?V0 + 0,#0x1
   \   000049   78..         MOV     R0,#?V0 + 0
   \   00004B   12....       LCALL   ?PUSH_XSTACK_I_ONE
   \   00004E   8C..         MOV     ?V0 + 0,R4
   \   000050   8D..         MOV     ?V0 + 1,R5
   \   000052   78..         MOV     R0,#?V0 + 0
   \   000054   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   000057   E9           MOV     A,R1
   \   000058   F5..         MOV     ?V0 + 0,A
   \   00005A   78..         MOV     R0,#?V0 + 0
   \   00005C   12....       LCALL   ?PUSH_XSTACK_I_ONE
   \   00005F   7405         MOV     A,#0x5
   \   000061   12....       LCALL   ?XSTACK_DISP0_8
   \   000064   8582..       MOV     ?V0 + 0,DPL
   \   000067   8583..       MOV     ?V0 + 1,DPH
   \   00006A   78..         MOV     R0,#?V0 + 0
   \   00006C   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   00006F   90....       MOV     DPTR,#panId
   \   000072   12....       LCALL   ?PUSH_XSTACK8_X_TWO
   \   000075   7C..         MOV     R4,#(myShortAddr & 0xff)
   \   000077   7D..         MOV     R5,#((myShortAddr >> 8) & 0xff)
   \   000079   90....       MOV     DPTR,#panId
   \   00007C   E0           MOVX    A,@DPTR

⌨️ 快捷键说明

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