📄 zmac_cb.lst
字号:
217 ZMacDataInd_t *pDataInd = (ZMacDataInd_t *) pData;
218 uint8 event, status, len, *msdu;
219
220 MAC_MlmeGetReq( MAC_SHORT_ADDRESS, &shortAddr );
\ 0001E4 ; Setup parameters for call to function MAC_MlmeGetReq
\ 0001E4 85..82 MOV DPL,?XSP + 0
\ 0001E7 85..83 MOV DPH,?XSP + 1
\ 0001EA AA82 MOV R2,DPL
\ 0001EC AB83 MOV R3,DPH
\ 0001EE 7953 MOV R1,#0x53
\ 0001F0 90.... MOV DPTR,#(MAC_MlmeGetReq & 0xffff)
\ 0001F3 74.. MOV A,#((MAC_MlmeGetReq >> 16) & 0xff)
\ 0001F5 12.... LCALL ?BCALL ; Banked call to: DPTR()
221 if ( shortAddr == INVALID_SHORT_ADDR || shortAddr == BROADCAST_ADDR )
\ 0001F8 85..82 MOV DPL,?XSP + 0
\ 0001FB 85..83 MOV DPH,?XSP + 1
\ 0001FE E0 MOVX A,@DPTR
\ 0001FF 64FE XRL A,#0xfe
\ 000201 7004 JNZ ??MAC_CbackEvent_17
\ 000203 A3 INC DPTR
\ 000204 E0 MOVX A,@DPTR
\ 000205 64FF XRL A,#0xff
\ ??MAC_CbackEvent_17:
\ 000207 6011 JZ ??MAC_CbackEvent_18
\ 000209 85..82 MOV DPL,?XSP + 0
\ 00020C 85..83 MOV DPH,?XSP + 1
\ 00020F E0 MOVX A,@DPTR
\ 000210 64FF XRL A,#0xff
\ 000212 7004 JNZ ??MAC_CbackEvent_19
\ 000214 A3 INC DPTR
\ 000215 E0 MOVX A,@DPTR
\ 000216 64FF XRL A,#0xff
\ ??MAC_CbackEvent_19:
\ 000218 700C JNZ ??MAC_CbackEvent_20
222 {
223 osal_msg_deallocate( (uint8 *)msgPtr );
\ ??MAC_CbackEvent_18:
\ 00021A ; Setup parameters for call to function osal_msg_deallocate
\ 00021A EE MOV A,R6
\ 00021B FA MOV R2,A
\ 00021C EF MOV A,R7
\ 00021D FB MOV R3,A
\ 00021E 90.... MOV DPTR,#(osal_msg_deallocate & 0xffff)
\ 000221 74.. MOV A,#((osal_msg_deallocate >> 16) & 0xff)
\ 000223 02.... LJMP ??MAC_CbackEvent_21 & 0xFFFF
224 return;
225 }
226
227 /* Store parameters */
228 event = pData->hdr.event;
\ ??MAC_CbackEvent_20:
\ 000226 85..82 MOV DPL,?V0 + 4
\ 000229 85..83 MOV DPH,?V0 + 5
\ 00022C E0 MOVX A,@DPTR
\ 00022D C0E0 PUSH A
\ 00022F 7402 MOV A,#0x2
\ 000231 12.... LCALL ?XSTACK_DISP0_8
\ 000234 D0E0 POP A
\ 000236 12.... LCALL ?Subroutine7 & 0xFFFF
229 status = pData->hdr.status;
\ ??CrossCallReturnLabel_15:
\ 000239 E0 MOVX A,@DPTR
\ 00023A F5.. MOV ?V0 + 7,A
230 len = pData->dataInd.msdu.len;
\ 00023C 85..82 MOV DPL,?V0 + 4
\ 00023F 85..83 MOV DPH,?V0 + 5
\ 000242 A3 INC DPTR
\ 000243 A3 INC DPTR
\ 000244 A3 INC DPTR
\ 000245 A3 INC DPTR
\ 000246 E0 MOVX A,@DPTR
\ 000247 F5.. MOV ?V0 + 3,A
231 msdu = pData->dataInd.msdu.p;
\ 000249 85..82 MOV DPL,?V0 + 4
\ 00024C 85..83 MOV DPH,?V0 + 5
\ 00024F A3 INC DPTR
\ 000250 A3 INC DPTR
\ 000251 E0 MOVX A,@DPTR
\ 000252 F8 MOV R0,A
\ 000253 A3 INC DPTR
\ 000254 E0 MOVX A,@DPTR
\ 000255 F9 MOV R1,A
\ 000256 7403 MOV A,#0x3
\ 000258 12.... LCALL ?XSTACK_DISP0_8
\ 00025B E8 MOV A,R0
\ 00025C F0 MOVX @DPTR,A
\ 00025D A3 INC DPTR
\ 00025E E9 MOV A,R1
\ 00025F F0 MOVX @DPTR,A
232
233 /* Copy header */
234 #if defined ( ZBIT )
235 // ZBIT requires two copies to handle 32 bit alignment
236 osal_memcpy(&pDataInd->SrcAddr, &pData->dataInd.mac, sizeof(zAddrType_t) * 2 );
237 osal_memcpy(&pDataInd->Timestamp, &pData->dataInd.mac.timestamp, sizeof(macDataInd_t) - sizeof(ZMacEventHdr_t) - sizeof(zAddrType_t) * 2);
238 #else
239 osal_memcpy(&pDataInd->SrcAddr, &pData->dataInd.mac, sizeof(macDataInd_t) - sizeof(ZMacEventHdr_t));
\ 000260 ; Setup parameters for call to function osal_memcpy
\ 000260 E5.. MOV A,?V0 + 4
\ 000262 2412 ADD A,#0x12
\ 000264 F5.. MOV ?V0 + 0,A
\ 000266 E5.. MOV A,?V0 + 5
\ 000268 3400 ADDC A,#0x0
\ 00026A F5.. MOV ?V0 + 1,A
\ 00026C 75..00 MOV ?V0 + 2,#0x0
\ 00026F 78.. MOV R0,#?V0 + 0
\ 000271 12.... LCALL ?PUSH_XSTACK_I_THREE
\ 000274 7C1E MOV R4,#0x1e
\ 000276 7D00 MOV R5,#0x0
\ 000278 E5.. MOV A,?V0 + 4
\ 00027A 2402 ADD A,#0x2
\ 00027C FA MOV R2,A
\ 00027D E5.. MOV A,?V0 + 5
\ 00027F 12.... LCALL ?Subroutine6 & 0xFFFF
\ ??CrossCallReturnLabel_14:
\ 000282 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000285 7403 MOV A,#0x3
\ 000287 12.... LCALL ?DEALLOC_XSTACK8
240 #endif
241 /* Security - set to zero for now */
242 pDataInd->Sec.SecurityLevel = false;
\ 00028A E5.. MOV A,?V0 + 4
\ 00028C 242A ADD A,#0x2a
\ 00028E F582 MOV DPL,A
\ 000290 E5.. MOV A,?V0 + 5
\ 000292 3400 ADDC A,#0x0
\ 000294 F583 MOV DPH,A
\ 000296 E4 CLR A
\ 000297 12.... LCALL ?Subroutine7 & 0xFFFF
243
244 /* Restore parameters */
245 pDataInd->hdr.Status = status;
\ ??CrossCallReturnLabel_16:
\ 00029A E5.. MOV A,?V0 + 7
\ 00029C F0 MOVX @DPTR,A
246 pDataInd->hdr.Event = event;
\ 00029D 7402 MOV A,#0x2
\ 00029F 12.... LCALL ?XSTACK_DISP0_8
\ 0002A2 E0 MOVX A,@DPTR
\ 0002A3 85..82 MOV DPL,?V0 + 4
\ 0002A6 85..83 MOV DPH,?V0 + 5
\ 0002A9 F0 MOVX @DPTR,A
247 pDataInd->msduLength = len;
\ 0002AA E5.. MOV A,?V0 + 4
\ 0002AC 242D ADD A,#0x2d
\ 0002AE F582 MOV DPL,A
\ 0002B0 E5.. MOV A,?V0 + 5
\ 0002B2 3400 ADDC A,#0x0
\ 0002B4 F583 MOV DPH,A
\ 0002B6 E5.. MOV A,?V0 + 3
\ 0002B8 F0 MOVX @DPTR,A
248
249 if (len)
\ 0002B9 6010 JZ ??MAC_CbackEvent_22
250 pDataInd->msdu = msdu;
\ 0002BB 7403 MOV A,#0x3
\ 0002BD 12.... LCALL ?XSTACK_DISP0_8
\ 0002C0 E0 MOVX A,@DPTR
\ 0002C1 F8 MOV R0,A
\ 0002C2 A3 INC DPTR
\ 0002C3 E0 MOVX A,@DPTR
\ 0002C4 F9 MOV R1,A
\ 0002C5 12.... LCALL ?Subroutine3 & 0xFFFF
\ ??CrossCallReturnLabel_7:
\ 0002C8 02.... LJMP ??CrossCallReturnLabel_9 & 0xFFFF
251 else
252 pDataInd->msdu = NULL;
\ ??MAC_CbackEvent_22:
\ 0002CB 12.... LCALL ?Subroutine3 & 0xFFFF
\ ??CrossCallReturnLabel_8:
\ 0002CE E4 CLR A
\ 0002CF F0 MOVX @DPTR,A
\ ??MAC_CbackEvent_16:
\ 0002D0 A3 INC DPTR
\ ??MAC_CbackEvent_12:
\ 0002D1 F0 MOVX @DPTR,A
253
254 break;
255 }
256 }
257
258 msgPtr->hdr.event = zmacCBEventTable[macEvent];
\ ??MAC_CbackEvent_11:
\ 0002D2 E5.. MOV A,?V0 + 6
\ 0002D4 24.. ADD A,#(zmacCBEventTable & 0xff)
\ 0002D6 F582 MOV DPL,A
\ 0002D8 E4 CLR A
\ 0002D9 34.. ADDC A,#((zmacCBEventTable >> 8) & 0xff)
\ 0002DB F583 MOV DPH,A
\ 0002DD E4 CLR A
\ 0002DE 93 MOVC A,@A+DPTR
\ 0002DF 8E82 MOV DPL,R6
\ 0002E1 8F83 MOV DPH,R7
\ 0002E3 F0 MOVX @DPTR,A
259 osal_msg_send( NWK_TaskID, (uint8 *)msgPtr );
\ 0002E4 ; Setup parameters for call to function osal_msg_send
\ 0002E4 EE MOV A,R6
\ 0002E5 FA MOV R2,A
\ 0002E6 EF MOV A,R7
\ 0002E7 FB MOV R3,A
\ 0002E8 90.... MOV DPTR,#NWK_TaskID
\ 0002EB E0 MOVX A,@DPTR
\ 0002EC F9 MOV R1,A
\ 0002ED 90.... MOV DPTR,#(osal_msg_send & 0xffff)
\ 0002F0 74.. MOV A,#((osal_msg_send >> 16) & 0xff)
\ ??MAC_CbackEvent_21:
\ 0002F2 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ ??MAC_CbackEvent_1:
\ 0002F5 7405 MOV A,#0x5
\ 0002F7 12.... LCALL ?DEALLOC_XSTACK8
\ 0002FA 7F08 MOV R7,#0x8
\ 0002FC 02.... LJMP ?BANKED_LEAVE_XDATA
260 }
261 }
262 #endif
263 }
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine7:
\ 000000 F0 MOVX @DPTR,A
\ 000001 85..82 MOV DPL,?V0 + 4
\ 000004 85..83 MOV DPH,?V0 + 5
\ 000007 A3 INC DPTR
\ 000008 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine6:
\ 000000 3400 ADDC A,#0x0
\ 000002 FB MOV R3,A
\ 000003 90.... MOV DPTR,#(osal_memcpy & 0xffff)
\ 000006 74.. MOV A,#((osal_memcpy >> 16) & 0xff)
\ 000008 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine5:
\ 000000 EE MOV A,R6
\ 000001 2409 ADD A,#0x9
\ 000003 F5.. MOV ?V0 + 4,A
\ 000005 EF MOV A,R7
\ 000006 3400 ADDC A,#0x0
\ 000008 F5.. MOV ?V0 + 5,A
\ 00000A 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine4:
\ 000000 3400 ADDC A,#0x0
\ 000002 F9 MOV R1,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -