⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mac-common.s51

📁 zigbee location examples
💻 S51
📖 第 1 页 / 共 2 页
字号:
//   55                                       &dmaChannelConfiguration);
        ; Setup parameters for call to function FetchDmaChannelConfiguration
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOV	R2,DPL
        MOV	R3,DPH
        MOV	R1,#0x3
        LCALL	FetchDmaChannelConfiguration
//   56         dmaChannelConfiguration->srcMsb = HIBYTE(source);
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        MOV	A,R7
        MOVX	@DPTR,A
//   57         dmaChannelConfiguration->srcLsb = LOBYTE(source);
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        MOV	A,R6
        MOVX	@DPTR,A
//   58         dmaChannelConfiguration->destMsb = HIBYTE(destination);
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        INC	DPTR
        MOV	A,?V0 + 1
        MOVX	@DPTR,A
//   59         dmaChannelConfiguration->destLsb = LOBYTE(destination);
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOV	A,?V0 + 0
        MOVX	@DPTR,A
//   60         dmaChannelConfiguration->lenMsb = USE_LEN;
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        CLR	A
        MOVX	@DPTR,A
//   61         dmaChannelConfiguration->lenLsb = noOfBytes;
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOV	A,?V0 + 2
        MOVX	@DPTR,A
//   62         dmaChannelConfiguration->wsizeTmodeTrigger = BYTE_TRANSFER + TRANSFER_MODE_BLOCK;
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOV	A,#0x20
        MOVX	@DPTR,A
//   63         dmaChannelConfiguration->incIrqM8Pri = SRC_INC_ONE_BYTE +
//   64                                                 DST_INC_ONE_BYTE +
//   65                                                 DMA_IRQ_DISABLE +
//   66                                                 DMA_8_BIT_TRANSFER_COUNT +
//   67                                                 DMA_PRIORITY_HIGH;
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOV	A,#0x52
        MOVX	@DPTR,A
//   68 
//   69         StartDma(DMA_CHANNEL_NO_3);
        ; Setup parameters for call to function StartDma
        MOV	R1,#0x3
        LCALL	StartDma
//   70         ENABLE_GLOBAL_INT();
        SETB	0xa8.7
//   71     }
//   72 }
??DmaMemcpy_1:
        MOV	A,#0x2
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 11)
        MOV	R7,#0x4
        LJMP	?FUNC_LEAVE_XDATA
        CFI EndBlock cfiBlock1
//   73 
//   74 //-------------------------------------------------------------------------------------------------------
//   75 //
//   76 //-------------------------------------------------------------------------------------------------------

        RSEG NEAR_CODE:CODE:NOROOT(0)
//   77 ROOT void DmaWriteFrameToTxFifo(FRAME   *frame)
DmaWriteFrameToTxFifo:
        CFI Block cfiBlock2 Using cfiCommon0
        CFI Function DmaWriteFrameToTxFifo
//   78 {
        FUNCALL DmaWriteFrameToTxFifo, FetchDmaChannelConfiguration
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL DmaWriteFrameToTxFifo, StartDma
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        MOV	A,#-0x8
        LCALL	?FUNC_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 8)
        ; Saved register size: 8
        ; Auto size: 2
        MOV	A,#-0x2
        LCALL	?ALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 10)
        MOV	A,R2
        MOV	R6,A
        MOV	A,R3
        MOV	R7,A
//   79     DMA_CHANNEL_CONFIGURATION   *dmaChannelConfiguration;
//   80 
//   81     DISABLE_GLOBAL_INT();
        CLR	0xa8.7
//   82     while (DMAARM & DMA_CHANNEL_NO_3);
??DmaWriteFrameToTxFifo_0:
        MOV	A,#0x3
        ANL	A,0xd6
        JNZ	??DmaWriteFrameToTxFifo_0
//   83 
//   84     FetchDmaChannelConfiguration (DMA_CHANNEL_NO_3,
//   85                                   &dmaChannelConfiguration);
        ; Setup parameters for call to function FetchDmaChannelConfiguration
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOV	R2,DPL
        MOV	R3,DPH
        MOV	R1,#0x3
        LCALL	FetchDmaChannelConfiguration
//   86     dmaChannelConfiguration->srcMsb = HIBYTE(frame);
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        MOV	A,R7
        MOVX	@DPTR,A
//   87     dmaChannelConfiguration->srcLsb = LOBYTE(frame);
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        MOV	A,R6
        MOVX	@DPTR,A
//   88     dmaChannelConfiguration->destMsb = HIBYTE(&X_RFD);
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        INC	DPTR
        MOV	A,#-0x21
        MOVX	@DPTR,A
//   89     dmaChannelConfiguration->destLsb = LOBYTE(&X_RFD);
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOV	A,#-0x27
        MOVX	@DPTR,A
//   90     dmaChannelConfiguration->lenMsb = USE_FIRST_BYTE_AS_LEN;
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOV	A,#0x20
        MOVX	@DPTR,A
//   91     dmaChannelConfiguration->lenLsb = aMaxPHYPacketSize + FRAME_LENGTH_SIZE;
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOV	A,#-0x80
        MOVX	@DPTR,A
//   92     dmaChannelConfiguration->wsizeTmodeTrigger = BYTE_TRANSFER + TRANSFER_MODE_BLOCK;
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOV	A,#0x20
        MOVX	@DPTR,A
//   93     dmaChannelConfiguration->incIrqM8Pri = SRC_INC_ONE_BYTE +
//   94                                             DST_INC_NONE +
//   95                                             DMA_IRQ_DISABLE +
//   96                                             DMA_8_BIT_TRANSFER_COUNT +
//   97                                             DMA_PRIORITY_HIGH;
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPH,A
        MOV	DPL,R0
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOV	A,#0x42
        MOVX	@DPTR,A
//   98 
//   99     StartDma(DMA_CHANNEL_NO_3);
        ; Setup parameters for call to function StartDma
        MOV	R1,#0x3
        LCALL	StartDma
//  100     ENABLE_GLOBAL_INT();
        SETB	0xa8.7
//  101 }
        MOV	A,#0x2
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 8)
        MOV	R7,#0x1
        LJMP	?FUNC_LEAVE_XDATA
        CFI EndBlock cfiBlock2

        ASEGN SFR_AN:DATA:NOROOT,0a8H
// union <unnamed> volatile __sfr _A_IEN0
_A_IEN0:
        DS 1

        END
// 
// 469 bytes in segment NEAR_CODE
//   2 bytes in segment SFR_AN
// 146 bytes in segment XDATA_Z
// 
// 469 bytes of CODE  memory
//   0 bytes of DATA  memory (+ 2 bytes shared)
// 146 bytes of XDATA memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -