📄 zdprofile.s51
字号:
CFI CFA_SP SP+0
MOVX @DPTR,A
MOV DPL,R4
MOV DPH,R5
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R3
MOVX @DPTR,A
// 127
// 128 #if ( AF_V1_SUPPORT )
// 129 if ( proVer == ZB_PROT_V1_0 )
// 130 {
// 131 return ( afFillAndSendMessage( &afAddr, ZDP_AF_ENDPOINT, clusterID,
// 132 1, FRAMETYPE_MSG, transSeq,
// 133 NULL, NULL, NULL, NULL, len, ZDP_TmpBuf,
// 134 ZDP_TxOptions, FALSE, AF_DEFAULT_RADIUS ) );
// 135 }
// 136 else
// 137 #endif
// 138 {
// 139 *(ZDP_TmpBuf-1) = *transSeq;
MOV DPTR,#??ZDP_TmpBuf
MOVX A,@DPTR
ADD A,#-0x1
MOV ?V0 + 4,A
INC DPTR
MOVX A,@DPTR
ADDC A,#-0x1
MOV ?V0 + 5,A
MOV DPL,?V0 + 0
MOV DPH,?V0 + 1
MOVX A,@DPTR
MOV DPL,?V0 + 4
MOV DPH,?V0 + 5
MOVX @DPTR,A
// 140
// 141 return AF_DataRequest( &afAddr, &ZDApp_epDesc, clusterID,
// 142 (uint16)(len+1), (uint8*)(ZDP_TmpBuf-1),
// 143 transSeq, ZDP_TxOptions, AF_DEFAULT_RADIUS );
; Setup parameters for call to function AF_DataRequest
MOV ?V0 + 6,#0xa
MOV R0,#?V0 + 6
LCALL ?PUSH_XSTACK_I_ONE
CFI CFA_XSP16 add(XSP16, 20)
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 22)
MOV R0,#?V0 + 4
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 24)
MOV ?V0 + 0,R1
MOV A,#0x1
ADD A,?V0 + 0
MOV ?V0 + 0,A
CLR A
ADDC A,#0x0
MOV ?V0 + 1,A
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 26)
MOV R0,#?V0 + 2
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 28)
MOV DPTR,#??ZDP_TxOptions
MOVX A,@DPTR
MOV R1,A
MOV R4,#(ZDApp_epDesc & 0xff)
MOV R5,#((ZDApp_epDesc >> 8) & 0xff)
MOV A,#0x9
LCALL ?XSTACK_DISP0_8
MOV R2,DPL
MOV R3,DPH
MOV DPTR,#(AF_DataRequest & 0xffff)
MOV A,#((AF_DataRequest >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x9
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 19)
MOV A,#0x4
CFI EndBlock cfiBlock0
REQUIRE ?Subroutine41
; // Fall through to label ?Subroutine41
// 144 }
// 145 }
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine41:
CFI Block cfiBlock1 Using cfiCommon0
CFI NoFunction
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 16)
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
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(-15)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V6 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)))
CFI Invalid
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 15)
CFI Valid
MOV R7,#0x7
LJMP ?BANKED_LEAVE_XDATA
CFI EndBlock cfiBlock1
// 146
// 147 /*********************************************************************
// 148 * @fn ZDP_SendData
// 149 *
// 150 * @brief This builds and send a request message that has
// 151 * NWKAddrOfInterest as its only parameter.
// 152 *
// 153 * @param dstAddr - destination address
// 154 * @param cmd - clusterID
// 155 * @param dataLen - number of bytes of data
// 156 * @param data - pointer to the data
// 157 * @param SecurityEnable - Security Options
// 158 *
// 159 * @return afStatus_t
// 160 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 161 afStatus_t ZDP_SendData( byte *TransSeq, zAddrType_t *dstAddr, uint16 cmd,
ZDP_SendData:
CFI Block cfiBlock2 Using cfiCommon0
CFI Function ZDP_SendData
// 162 byte len, byte *buf, byte SecurityEnable )
// 163 {
FUNCALL ZDP_SendData, ??fillAndSend
LOCFRAME XSTACK, 16, STACK
ARGFRAME XSTACK, 16, STACK
MOV A,#-0xe
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 V5 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 14)
; Saved register size: 14
; Auto size: 0
MOV ?V0 + 2,R1
MOV A,#0xe
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine13 & 0xFFFF
??CrossCallReturnLabel_27:
MOV A,#0x10
LCALL ?XSTACK_DISP0_8
LCALL ?Subroutine33 & 0xFFFF
??CrossCallReturnLabel_70:
MOV A,#0x12
LCALL ?XSTACK_DISP0_8
MOVX A,@DPTR
MOV ?V0 + 3,A
// 164 byte *pBuf = ZDP_TmpBuf;
LCALL ?Subroutine18 & 0xFFFF
// 165 byte cnt = len;
??CrossCallReturnLabel_32:
MOV ?V0 + 4,?V0 + 2
SJMP ??ZDP_SendData_0
// 166
// 167 while ( cnt-- )
// 168 {
// 169 *pBuf++ = *buf++;
??ZDP_SendData_1:
LCALL ?Subroutine14 & 0xFFFF
??CrossCallReturnLabel_91:
MOV R6,DPL
MOV R7,DPH
MOV DPL,R0
MOV DPH,R1
INC DPTR
MOV R0,DPL
MOV R1,DPH
// 170 }
??ZDP_SendData_0:
MOV ?V0 + 5,?V0 + 4
MOV A,#-0x1
ADD A,?V0 + 5
MOV ?V0 + 4,A
MOV A,?V0 + 5
JNZ ??ZDP_SendData_1
// 171
// 172 FillAndSendTxOptions( TransSeq, dstAddr, cmd, len,
// 173 (AF_DEFAULT_RADIUS | ((SecurityEnable) ? AF_EN_SECURITY : 0)) );
MOV A,?V0 + 3
JZ ??ZDP_SendData_2
MOV R0,#0x40
SJMP ??ZDP_SendData_3
??ZDP_SendData_2:
MOV R0,#0x0
??ZDP_SendData_3:
MOV A,R0
ORL A,#0xa
MOV DPTR,#??ZDP_TxOptions
MOVX @DPTR,A
; Setup parameters for call to function fillAndSend
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 16)
MOV R1,?V0 + 2
MOV DPTR,#(??fillAndSend & 0xffff)
MOV A,#((??fillAndSend >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x2
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 14)
CLR A
MOV DPTR,#??ZDP_TxOptions
MOVX @DPTR,A
MOV R7,#0x6
LJMP ?BANKED_LEAVE_XDATA
CFI EndBlock cfiBlock2
// 174 }
// 175
// 176 #if defined ( ZDO_NODEDESC_REQUEST ) || defined ( ZDO_POWERDESC_REQUEST ) ||\
// 177 defined ( ZDO_ACTIVEEP_REQUEST ) || defined ( ZDO_COMPLEXDESC_REQUEST ) ||\
// 178 defined ( ZDO_USERDESC_REQUEST )
// 179 /*********************************************************************
// 180 * @fn ZDP_NWKAddrOfInterestReq
// 181 *
// 182 * @brief This builds and send a request message that has
// 183 * NWKAddrOfInterest as its only parameter.
// 184 *
// 185 * @param dstAddr - destination address
// 186 * @param nwkAddr - 16 bit address
// 187 * @param SecurityEnable - Security Options
// 188 *
// 189 * @return afStatus_t
// 190 */
// 191 afStatus_t ZDP_NWKAddrOfInterestReq( zAddrType_t *dstAddr, uint16 nwkAddr,
// 192 byte cmd, byte SecurityEnable )
// 193 {
// 194 ZDP_TmpBuf[0] = LO_UINT16( nwkAddr );
// 195 ZDP_TmpBuf[1] = HI_UINT16( nwkAddr );
// 196
// 197 return fillAndSend( &ZDP_TransID, dstAddr, cmd, 2 );
// 198 }
// 199 #endif // ZDO_NODEDESC_REQUEST ZDO_POWERDESC_REQUEST ZDO_ACTIVEEP_REQUEST ZDO_COMPLEXDESC_REQUEST ZDO_USERDESC_REQUEST
// 200
// 201 /*********************************************************************
// 202 * Address Requests
// 203 */
// 204
// 205 #if defined ( ZDO_NWKADDR_REQUEST )
// 206 /*********************************************************************
// 207 * @fn ZDP_NwkAddrReq
// 208 *
// 209 * @brief This builds and send a NWK_addr_req message. This
// 210 * function sends a broadcast message looking for a 16
// 211 * bit address with a 64 bit address as bait.
// 212 *
// 213 * @param IEEEAddress - looking for this device
// 214 * @param SecurityEnable - Security Options
// 215 *
// 216 * @return afStatus_t
// 217 */
// 218 afStatus_t ZDP_NwkAddrReq( byte *IEEEAddress, byte ReqType,
// 219 byte StartIndex, byte SecurityEnable )
// 220 {
// 221 byte *pBuf = ZDP_TmpBuf;
// 222 byte len = Z_EXTADDR_LEN + 1 + 1; // IEEEAddress + ReqType + StartIndex.
// 223 zAddrType_t dstAddr;
// 224
// 225 if ( osal_ExtAddrEqual( saveExtAddr, IEEEAddress ) == FALSE )
// 226 {
// 227 dstAddr.addrMode = AddrBroadcast;
// 228 dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR;
// 229 }
// 230 else
// 231 {
// 232 dstAddr.addrMode = Addr16Bit;
// 233 dstAddr.addr.shortAddr = ZDAppNwkAddr.addr.shortAddr;
// 234 }
// 235
// 236 pBuf = osal_cpyExtAddr( pBuf, IEEEAddress );
// 237
// 238 *pBuf++ = ReqType;
// 239 *pBuf++ = StartIndex;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -