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

📄 sendpack.s51

📁 无线单片机cc2430简化协议的无线收发程序
💻 S51
📖 第 1 页 / 共 5 页
字号:
//////////////////////////////////////////////////////////////////////////////
//                                                                           /
// 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 + -