📄 mac_mem.s51
字号:
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 + -