📄 sendpack.s51
字号:
//////////////////////////////////////////////////////////////////////////////
// /
// IAR 8051 C/C++ Compiler V7.20H/W32 11/Dec/2008 13:41:50 /
// Copyright 2004-2006 IAR Systems. All rights reserved. /
// /
// Core = plain /
// Code model = near /
// Data model = large /
// Calling convention = xdata reentrant /
// Constant location = data /
// Dptr setup = 1,16 /
// Source file = D:\zigbee\演示程序\简化协议的无线收发演示\demo_p /
// ro\src\SendPack.c /
// Command line = -lC D:\zigbee\演示程序\简化协议的无线收发演示\de /
// mo_pro\Debug\List\ -lA D:\zigbee\演示程序\简化协 /
// 议的无线收发演示\demo_pro\Debug\List\ -o /
// D:\zigbee\演示程序\简化协议的无线收发演示\demo_p /
// ro\Debug\Obj\ -e -z2 --no_cse --no_unroll /
// --no_inline --no_code_motion --no_tbaa --debug /
// --core=plain --dptr=16,1 --data_model=large /
// --code_model=near --calling_convention=xdata_ree /
// ntrant --place_constants=data --nr_virtual_regs /
// 8 -I "C:\Program Files\IAR Systems\Embedded /
// Workbench 4.05 Evaluation version\8051\INC\" -I /
// "C:\Program Files\IAR Systems\Embedded /
// Workbench 4.05 Evaluation /
// version\8051\INC\CLIB\" /
// D:\zigbee\演示程序\简化协议的无线收发演示\demo_p /
// ro\src\SendPack.c /
// List file = D:\zigbee\演示程序\简化协议的无线收发演示\demo_p /
// ro\Debug\List\SendPack.s51 /
// /
// /
//////////////////////////////////////////////////////////////////////////////
NAME SendPack
RTMODEL "__calling_convention", "xdata_reentrant"
RTMODEL "__code_model", "near"
RTMODEL "__core", "plain"
RTMODEL "__data_model", "large"
RTMODEL "__dptr_size", "16"
RTMODEL "__extended_stack", "disabled"
RTMODEL "__location_for_constants", "data"
RTMODEL "__number_of_dptrs", "1"
RTMODEL "__rt_version", "1"
RSEG DOVERLAY:DATA:NOROOT(0)
RSEG IOVERLAY:IDATA:NOROOT(0)
RSEG ISTACK:IDATA:NOROOT(0)
RSEG PSTACK:XDATA:NOROOT(0)
RSEG XSTACK:XDATA:NOROOT(0)
EXTERN ?ALLOC_XSTACK8
EXTERN ?DEALLOC_XSTACK8
EXTERN ?FUNC_ENTER_XDATA
EXTERN ?FUNC_LEAVE_XDATA
EXTERN ?UC_SWITCH_SPARSE
EXTERN ?V0
EXTERN ?XSP
EXTERN ?XSTACK_DISP0_8
EXTERN __INIT_XDATA_Z
PUBLIC WirelessSendData
FUNCTION WirelessSendData,0a1203H
LOCFRAME ISTACK, 1, STACK
LOCFRAME XSTACK, 72, STACK
PUBLIC dest
CFI Names cfiNames0
CFI StackFrame CFA_SP SP DATA
CFI StackFrame CFA_PSP16 PSP16 XDATA
CFI StackFrame CFA_XSP16 XSP16 XDATA
CFI StaticOverlayFrame CFA_IOVERLAY IOVERLAY
CFI StaticOverlayFrame CFA_DOVERLAY DOVERLAY
CFI Resource `PSW.CY`:1, `B.BR0`:1, `B.BR1`:1, `B.BR2`:1, `B.BR3`:1
CFI Resource `B.BR4`:1, `B.BR5`:1, `B.BR6`:1, `B.BR7`:1, `VB.BR8`:1
CFI Resource `VB.BR9`:1, `VB.BR10`:1, `VB.BR11`:1, `VB.BR12`:1
CFI Resource `VB.BR13`:1, `VB.BR14`:1, `VB.BR15`:1, VB:8, B:8, A:8
CFI Resource PSW:8, DPL0:8, DPH0:8, R0:8, R1:8, R2:8, R3:8, R4:8, R5:8
CFI Resource R6:8, R7:8, V0:8, V1:8, V2:8, V3:8, V4:8, V5:8, V6:8, V7:8
CFI Resource SP:8, PSPH:8, PSPL:8, PSP16:16, XSPH:8, XSPL:8, XSP16:16
CFI VirtualResource ?RET:16, ?RET_HIGH:8, ?RET_LOW:8
CFI ResourceParts PSP16 PSPH, PSPL
CFI ResourceParts XSP16 XSPH, XSPL
CFI ResourceParts ?RET ?RET_HIGH, ?RET_LOW
CFI EndNames cfiNames0
CFI Common cfiCommon0 Using cfiNames0
CFI CodeAlign 1
CFI DataAlign -1
CFI ReturnAddress ?RET CODE
CFI CFA_DOVERLAY Used
CFI CFA_IOVERLAY Used
CFI CFA_SP SP+-2
CFI CFA_PSP16 PSP16+0
CFI CFA_XSP16 XSP16+0
CFI `PSW.CY` SameValue
CFI `B.BR0` SameValue
CFI `B.BR1` SameValue
CFI `B.BR2` SameValue
CFI `B.BR3` SameValue
CFI `B.BR4` SameValue
CFI `B.BR5` SameValue
CFI `B.BR6` SameValue
CFI `B.BR7` SameValue
CFI `VB.BR8` SameValue
CFI `VB.BR9` SameValue
CFI `VB.BR10` SameValue
CFI `VB.BR11` SameValue
CFI `VB.BR12` SameValue
CFI `VB.BR13` SameValue
CFI `VB.BR14` SameValue
CFI `VB.BR15` SameValue
CFI VB SameValue
CFI B Undefined
CFI A Undefined
CFI PSW SameValue
CFI DPL0 SameValue
CFI DPH0 SameValue
CFI R0 Undefined
CFI R1 Undefined
CFI R2 Undefined
CFI R3 Undefined
CFI R4 Undefined
CFI R5 Undefined
CFI R6 SameValue
CFI R7 SameValue
CFI V0 SameValue
CFI V1 SameValue
CFI V2 SameValue
CFI V3 SameValue
CFI V4 SameValue
CFI V5 SameValue
CFI V6 SameValue
CFI V7 SameValue
CFI PSPH Undefined
CFI PSPL Undefined
CFI XSPH Undefined
CFI XSPL Undefined
CFI ?RET Concat
CFI ?RET_HIGH Frame(CFA_SP, 2)
CFI ?RET_LOW Frame(CFA_SP, 1)
CFI EndCommon cfiCommon0
EXTERN MACPutHeader
FUNCTION MACPutHeader,0202H
ARGFRAME XSTACK, 72, STACK
EXTERN MACPutArray
FUNCTION MACPutArray,0202H
ARGFRAME XSTACK, 72, STACK
EXTERN MACFlush
FUNCTION MACFlush,0202H
ARGFRAME XSTACK, 72, STACK
EXTERN DebugCode
EXTERN DebugParam
EXTERN DebugParamLen
EXTERN GroupChannelIdx
EXTERN NewChannelIdx
EXTERN NewGroupChannel
EXTERN SensorInfo
EXTERN ThisNode
EXTERN macInfo
EXTERN phy_pib
EXTERN submacCurrentFrame
// D:\zigbee\演示程序\简化协议的无线收发演示\demo_pro\src\SendPack.c
// 1
// 2 #include "msstate_lrwpan.h"
// 3 #include "mac.h"
// 4
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 5 NODE_INFO dest;
dest:
DS 13
// 6
// 7
// 8 extern BYTE DebugParam[];
// 9 extern BYTE DebugParamLen;
// 10 extern BYTE IDNUM,STATES;
// 11
// 12 extern BYTE SensorInfo;
// 13 extern BYTE DebugCode;
// 14 extern BYTE ChannelIdx,NewChannelIdx,GroupChannelIdx,NewGroupChannel;
RSEG NEAR_CODE:CODE:NOROOT(0)
// 15 void WirelessSendData(BYTE frame)
WirelessSendData:
CFI Block cfiBlock0 Using cfiCommon0
CFI Function WirelessSendData
// 16 {
FUNCALL WirelessSendData, MACPutHeader
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACPutArray
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
FUNCALL WirelessSendData, MACFlush
LOCFRAME XSTACK, 72, STACK
ARGFRAME XSTACK, 72, STACK
MOV A,#-0xb
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 V3 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 11)
; Saved register size: 11
; Auto size: 61
MOV A,#-0x3d
LCALL ?ALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 72)
MOV ?V0 + 1,R1
// 17 //数据格式如下:
// 18
// 19 //MacPutHeader()函数构造Mac帧头: 帧控制[2byte]+流水号[1byte]+目的PanID+目的Addr+源PanID+源Addr
// 20 //--> //WirelessSendData()构造数据: 数据类型[1Byte]+Dst Addr[2Byte]+Src Addr[2Byte]+data Len[cs+data]+Head Cs[之前6Byte 相加]+Data;
// 21 //MACPutArray()函数:会给data数据在计算一次校验和,追加在data之后;
// 22 //MACFlush函数:会在总包头前增加包数据长度[包含Header+userdata+rssi+crc],最后由2430自动追加RSSI and CRC 共两个字节
// 23
// 24 #if defined(USE_TAGRSSI)
// 25 BYTE SendData[MAX_GROUPMENBER_NUM *3+16];
// 26 #else
// 27 BYTE SendData[MAX_GROUPMENBER_NUM *2+16];
// 28 #endif
// 29 BYTE i,rssi,cs;
// 30
// 31
// 32
// 33 while (!MACIsPutReady()) ;
??WirelessSendData_0:
MOV DPTR,#(phy_pib + 8)
MOVX A,@DPTR
ANL A,#0x2
JNZ ??WirelessSendData_0
// 34 phyGrabTxLock();
MOV DPTR,#(phy_pib + 8)
MOVX A,@DPTR
ORL A,#0x2
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ORL A,#0x0
MOVX @DPTR,A
// 35
// 36
// 37 macInfo.addrMode = MAC_SRC_NO_ADDR;
MOV A,#0x0
MOV DPTR,#macInfo
MOVX @DPTR,A
// 38 dest.addrMode = MAC_DST_SHORT_ADDR;
MOV A,#0x8
MOV DPTR,#dest
MOVX @DPTR,A
// 39 dest.shortAddr.Val = 0xffff;
MOV DPTR,#(dest + 9)
MOV A,#-0x1
MOVX @DPTR,A
INC DPTR
MOV A,#-0x1
MOVX @DPTR,A
// 40 dest.panID.Val = 0xffff;
MOV DPTR,#(dest + 11)
MOV A,#-0x1
MOVX @DPTR,A
INC DPTR
MOV A,#-0x1
MOVX @DPTR,A
// 41
// 42 MACPutHeader(&dest, // Dest
// 43 MAC_FRAME_DATA | // Frame Control LSB
// 44 MAC_SECURITY | MAC_FRAME_PENDING_NO | MAC_ACK_NO | MAC_INTRA_PAN_NO);
; Setup parameters for call to function MACPutHeader
MOV R1,#0x1
MOV R2,#(dest & 0xff)
MOV R3,#((dest >> 8) & 0xff)
LCALL MACPutHeader
// 45 cs=0;
MOV R6,#0x0
// 46 SendData[0] = frame;
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOV A,?V0 + 1
MOVX @DPTR,A
// 47
// 48 switch (frame)
MOV A,?V0 + 1
LCALL ?UC_SWITCH_SPARSE
`?<Jumptable for WirelessSendData>_0`:
DB 0
DB 21
DB 0
DW ??WirelessSendData_1
DB 1
DW ??WirelessSendData_2
DB 16
DW ??WirelessSendData_3
DB 17
DW ??WirelessSendData_4
DB 18
DW ??WirelessSendData_5
DB 19
DW ??WirelessSendData_6
DB 20
DW ??WirelessSendData_7
DB 21
DW ??WirelessSendData_8
DB 22
DW ??WirelessSendData_9
DB 23
DW ??WirelessSendData_10
DB 24
DW ??WirelessSendData_11
DB 25
DW ??WirelessSendData_12
DB 26
DW ??WirelessSendData_13
DB 27
DW ??WirelessSendData_14
DB 28
DW ??WirelessSendData_15
DB 29
DW ??WirelessSendData_16
DB 32
DW ??WirelessSendData_17
DB 34
DW ??WirelessSendData_18
DB 35
DW ??WirelessSendData_19
DB 36
DW ??WirelessSendData_20
DB 160
DW ??WirelessSendData_21
DW ??WirelessSendData_22
// 49 {
// 50 case MSG_DEBUG_OUT:
// 51 SendData[1] = 0xff;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -