📄 zmac_cb.lst
字号:
\ 000003 85..82 MOV DPL,?V0 + 4
\ 000006 85..83 MOV DPH,?V0 + 5
\ 000009 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine3:
\ 000000 E5.. MOV A,?V0 + 4
\ 000002 242E ADD A,#0x2e
\ 000004 F582 MOV DPL,A
\ 000006 E5.. MOV A,?V0 + 5
\ 000008 3400 ADDC A,#0x0
\ 00000A F583 MOV DPH,A
\ 00000C 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine2:
\ 000000 24.. ADD A,#(zmacCBSizeTable & 0xff)
\ 000002 F582 MOV DPL,A
\ 000004 E4 CLR A
\ 000005 34.. ADDC A,#((zmacCBSizeTable >> 8) & 0xff)
\ 000007 F583 MOV DPH,A
\ 000009 E4 CLR A
\ 00000A 93 MOVC A,@A+DPTR
\ 00000B 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine1:
\ 000000 EE MOV A,R6
\ 000001 240B ADD A,#0xb
\ 000003 F5.. MOV ?V0 + 4,A
\ 000005 EF MOV A,R7
\ 000006 3400 ADDC A,#0x0
\ 000008 F5.. MOV ?V0 + 5,A
\ 00000A ; Setup parameters for call to function osal_memcpy
\ 00000A 8E82 MOV DPL,R6
\ 00000C 8F83 MOV DPH,R7
\ 00000E A3 INC DPTR
\ 00000F A3 INC DPTR
\ 000010 A3 INC DPTR
\ 000011 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine0:
\ 000000 F0 MOVX @DPTR,A
\ 000001 ; Setup parameters for call to function osal_memcpy
\ 000001 ; Setup parameters for call to function osal_memcpy
\ 000001 90.... MOV DPTR,#ZMac_ScanBuf
\ ??Subroutine0_0:
\ 000004 E0 MOVX A,@DPTR
\ 000005 F5.. MOV ?V0 + 0,A
\ 000007 A3 INC DPTR
\ 000008 E0 MOVX A,@DPTR
\ 000009 F5.. MOV ?V0 + 1,A
\ 00000B 75..00 MOV ?V0 + 2,#0x0
\ 00000E 78.. MOV R0,#?V0 + 0
\ 000010 22 RET
264
265 /********************************************************************************************************
266 * @fn zmacSendMTCallback()
267 *
268 * @brief convert MAC data confirm to ZMac and send to NWK
269 *
270 * @param status -
271 * @param msduHandle -
272 *
273 * @return none
274 ********************************************************************************************************/
275
\ In segment BANKED_CODE, align 1, keep-with-next
276 void zmacSendMTCallback ( macCbackEvent_t *pData )
\ zmacSendMTCallback:
277 {
\ 000000 ; Saved register size: 0
\ 000000 ; Auto size: 0
278 #ifdef MT_MAC_CB_FUNC
279
280 /* Check if MT has subscribed for this callback If so, pass it as an event to MonitorTest */
281 switch (pData->hdr.event)
282 {
283 case MAC_MLME_ASSOCIATE_IND:
284 if ( _macCallbackSub & CB_ID_NWK_ASSOCIATE_IND )
285 nwk_MTCallbackSubNwkAssociateInd ( (ZMacAssociateInd_t *)pData );
286 break;
287
288 case MAC_MLME_ASSOCIATE_CNF:
289 if ( _macCallbackSub & CB_ID_NWK_ASSOCIATE_CNF )
290 nwk_MTCallbackSubNwkAssociateCnf ( (ZMacAssociateCnf_t *)pData );
291 break;
292
293 case MAC_MLME_DISASSOCIATE_IND:
294 if ( _macCallbackSub & CB_ID_NWK_DISASSOCIATE_IND )
295 nwk_MTCallbackSubNwkDisassociateInd ( (ZMacDisassociateInd_t *)pData );
296 break;
297
298 case MAC_MLME_DISASSOCIATE_CNF:
299 if ( _macCallbackSub & CB_ID_NWK_DISASSOCIATE_CNF )
300 nwk_MTCallbackSubNwkDisassociateCnf ( (ZMacDisassociateCnf_t *)pData );
301 break;
302
303 case MAC_MLME_BEACON_NOTIFY_IND:
304 if ( _macCallbackSub & CB_ID_NWK_BEACON_NOTIFY_IND )
305 nwk_MTCallbackSubNwkBeaconNotifyInd( (ZMacBeaconNotifyInd_t *)pData );
306 break;
307
308 case MAC_MLME_ORPHAN_IND:
309 if ( _macCallbackSub & CB_ID_NWK_ORPHAN_IND )
310 nwk_MTCallbackSubNwkOrphanInd( (ZMacOrphanInd_t *) pData );
311 break;
312
313 case MAC_MLME_SCAN_CNF:
314 if ( _macCallbackSub & CB_ID_NWK_SCAN_CNF )
315 {
316 pData->scanCnf.result.pEnergyDetect = ZMac_ScanBuf;
317 nwk_MTCallbackSubNwkScanCnf ( (ZMacScanCnf_t *) pData );
318 }
319
320 if (ZMac_ScanBuf != NULL)
321 {
322 osal_mem_free(ZMac_ScanBuf);
323 ZMac_ScanBuf = NULL;
324 }
325 break;
326
327 case MAC_MLME_START_CNF:
328 if ( _macCallbackSub & CB_ID_NWK_START_CNF )
329 nwk_MTCallbackSubNwkStartCnf ( pData->hdr.status );
330 break;
331
332 case MAC_MLME_SYNC_LOSS_IND:
333 if ( _macCallbackSub & CB_ID_NWK_SYNC_LOSS_IND )
334 nwk_MTCallbackSubNwkSyncLossInd( (ZMacSyncLossInd_t *) pData );
335 break;
336
337 case MAC_MLME_POLL_CNF:
338 if ( _macCallbackSub & CB_ID_NWK_POLL_CNF )
339 nwk_MTCallbackSubNwkPollCnf( pData->hdr.status );
340 break;
341
342 case MAC_MLME_COMM_STATUS_IND:
343 if ( _macCallbackSub & CB_ID_NWK_COMM_STATUS_IND )
344 nwk_MTCallbackSubCommStatusInd ( (ZMacCommStatusInd_t *) pData );
345 break;
346
347 case MAC_MCPS_DATA_CNF:
348 osal_msg_deallocate((uint8*)pData->dataCnf.pDataReq);
349
350 if ( _macCallbackSub & CB_ID_NWK_DATA_CNF )
351 nwk_MTCallbackSubNwkDataCnf( (ZMacDataCnf_t *) pData );
352 break;
353
354 case MAC_MCPS_DATA_IND:
355 {
356 /*
357 Data Ind is unconventional: to save an alloc/copy, reuse the MAC
358 buffer and re-organize the contents into ZMAC format.
359 */
360 ZMacDataInd_t *pDataInd = (ZMacDataInd_t *) pData;
361 uint8 event, status, len, *msdu;
362
363 /* Store parameters */
364 event = pData->hdr.event;
365 status = pData->hdr.status;
366 len = pData->dataInd.msdu.len;
367 msdu = pData->dataInd.msdu.p;
368
369 /* Copy header */
370 osal_memcpy(&pDataInd->SrcAddr, &pData->dataInd.mac, sizeof(ZMacDataInd_t) - sizeof(ZMacEventHdr_t));
371
372 /* Security - set to zero for now*/
373 pDataInd->Sec.SecurityLevel = false;
374
375 /* Restore parameters */
376 pDataInd->hdr.Status = status;
377 pDataInd->hdr.Event = event;
378 pDataInd->msduLength = len;
379
380 if (len)
381 pDataInd->msdu = msdu;
382 else
383 pDataInd->msdu = NULL;
384
385 if ( _macCallbackSub & CB_ID_NWK_DATA_IND )
386 nwk_MTCallbackSubNwkDataInd ( pDataInd );
387
388 /* free buffer */
389 osal_msg_deallocate( (uint8 *) pData );
390 }
391 break;
392
393 case MAC_MCPS_PURGE_CNF:
394 if ( _macCallbackSub & CB_ID_NWK_PURGE_CNF )
395 nwk_MTCallbackSubNwkPurgeCnf( (ZMacPurgeCnf_t *) pData);
396 break;
397
398 default:
399 break;
400 }
401
402 #endif
403 }
\ 000000 02.... LJMP ?BRET
404
405 /********************************************************************************************************
406 * @fn MAC_CbackCheckPending
407 *
408 * @brief Return number of pending indirect msg
409 *
410 * @param None
411 *
412 * @return Number of indirect msg holding
413 ********************************************************************************************************/
\ In segment BANKED_CODE, align 1, keep-with-next
414 uint8 MAC_CbackCheckPending(void)
\ MAC_CbackCheckPending:
415 {
\ 000000 ; Saved register size: 0
\ 000000 ; Auto size: 0
416 #if !defined (NONWK) && defined (RTR_NWK)
417 return (nwkDB_ReturnIndirectHoldingCnt());
418 #else
419 return (0);
\ 000000 7900 MOV R1,#0x0
\ 000002 02.... LJMP ?BRET
420 #endif
421 }
422
423
424 /********************************************************************************************************
425 ********************************************************************************************************/
426
427
Maximum stack usage in bytes:
Function ISTACK PSTACK XSTACK
-------- ------ ------ ------
MAC_CbackCheckPending 0 0 0
MAC_CbackEvent 1 0 24
-> getZMacDynamicSize 0 0 42
-> osal_msg_deallocate 0 0 42
-> osal_msg_allocate 0 0 42
-> osal_memcpy 0 0 48
-> osal_memcpy 0 0 48
-> osal_memcpy 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -