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

📄 mac_mem.s51

📁 cc2430应用实例
💻 S51
📖 第 1 页 / 共 2 页
字号:
        MOV	DPH,R3
        MOVX	A,@DPTR
        MOV	R1,A
        POP	DPH
        CFI DPH0 SameValue
        CFI CFA_SP SP+-4
        POP	DPL
        CFI DPL0 SameValue
        CFI CFA_SP SP+-3
        LJMP	?BRET
        CFI EndBlock cfiBlock0
//   50 }
//   51 
//   52 
//   53 /**************************************************************************************************
//   54  * @fn          macMemWriteRam
//   55  *
//   56  * @brief       Write multiple bytes to RAM.
//   57  *
//   58  * @param       pRam  - pointer to RAM to be written to
//   59  * @param       pData - pointer to data to write
//   60  * @param       len   - number of bytes to write
//   61  *
//   62  * @return      none
//   63  **************************************************************************************************
//   64  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//   65 void macMemWriteRam(macRam_t * pRam, uint8 * pData, uint8 len)
macMemWriteRam:
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function macMemWriteRam
//   66 {
        MOV	A,#-0x9
        LCALL	?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        ; Saved register size: 9
        ; Auto size: 0
        SJMP	??macMemWriteRam_0
//   67   while (len)
//   68   {
//   69     len--;
??macMemWriteRam_1:
        DEC	R1
//   70     *pRam = *pData;
        MOV	DPL,R4
        MOV	DPH,R5
        MOVX	A,@DPTR
        MOV	DPL,R2
        MOV	DPH,R3
        MOVX	@DPTR,A
//   71     pRam++;
        INC	DPTR
        MOV	R2,DPL
        MOV	R3,DPH
//   72     pData++;
        MOV	DPL,R4
        MOV	DPH,R5
        INC	DPTR
        MOV	R4,DPL
        MOV	R5,DPH
//   73   }
??macMemWriteRam_0:
        MOV	A,R1
        JNZ	??macMemWriteRam_1
//   74 }
        SJMP	?Subroutine0
        CFI EndBlock cfiBlock1
//   75 
//   76 
//   77 /**************************************************************************************************
//   78  * @fn          macMemReadRam
//   79  *
//   80  * @brief       Read multiple bytes from RAM.
//   81  *
//   82  * @param       pRam  - pointer to RAM to be read from
//   83  * @param       pData - pointer to location to store read data
//   84  * @param       len   - number of bytes to read
//   85  *
//   86  * @return      none
//   87  **************************************************************************************************
//   88  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//   89 void macMemReadRam(macRam_t * pRam, uint8 * pData, uint8 len)
macMemReadRam:
        CFI Block cfiBlock2 Using cfiCommon0
        CFI Function macMemReadRam
//   90 {
        MOV	A,#-0x9
        LCALL	?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        ; Saved register size: 9
        ; Auto size: 0
        SJMP	??macMemReadRam_0
//   91   while (len)
//   92   {
//   93     len--;
??macMemReadRam_1:
        DEC	R1
//   94     *pData = *pRam;
        MOV	DPL,R2
        MOV	DPH,R3
        MOVX	A,@DPTR
        MOV	DPL,R4
        MOV	DPH,R5
        MOVX	@DPTR,A
//   95     pRam++;
        MOV	DPL,R2
        MOV	DPH,R3
        INC	DPTR
        MOV	R2,DPL
        MOV	R3,DPH
//   96     pData++;
        MOV	DPL,R4
        MOV	DPH,R5
        INC	DPTR
        MOV	R4,DPL
        MOV	R5,DPH
//   97   }
??macMemReadRam_0:
        MOV	A,R1
        JNZ	??macMemReadRam_1
//   98 }
        SJMP	?Subroutine0
        CFI EndBlock cfiBlock2
//   99 
//  100 
//  101 /**************************************************************************************************
//  102  * @fn          macMemWriteTxFifo
//  103  *
//  104  * @brief       Write multiple bytes to the transmit FIFO.
//  105  *
//  106  * @param       pData - pointer to bytes to be written to TX FIFO
//  107  * @param       len   - number of bytes to write
//  108  *
//  109  * @return      none
//  110  **************************************************************************************************
//  111  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  112 void macMemWriteTxFifo(uint8 * pData, uint8 len)
macMemWriteTxFifo:
        CFI Block cfiBlock3 Using cfiCommon0
        CFI Function macMemWriteTxFifo
//  113 {
        FUNCALL macMemWriteTxFifo, halAssertHandler
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        MOV	A,#-0x9
        LCALL	?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        ; Saved register size: 9
        ; Auto size: 0
        MOV	A,R2
        MOV	R6,A
        MOV	A,R3
        MOV	R7,A
        MOV	?V0 + 0,R1
//  114   MAC_ASSERT(len != 0); /* pointless to write zero bytes */
        MOV	A,R1
        JNZ	??macMemWriteTxFifo_0
        ; Setup parameters for call to function halAssertHandler
        MOV	DPTR,#(halAssertHandler & 0xffff)
        MOV	A,#((halAssertHandler >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  115 
//  116   do
//  117   {
//  118     RFD = *pData;
??macMemWriteTxFifo_0:
        MOV	DPL,R6
        MOV	DPH,R7
        MOVX	A,@DPTR
        MOV	0xd9,A
//  119     pData++;
        INC	DPTR
        MOV	R6,DPL
        MOV	R7,DPH
//  120     len--;
//  121   }
//  122   while (len);
        DEC	?V0 + 0
        MOV	A,?V0 + 0
        JNZ	??macMemWriteTxFifo_0
        CFI EndBlock cfiBlock3
//  123 }
        REQUIRE ?Subroutine0
        ; // Fall through to label ?Subroutine0

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine0:
        CFI Block cfiBlock4 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        MOV	R7,#0x1
        LJMP	?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock4
//  124 
//  125 
//  126 /**************************************************************************************************
//  127  * @fn          macMemReadRxFifo
//  128  *
//  129  * @brief       Read multiple bytes from receive FIFO.
//  130  *
//  131  * @param       pData - pointer to location to store read data
//  132  * @param       len   - number of bytes to read from RX FIFO
//  133  *
//  134  * @return      none
//  135  **************************************************************************************************
//  136  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  137 void macMemReadRxFifo(uint8 * pData, uint8 len)
macMemReadRxFifo:
        CFI Block cfiBlock5 Using cfiCommon0
        CFI Function macMemReadRxFifo
//  138 {
        FUNCALL macMemReadRxFifo, halAssertHandler
        LOCFRAME XSTACK, 9, STACK
        ARGFRAME XSTACK, 9, STACK
        MOV	A,#-0x9
        LCALL	?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 9)
        ; Saved register size: 9
        ; Auto size: 0
        MOV	A,R2
        MOV	R6,A
        MOV	A,R3
        MOV	R7,A
        MOV	?V0 + 0,R1
//  139   MAC_ASSERT(len != 0); /* pointless to read zero bytes */
        MOV	A,R1
        JNZ	??macMemReadRxFifo_0
        ; Setup parameters for call to function halAssertHandler
        MOV	DPTR,#(halAssertHandler & 0xffff)
        MOV	A,#((halAssertHandler >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  140 
//  141   do
//  142   {
//  143     *pData = RFD;
??macMemReadRxFifo_0:
        MOV	A,0xd9
        MOV	DPL,R6
        MOV	DPH,R7
        MOVX	@DPTR,A
//  144     pData++;
        INC	DPTR
        MOV	R6,DPL
        MOV	R7,DPH
//  145     len--;
//  146   }
//  147   while (len);
        DEC	?V0 + 0
        MOV	A,?V0 + 0
        JNZ	??macMemReadRxFifo_0
//  148 }
        SJMP	?Subroutine0
        CFI EndBlock cfiBlock5

        END
//  149 
//  150 
//  151 /**************************************************************************************************
//  152 */
// 
// 182 bytes in segment BANKED_CODE
//   1 byte  in segment SFR_AN
// 
// 182 bytes of CODE memory
//   0 bytes of DATA memory (+ 1 byte shared)
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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