📄 mac_tx_engine.lst
字号:
\ 0000B6 7AFF MOV R2,#-0x1
\ 0000B8 7BFF MOV R3,#-0x1
\ 0000BA 12.... LCALL mlmeAssociateConfirm
\ 0000BD 807B SJMP ??mtxFinishTransmission_3
149 break;
150 case CMD_DISASSOCIATION_NOTIFICATION:
151 mlmeDisassociateConfirm(status);
\ ??mtxFinishTransmission_9:
\ 0000BF ; Setup parameters for call to function mlmeDisassociateConfirm
\ 0000BF A9.. MOV R1,?V0 + 0
\ 0000C1 12.... LCALL mlmeDisassociateConfirm
\ 0000C4 8074 SJMP ??mtxFinishTransmission_3
152 break;
153 case CMD_DATA_REQUEST:
154 macState = macInfo.state;
\ ??mtxFinishTransmission_10:
\ 0000C6 90.... MOV DPTR,#macInfo
\ 0000C9 E0 MOVX A,@DPTR
\ 0000CA F5.. MOV ?V0 + 1,A
155 macSetState(MAC_STATE_DEFAULT);
\ 0000CC ; Setup parameters for call to function macSetState
\ 0000CC 7900 MOV R1,#0x0
\ 0000CE 12.... LCALL macSetState
156 switch (macState) {
\ 0000D1 E5.. MOV A,?V0 + 1
\ 0000D3 12.... LCALL ?UC_SWITCH_DENSE
\ `?<Jumptable for mtxFinishTransmission>_2`:
\ 0000D6 11 DB 17
\ 0000D7 01 DB 1
\ 0000D8 .... DW ??mtxFinishTransmission_3
\ 0000DA .... DW ??mtxFinishTransmission_14
\ 0000DC .... DW ??mtxFinishTransmission_13
157 case MAC_STATE_TX_MANUAL_DATA_REQUEST: mlmePollConfirm(status); break;
\ ??mtxFinishTransmission_14:
\ 0000DE ; Setup parameters for call to function mlmePollConfirm
\ 0000DE A9.. MOV R1,?V0 + 0
\ 0000E0 12.... LCALL mlmePollConfirm
\ 0000E3 8055 SJMP ??mtxFinishTransmission_3
158 case MAC_STATE_TX_ASSOC_DATA_REQUEST: mlmeAssociateConfirm(0xFFFF, status); break;
159 default: break;
160 }
161 break;
162 case CMD_BEACON_REQUEST:
163 mtimSetCallback(mscChannelTimeout, ((UINT32) aBaseSuperframeDuration / (UINT32) aUnitBackoffPeriod) * (((UINT32) 1 << mscInfo.scanDuration) + 1));
\ ??mtxFinishTransmission_12:
\ 0000E5 ; Setup parameters for call to function mtimSetCallback
\ 0000E5 75..01 MOV ?V0 + 4,#0x1
\ 0000E8 75..00 MOV ?V0 + 5,#0x0
\ 0000EB 75..00 MOV ?V0 + 6,#0x0
\ 0000EE 75..00 MOV ?V0 + 7,#0x0
\ 0000F1 90.... MOV DPTR,#(mscInfo + 5)
\ 0000F4 E0 MOVX A,@DPTR
\ 0000F5 78.. MOV R0,#?V0 + 4
\ 0000F7 12.... LCALL ?L_SHL
\ 0000FA 90.... MOV DPTR,#__Constant_1
\ 0000FD 78.. MOV R0,#?V0 + 4
\ 0000FF 12.... LCALL ?L_ADD_X
\ 000102 90.... MOV DPTR,#__Constant_30
\ 000105 78.. MOV R0,#?V0 + 0
\ 000107 12.... LCALL ?L_MOV_X
\ 00010A 78.. MOV R0,#?V0 + 4
\ 00010C 79.. MOV R1,#?V0 + 0
\ 00010E 12.... LCALL ?L_MUL
\ 000111 78.. MOV R0,#?V0 + 4
\ 000113 12.... LCALL ?PUSH_XSTACK_I_FOUR
\ ??mtxFinishTransmission_15:
\ 000116 79.. MOV R1,#(mscChannelTimeout & 0xff)
\ 000118 7A.. MOV R2,#((mscChannelTimeout >> 8) & 0xff)
\ 00011A 7B.. MOV R3,#((mscChannelTimeout >> 16) & 0xff)
\ 00011C 12.... LCALL mtimSetCallback
\ 00011F 7404 MOV A,#0x4
\ 000121 12.... LCALL ?DEALLOC_XSTACK8
\ 000124 8014 SJMP ??mtxFinishTransmission_3
164 break;
165 case CMD_PAN_ID_CONFLICT_NOTIFICATION:
166 break;
167 case CMD_ORPHAN_NOTIFICATION:
168 mtimSetCallback(mscChannelTimeout, (UINT32) aResponseWaitTime / (UINT32) aUnitBackoffPeriod);
\ ??mtxFinishTransmission_11:
\ 000126 ; Setup parameters for call to function mtimSetCallback
\ 000126 90.... MOV DPTR,#__Constant_600
\ 000129 12.... LCALL ?PUSH_XSTACK8_X_FOUR
\ 00012C 80E8 SJMP ??mtxFinishTransmission_15
169 break;
170 #if MAC_OPT_FFD
171 case CMD_ASSOCIATION_RESPONSE:
172 case CMD_COORDINATOR_REALIGNMENT:
173 if (!isMacInternal) mtxCommStatusIndication(pPacket, status);
\ ??mtxFinishTransmission_8:
\ 00012E EA MOV A,R2
\ 00012F 7009 JNZ ??mtxFinishTransmission_3
\ 000131 ; Setup parameters for call to function mtxCommStatusIndication
\ 000131 A9.. MOV R1,?V0 + 0
\ 000133 EE MOV A,R6
\ 000134 FA MOV R2,A
\ 000135 EF MOV A,R7
\ 000136 FB MOV R3,A
\ 000137 12.... LCALL mtxCommStatusIndication
174 break;
175 #endif
176 case CMD_GTS_REQUEST:
177 break;
178 default:
179 break;
180 }
181 break;
182 }
183
184 #if MAC_OPT_FFD
185 // Remove the task and the packet
186 if (pPacket->txOptions & TX_OPT_INDIRECT) {
\ ??mtxFinishTransmission_3:
\ 00013A 85..82 MOV DPL,?XSP + 0
\ 00013D 85..83 MOV DPH,?XSP + 1
\ 000140 E0 MOVX A,@DPTR
\ 000141 2408 ADD A,#0x8
\ 000143 F5.. MOV ?V0 + 0,A
\ 000145 A3 INC DPTR
\ 000146 E0 MOVX A,@DPTR
\ 000147 3400 ADDC A,#0x0
\ 000149 F5.. MOV ?V0 + 1,A
\ 00014B EE MOV A,R6
\ 00014C 2481 ADD A,#-0x7f
\ 00014E F582 MOV DPL,A
\ 000150 EF MOV A,R7
\ 000151 3400 ADDC A,#0x0
\ 000153 F583 MOV DPH,A
\ 000155 E0 MOVX A,@DPTR
\ 000156 A2E2 MOV C,0xE0 /* A */.2
\ 000158 5050 JNC ??mtxFinishTransmission_16
187 miqSetRequested(pPacket, FALSE);
\ 00015A ; Setup parameters for call to function miqSetRequested
\ 00015A 7900 MOV R1,#0x0
\ 00015C EE MOV A,R6
\ 00015D FA MOV R2,A
\ 00015E EF MOV A,R7
\ 00015F FB MOV R3,A
\ 000160 12.... LCALL miqSetRequested
188 mschRemoveTask(pTask->priority, MSCH_KEEP_TASK_RESERVED_BM | MSCH_KEEP_TASK_IN_PROGRESS_BM);
\ 000163 ; Setup parameters for call to function mschRemoveTask
\ 000163 7A03 MOV R2,#0x3
\ 000165 85..82 MOV DPL,?V0 + 0
\ 000168 85..83 MOV DPH,?V0 + 1
\ 00016B E0 MOVX A,@DPTR
\ 00016C F9 MOV R1,A
\ 00016D 12.... LCALL mschRemoveTask
189 DISABLE_GLOBAL_INT();
\ 000170 C2AF CLR 0xa8.7
190
191 mschAddTask(pTask->taskNumber, MAC_TASK_PRI_MEDIUM, miqRemoveIndirectPacket, (WORD) pPacket);
\ 000172 ; Setup parameters for call to function mschAddTask
\ 000172 75.... MOV ?V0 + 0,#(miqRemoveIndirectPacket & 0xff)
\ 000175 75.... MOV ?V0 + 1,#((miqRemoveIndirectPacket >> 8) & 0xff)
\ 000178 75.... MOV ?V0 + 2,#((miqRemoveIndirectPacket >> 16) & 0xff)
\ 00017B 78.. MOV R0,#?V0 + 0
\ 00017D 12.... LCALL ?PUSH_XSTACK_I_THREE
\ 000180 EE MOV A,R6
\ 000181 FC MOV R4,A
\ 000182 EF MOV A,R7
\ 000183 FD MOV R5,A
\ 000184 7A01 MOV R2,#0x1
\ 000186 7403 MOV A,#0x3
\ 000188 12.... LCALL ?XSTACK_DISP0_8
\ 00018B E0 MOVX A,@DPTR
\ 00018C F8 MOV R0,A
\ 00018D A3 INC DPTR
\ 00018E E0 MOVX A,@DPTR
\ 00018F F583 MOV DPH,A
\ 000191 8882 MOV DPL,R0
\ 000193 A3 INC DPTR
\ 000194 A3 INC DPTR
\ 000195 A3 INC DPTR
\ 000196 A3 INC DPTR
\ 000197 A3 INC DPTR
\ 000198 A3 INC DPTR
\ 000199 A3 INC DPTR
\ 00019A A3 INC DPTR
\ 00019B A3 INC DPTR
\ 00019C E0 MOVX A,@DPTR
\ 00019D F9 MOV R1,A
\ 00019E 12.... LCALL mschAddTask
\ 0001A1 7403 MOV A,#0x3
\ 0001A3 12.... LCALL ?DEALLOC_XSTACK8
192 ENABLE_GLOBAL_INT();
\ 0001A6 D2AF SETB 0xa8.7
\ 0001A8 8014 SJMP ??mtxFinishTransmission_17
193 } else {
194 mschRemoveTask(pTask->priority, MSCH_KEEP_TASK_IN_PROGRESS_BM);
\ ??mtxFinishTransmission_16:
\ 0001AA ; Setup parameters for call to function mschRemoveTask
\ 0001AA 7A02 MOV R2,#0x2
\ 0001AC 85..82 MOV DPL,?V0 + 0
\ 0001AF 85..83 MOV DPH,?V0 + 1
\ 0001B2 E0 MOVX A,@DPTR
\ 0001B3 F9 MOV R1,A
\ 0001B4 12.... LCALL mschRemoveTask
195 mtxpReleasePacket(pPacket);
\ 0001B7 ; Setup parameters for call to function mtxpReleasePacket
\ 0001B7 EE MOV A,R6
\ 0001B8 FA MOV R2,A
\ 0001B9 EF MOV A,R7
\ 0001BA FB MOV R3,A
\ 0001BB 12.... LCALL mtxpReleasePacket
196 }
197 #else
198 // Only direct transmission from a RFD
199 mschRemoveTask(pTask->priority, MSCH_KEEP_TASK_IN_PROGRESS_BM);
200 mtxpReleasePacket(pPacket);
201 #endif
202
203
204 } // mtxFinishTransmission
\ ??mtxFinishTransmission_17:
\ 0001BE REQUIRE ?Subroutine0
\ 0001BE ; // Fall through to label ?Subroutine0
\ In segment NEAR_CODE, align 1, keep-with-next
\ ?Subroutine0:
\ 000000 7402 MOV A,#0x2
\ 000002 12.... LCALL ?DEALLOC_XSTACK8
\ 000005 7F08 MOV R7,#0x8
\ 000007 02.... LJMP ?FUNC_LEAVE_XDATA
205
206
207
208
209 //-------------------------------------------------------------------------------------------------------
210 // void mtxCreateStartTask(void)
211 //
212 // DESCRIPTION:
213 // Creates the task that starts the transmission of the packet.
214 //-------------------------------------------------------------------------------------------------------
\ In segment NEAR_CODE, align 1, keep-with-next
215 ROOT void mtxCreateStartTask(void) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -