📄 mac.lst
字号:
370 do {
371 taskNumber = mschReserveTask();
\ ??mlmeStartRequest_9:
\ 0000D3 ; Setup parameters for call to function mschReserveTask
\ 0000D3 12.... LCALL mschReserveTask
372 } while (taskNumber == NO_TASK);
\ 0000D6 74FF MOV A,#-0x1
\ 0000D8 69 XRL A,R1
\ 0000D9 60F8 JZ ??mlmeStartRequest_9
373 waiting = TRUE;
\ 0000DB 7401 MOV A,#0x1
\ 0000DD 12.... LCALL ?XSTACK_DISP0_8
\ 0000E0 7401 MOV A,#0x1
\ 0000E2 F0 MOVX @DPTR,A
374 mschAddTask(taskNumber, MAC_TASK_PRI_LOW, msupWaitTask, (WORD) &waiting);
\ 0000E3 ; Setup parameters for call to function mschAddTask
\ 0000E3 75.... MOV ?V0 + 0,#(msupWaitTask & 0xff)
\ 0000E6 75.... MOV ?V0 + 1,#((msupWaitTask >> 8) & 0xff)
\ 0000E9 75.... MOV ?V0 + 2,#((msupWaitTask >> 16) & 0xff)
\ 0000EC 78.. MOV R0,#?V0 + 0
\ 0000EE 12.... LCALL ?PUSH_XSTACK_I_THREE
\ 0000F1 7404 MOV A,#0x4
\ 0000F3 12.... LCALL ?XSTACK_DISP0_8
\ 0000F6 AC82 MOV R4,DPL
\ 0000F8 AD83 MOV R5,DPH
\ 0000FA 7A00 MOV R2,#0x0
\ 0000FC 12.... LCALL mschAddTask
\ 0000FF 7403 MOV A,#0x3
\ 000101 12.... LCALL ?DEALLOC_XSTACK8
375 while (waiting);
\ ??mlmeStartRequest_10:
\ 000104 E0 MOVX A,@DPTR
\ 000105 70FD JNZ ??mlmeStartRequest_10
376 }
377
378 // Set beacon and superframe order
379 firstBeaconNow = (BOOL)!GET_MF(MF_TRANSMIT_BEACON);
\ ??mlmeStartRequest_5:
\ 000107 90.... MOV DPTR,#(macInfo + 6)
\ 00010A E0 MOVX A,@DPTR
\ 00010B A2E3 MOV C,0xE0 /* A */.3
\ 00010D 4004 JC ??mlmeStartRequest_11
\ 00010F D2F0 SETB B.0
\ 000111 8002 SJMP ??mlmeStartRequest_12
\ ??mlmeStartRequest_11:
\ 000113 C2F0 CLR B.0
\ ??mlmeStartRequest_12:
\ 000115 A2F0 MOV C,B.0
\ 000117 E4 CLR A
\ 000118 92E0 MOV 0xE0 /* A */.0,C
\ 00011A F5.. MOV ?V0 + 0,A
380 mlmeSetRequest(MAC_BEACON_ORDER, &beaconOrder);
\ 00011C ; Setup parameters for call to function mlmeSetRequest
\ 00011C 85..82 MOV DPL,?XSP + 0
\ 00011F 85..83 MOV DPH,?XSP + 1
\ 000122 AA82 MOV R2,DPL
\ 000124 AB83 MOV R3,DPH
\ 000126 7947 MOV R1,#0x47
\ 000128 12.... LCALL mlmeSetRequest
381
382 if (beaconOrder == 15) {
\ 00012B E0 MOVX A,@DPTR
\ 00012C 640F XRL A,#0xf
\ 00012E 7039 JNZ ??mlmeStartRequest_13
383 mpib.macSuperframeOrder = 15;
\ 000130 740F MOV A,#0xf
\ 000132 90.... MOV DPTR,#(mpib + 34)
\ 000135 F0 MOVX @DPTR,A
384 CLEAR_MF(MF_TRANSMIT_BEACON);
\ 000136 90.... MOV DPTR,#(macInfo + 6)
\ 000139 E0 MOVX A,@DPTR
\ 00013A C2E3 CLR 0xE0 /* A */.3
\ 00013C F0 MOVX @DPTR,A
385 firstBeaconNow = FALSE;
\ 00013D 75..00 MOV ?V0 + 0,#0x0
386
387 // Release task number and TX packet, if reserved
388 if (mbcnInfo.txTaskNumber != NO_TASK) {
\ 000140 90.... MOV DPTR,#mbcnInfo
\ 000143 E0 MOVX A,@DPTR
\ 000144 64FF XRL A,#0xff
\ 000146 6008 JZ ??mlmeStartRequest_14
389 mschReleaseTask(mbcnInfo.txTaskNumber);
\ 000148 ; Setup parameters for call to function mschReleaseTask
\ 000148 E0 MOVX A,@DPTR
\ 000149 F9 MOV R1,A
\ 00014A 12.... LCALL mschReleaseTask
390 mbcnInfo.txTaskNumber = NO_TASK;
\ 00014D 74FF MOV A,#-0x1
\ 00014F F0 MOVX @DPTR,A
391 }
392 if (mbcnInfo.pTxPacket != NULL) {
\ ??mlmeStartRequest_14:
\ 000150 90.... MOV DPTR,#(mbcnInfo + 2)
\ 000153 E0 MOVX A,@DPTR
\ 000154 FA MOV R2,A
\ 000155 A3 INC DPTR
\ 000156 E0 MOVX A,@DPTR
\ 000157 FB MOV R3,A
\ 000158 EA MOV A,R2
\ 000159 7001 JNZ ??mlmeStartRequest_15
\ 00015B EB MOV A,R3
\ ??mlmeStartRequest_15:
\ 00015C 6011 JZ ??mlmeStartRequest_16
393 mtxpReleasePacket(mbcnInfo.pTxPacket);
\ 00015E ; Setup parameters for call to function mtxpReleasePacket
\ 00015E 12.... LCALL mtxpReleasePacket
394 mbcnInfo.pTxPacket = NULL;
\ 000161 90.... MOV DPTR,#(mbcnInfo + 2)
\ 000164 E4 CLR A
\ 000165 F0 MOVX @DPTR,A
\ 000166 A3 INC DPTR
\ 000167 8005 SJMP ??mlmeStartRequest_17
395 }
396 } else {
397 mpib.macSuperframeOrder = superframeOrder;
\ ??mlmeStartRequest_13:
\ 000169 E5.. MOV A,?V0 + 3
\ 00016B 90.... MOV DPTR,#(mpib + 34)
\ ??mlmeStartRequest_17:
\ 00016E F0 MOVX @DPTR,A
398 }
399
400 // Prepare to modify the CC2430 PAN coordinator bit
401 mdmctrl0 = MDMCTRL0_NO_PAN_COORDINATOR;
\ ??mlmeStartRequest_16:
\ 00016F 7B0A MOV R3,#0xa
402
403 // PAN coordinator?
404 if (panCoordinator) {
\ 000171 E5.. MOV A,?V0 + 6
\ 000173 6020 JZ ??mlmeStartRequest_18
405 // Set the PAN ID
406 mlmeSetRequest(MAC_PAN_ID, &panId);
\ 000175 ; Setup parameters for call to function mlmeSetRequest
\ 000175 7402 MOV A,#0x2
\ 000177 12.... LCALL ?XSTACK_DISP0_8
\ 00017A AA82 MOV R2,DPL
\ 00017C AB83 MOV R3,DPH
\ 00017E 7950 MOV R1,#0x50
\ 000180 12.... LCALL mlmeSetRequest
407
408 // Change the RF channel
409 msupSetChannel(logicalChannel, TRUE);
\ 000183 ; Setup parameters for call to function msupSetChannel
\ 000183 7A01 MOV R2,#0x1
\ 000185 EE MOV A,R6
\ 000186 F9 MOV R1,A
\ 000187 12.... LCALL msupSetChannel
410
411 // Set PAN coordinator flags
412 SET_MF(MF_PAN_COORDINATOR);
\ 00018A 90.... MOV DPTR,#(macInfo + 6)
\ 00018D E0 MOVX A,@DPTR
\ 00018E D2E1 SETB 0xE0 /* A */.1
\ 000190 F0 MOVX @DPTR,A
413 mdmctrl0 |= PAN_COORDINATOR_BM;
\ 000191 7B1A MOV R3,#0x1a
\ 000193 8007 SJMP ??mlmeStartRequest_19
414
415 } else {
416
417 // Just clear the flag
418 CLEAR_MF(MF_PAN_COORDINATOR);
\ ??mlmeStartRequest_18:
\ 000195 90.... MOV DPTR,#(macInfo + 6)
\ 000198 E0 MOVX A,@DPTR
\ 000199 C2E1 CLR 0xE0 /* A */.1
\ 00019B F0 MOVX @DPTR,A
419 }
420
421 // Set the coordinator flag (used in addition to the PAN coordinator flag)
422 SET_MF(MF_COORDINATOR);
\ ??mlmeStartRequest_19:
\ 00019C E0 MOVX A,@DPTR
\ 00019D D2E0 SETB 0xE0 /* A */.0
\ 00019F F0 MOVX @DPTR,A
423
424 // Set the MDMCTRL0.PAN_COORDINATOR bit (affects address regocnition)
425 WRITE_RFR16(MDMCTRL0, mdmctrl0);
\ 0001A0 EB MOV A,R3
\ 0001A1 90DF02 MOV DPTR,#-0x20fe
\ 0001A4 F0 MOVX @DPTR,A
\ 0001A5 74E2 MOV A,#-0x1e
\ 0001A7 90DF03 MOV DPTR,#-0x20fd
\ 0001AA F0 MOVX @DPTR,A
426
427 // Other parameters
428 if (securityEnable) {
\ 0001AB EF MOV A,R7
\ 0001AC 90.... MOV DPTR,#(macInfo + 6)
\ 0001AF 6005 JZ ??mlmeStartRequest_20
429 SET_MF(MF_BEACON_SECURITY);
\ 0001B1 E0 MOVX A,@DPTR
\ 0001B2 D2E2 SETB 0xE0 /* A */.2
\ 0001B4 8003 SJMP ??mlmeStartRequest_21
430 } else {
431 CLEAR_MF(MF_BEACON_SECURITY);
\ ??mlmeStartRequest_20:
\ 0001B6 E0 MOVX A,@DPTR
\ 0001B7 C2E2 CLR 0xE0 /* A */.2
\ ??mlmeStartRequest_21:
\ 0001B9 F0 MOVX @DPTR,A
432 }
433
434 // Set battery life extension
435 mlmeSetRequest(MAC_BATT_LIFE_EXT, &batteryLifeExtension);
\ 0001BA ; Setup parameters for call to function mlmeSetRequest
\ 0001BA 7413 MOV A,#0x13
\ 0001BC 12.... LCALL ?XSTACK_DISP0_8
\ 0001BF AA82 MOV R2,DPL
\ 0001C1 AB83 MOV R3,DPH
\ 0001C3 7943 MOV R1,#0x43
\ 0001C5 12.... LCALL mlmeSetRequest
436
437 // Beacon now?
438 if (beaconOrder == 15) {
\ 0001C8 85..82 MOV DPL,?XSP + 0
\ 0001CB 85..83 MOV DPH,?XSP + 1
\ 0001CE E0 MOVX A,@DPTR
\ 0001CF 640F XRL A,#0xf
\ 0001D1 701F JNZ ??mlmeStartRequest_22
439 mtimCancelCallback(mbcnExpirePacketsNonBeacon);
\ 0001D3 ; Setup parameters for call to function mtimCancelCallback
\ 0001D3 79.. MOV R1,#(mbcnExpirePacketsNonBeacon & 0xff)
\ 0001D5 7A.. MOV R2,#((mbcnExpirePacketsNonBeacon >> 8) & 0xff)
\ 0001D7 7B.. MOV R3,#((mbcnExpirePacketsNonBeacon >> 16) & 0xff)
\ 0001D9 12.... LCALL mtimCancelCallback
440 mtimSetCallback(mbcnExpirePacketsNonBeacon, (UINT32)(aBaseSuperframeDuration / aUnitBackoffPeriod));
\ 0001DC ; Setup parameters for call to function mtimSetCallback
\ 0001DC 90.... MOV DPTR,#__Constant_30
\ 0001DF 12.... LCALL ?PUSH_XSTACK8_X_FOUR
\ 0001E2 79.. MOV R1,#(mbcnExpirePacketsNonBeacon & 0xff)
\ 0001E4 7A.. MOV R2,#((mbcnExpirePacketsNonBeacon >> 8) & 0xff)
\ 0001E6 7B.. MOV R3,#((mbcnExpirePacketsNonBeacon >> 16) & 0xff)
\ 0001E8 12.... LCALL mtimSetCallback
\ 0001EB 7404 MOV A,#0x4
\ 0001ED 12.... LCALL ?DEALLOC_XSTACK8
\ 0001F0 806C SJMP ??mlmeStartRequest_23
441 } else if (firstBeaconNow) {
\ ??mlmeStartRe
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -