📄 zmac.lst
字号:
\ 00001E 7002 JNZ ??ZMacScanReq_0
\ 000020 A3 INC DPTR
\ 000021 E0 MOVX A,@DPTR
\ ??ZMacScanReq_0:
\ 000022 6005 JZ ??ZMacScanReq_1
297 {
298 return MAC_SCAN_IN_PROGRESS;
\ 000024 79FC MOV R1,#-0x4
\ 000026 02.... LJMP ??ZMacScanReq_2
299 }
300
301 if (pData->ScanType != ZMAC_ORPHAN_SCAN)
\ ??ZMacScanReq_1:
\ 000029 8E82 MOV DPL,R6
\ 00002B 8F83 MOV DPH,R7
\ 00002D A3 INC DPTR
\ 00002E A3 INC DPTR
\ 00002F A3 INC DPTR
\ 000030 A3 INC DPTR
\ 000031 E0 MOVX A,@DPTR
\ 000032 6403 XRL A,#0x3
\ 000034 7003 JNZ $+5
\ 000036 02.... LJMP ??ZMacScanReq_3
302 {
303 /* Allocate memory depends on the scan type */
304 if (pData->ScanType == ZMAC_ED_SCAN)
\ 000039 8E82 MOV DPL,R6
\ 00003B 8F83 MOV DPH,R7
\ 00003D A3 INC DPTR
\ 00003E A3 INC DPTR
\ 00003F A3 INC DPTR
\ 000040 A3 INC DPTR
\ 000041 E0 MOVX A,@DPTR
\ 000042 7051 JNZ ??ZMacScanReq_4
305 {
306 if ((ZMac_ScanBuf = osal_mem_alloc(ZMAC_ED_SCAN_MAXCHANNELS)) == NULL)
\ 000044 ; Setup parameters for call to function osal_mem_alloc
\ 000044 7A1B MOV R2,#0x1b
\ 000046 7B00 MOV R3,#0x0
\ 000048 90.... MOV DPTR,#(osal_mem_alloc & 0xffff)
\ 00004B 74.. MOV A,#((osal_mem_alloc >> 16) & 0xff)
\ 00004D 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000050 8A.. MOV ?V0 + 0,R2
\ 000052 8B.. MOV ?V0 + 1,R3
\ 000054 A8.. MOV R0,?V0 + 0
\ 000056 A9.. MOV R1,?V0 + 1
\ 000058 90.... MOV DPTR,#ZMac_ScanBuf
\ 00005B E8 MOV A,R0
\ 00005C F0 MOVX @DPTR,A
\ 00005D A3 INC DPTR
\ 00005E E9 MOV A,R1
\ 00005F F0 MOVX @DPTR,A
\ 000060 E8 MOV A,R0
\ 000061 7001 JNZ ??ZMacScanReq_5
\ 000063 E9 MOV A,R1
\ ??ZMacScanReq_5:
\ 000064 7005 JNZ ??ZMacScanReq_6
307 {
308 return MAC_NO_RESOURCES;
\ ??ZMacScanReq_7:
\ 000066 791A MOV R1,#0x1a
\ 000068 02.... LJMP ??ZMacScanReq_2
309 }
310 osal_memset(ZMac_ScanBuf, 0, ZMAC_ED_SCAN_MAXCHANNELS);
\ ??ZMacScanReq_6:
\ 00006B ; Setup parameters for call to function osal_memset
\ 00006B 7C1B MOV R4,#0x1b
\ 00006D 7D00 MOV R5,#0x0
\ 00006F 7900 MOV R1,#0x0
\ 000071 90.... MOV DPTR,#(osal_memset & 0xffff)
\ 000074 74.. MOV A,#((osal_memset >> 16) & 0xff)
\ 000076 12.... LCALL ?BCALL ; Banked call to: DPTR()
311 pData->Result.pEnergyDetect = ((uint8*)ZMac_ScanBuf) + MAC_CHAN_11;
\ 000079 90.... MOV DPTR,#ZMac_ScanBuf
\ 00007C E0 MOVX A,@DPTR
\ 00007D 240B ADD A,#0xb
\ 00007F F8 MOV R0,A
\ 000080 A3 INC DPTR
\ 000081 E0 MOVX A,@DPTR
\ 000082 3400 ADDC A,#0x0
\ 000084 F9 MOV R1,A
\ 000085 EE MOV A,R6
\ 000086 2413 ADD A,#0x13
\ 000088 F582 MOV DPL,A
\ 00008A EF MOV A,R7
\ 00008B 12.... LCALL ??Subroutine4_0
\ ??CrossCallReturnLabel_13:
\ 00008E E8 MOV A,R0
\ 00008F F0 MOVX @DPTR,A
\ 000090 A3 INC DPTR
\ 000091 E9 MOV A,R1
\ 000092 F0 MOVX @DPTR,A
\ 000093 805E SJMP ??ZMacScanReq_3
312 }
313 else if (pData->MaxResults > 0)
\ ??ZMacScanReq_4:
\ 000095 8E82 MOV DPL,R6
\ 000097 8F83 MOV DPH,R7
\ 000099 A3 INC DPTR
\ 00009A A3 INC DPTR
\ 00009B A3 INC DPTR
\ 00009C A3 INC DPTR
\ 00009D A3 INC DPTR
\ 00009E A3 INC DPTR
\ 00009F A3 INC DPTR
\ 0000A0 E0 MOVX A,@DPTR
\ 0000A1 6050 JZ ??ZMacScanReq_3
314 {
315 if ((ZMac_ScanBuf = pData->Result.pPanDescriptor =
316 osal_mem_alloc( sizeof( ZMacPanDesc_t ) * pData->MaxResults )) == NULL)
\ 0000A3 EE MOV A,R6
\ 0000A4 2413 ADD A,#0x13
\ 0000A6 F5.. MOV ?V0 + 0,A
\ 0000A8 EF MOV A,R7
\ 0000A9 3400 ADDC A,#0x0
\ 0000AB F5.. MOV ?V0 + 1,A
\ 0000AD ; Setup parameters for call to function osal_mem_alloc
\ 0000AD 8E82 MOV DPL,R6
\ 0000AF 8F83 MOV DPH,R7
\ 0000B1 A3 INC DPTR
\ 0000B2 A3 INC DPTR
\ 0000B3 A3 INC DPTR
\ 0000B4 A3 INC DPTR
\ 0000B5 A3 INC DPTR
\ 0000B6 A3 INC DPTR
\ 0000B7 A3 INC DPTR
\ 0000B8 E0 MOVX A,@DPTR
\ 0000B9 75F021 MOV B,#0x21
\ 0000BC A4 MUL AB
\ 0000BD FA MOV R2,A
\ 0000BE ABF0 MOV R3,B
\ 0000C0 90.... MOV DPTR,#(osal_mem_alloc & 0xffff)
\ 0000C3 74.. MOV A,#((osal_mem_alloc >> 16) & 0xff)
\ 0000C5 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 0000C8 85..82 MOV DPL,?V0 + 0
\ 0000CB 85..83 MOV DPH,?V0 + 1
\ 0000CE EA MOV A,R2
\ 0000CF F0 MOVX @DPTR,A
\ 0000D0 A3 INC DPTR
\ 0000D1 EB MOV A,R3
\ 0000D2 F0 MOVX @DPTR,A
\ 0000D3 85..82 MOV DPL,?V0 + 0
\ 0000D6 85..83 MOV DPH,?V0 + 1
\ 0000D9 E0 MOVX A,@DPTR
\ 0000DA F8 MOV R0,A
\ 0000DB A3 INC DPTR
\ 0000DC E0 MOVX A,@DPTR
\ 0000DD F9 MOV R1,A
\ 0000DE 90.... MOV DPTR,#ZMac_ScanBuf
\ 0000E1 E8 MOV A,R0
\ 0000E2 F0 MOVX @DPTR,A
\ 0000E3 A3 INC DPTR
\ 0000E4 E9 MOV A,R1
\ 0000E5 F0 MOVX @DPTR,A
\ 0000E6 90.... MOV DPTR,#ZMac_ScanBuf
\ 0000E9 E0 MOVX A,@DPTR
\ 0000EA 7002 JNZ ??ZMacScanReq_8
\ 0000EC A3 INC DPTR
\ 0000ED E0 MOVX A,@DPTR
\ ??ZMacScanReq_8:
\ 0000EE 7003 JNZ $+5
\ 0000F0 02.... LJMP ??ZMacScanReq_7
317 {
318 return MAC_NO_RESOURCES;
319 }
320 }
321 }
322
323 /* Right now, set security to zero */
324 pData->Sec.SecurityLevel = false;
\ ??ZMacScanReq_3:
\ 0000F3 EE MOV A,R6
\ 0000F4 2410 ADD A,#0x10
\ 0000F6 F582 MOV DPL,A
\ 0000F8 EF MOV A,R7
\ 0000F9 12.... LCALL ??Subroutine2_0
325
326 /* Channel Page */
327 pData->ChannelPage = 0x00;
\ ??CrossCallReturnLabel_7:
\ 0000FC 8E82 MOV DPL,R6
\ 0000FE 8F83 MOV DPH,R7
\ 000100 A3 INC DPTR
\ 000101 A3 INC DPTR
\ 000102 A3 INC DPTR
\ 000103 A3 INC DPTR
\ 000104 A3 INC DPTR
\ 000105 A3 INC DPTR
\ 000106 F0 MOVX @DPTR,A
328
329 MAC_MlmeScanReq ((macMlmeScanReq_t *)pData);
\ 000107 ; Setup parameters for call to function MAC_MlmeScanReq
\ 000107 EE MOV A,R6
\ 000108 FA MOV R2,A
\ 000109 EF MOV A,R7
\ 00010A FB MOV R3,A
\ 00010B 90.... MOV DPTR,#(MAC_MlmeScanReq & 0xffff)
\ 00010E 74.. MOV A,#((MAC_MlmeScanReq >> 16) & 0xff)
\ 000110 12.... LCALL ?BCALL ; Banked call to: DPTR()
330
331 return ZMacSuccess;
\ 000113 7900 MOV R1,#0x0
\ ??ZMacScanReq_2:
\ 000115 REQUIRE ?Subroutine8
\ 000115 ; // Fall through to label ?Subroutine8
332 }
\ In segment NEAR_CODE, align 1, keep-with-next
\ ?Subroutine8:
\ 000000 7F04 MOV R7,#0x4
\ 000002 02.... LJMP ?FUNC_LEAVE_XDATA
\ In segment NEAR_CODE, align 1, keep-with-next
\ ?Subroutine4:
\ 000000 F582 MOV DPL,A
\ 000002 EB MOV A,R3
\ ??Subroutine4_0:
\ 000003 3400 ADDC A,#0x0
\ 000005 F583 MOV DPH,A
\ 000007 22 RET
333
334
335 /********************************************************************************************************
336 * @fn ZMacStartReq
337 *
338 * @brief This function is called to tell the MAC to transmit beacons
339 * and become a coordinator.
340 *
341 * @param structure with info need send it.
342 *
343 * @return status
344 ********************************************************************************************************/
\ In segment NEAR_CODE, align 1, keep-with-next
345 ROOT uint8 ZMacStartReq( ZMacStartReq_t *pData )
\ ZMacStartReq:
346 {
\ 000000 74F8 MOV A,#-0x8
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 8
\ 000005 ; Auto size: 1
\ 000005 74FF MOV A,#-0x1
\ 000007 12.... LCALL ?ALLOC_XSTACK8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -