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

📄 sendpack.lst

📁 无线单片机cc2430简化协议的无线收发程序
💻 LST
📖 第 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_pr #
#                          o\src\SendPack.c                                  #
#    Command line       =  -lC D:\zigbee\演示程序\简化协议的无线收发演示\dem #
#                          o_pro\Debug\List\ -lA D:\zigbee\演示程序\简化协议 #
#                          的无线收发演示\demo_pro\Debug\List\ -o            #
#                          D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
#                          o\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_reen #
#                          trant --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_pr #
#                          o\src\SendPack.c                                  #
#    List file          =  D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
#                          o\Debug\List\SendPack.lst                         #
#    Object file        =  D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
#                          o\Debug\Obj\SendPack.r51                          #
#                                                                            #
#                                                                            #
##############################################################################

D:\zigbee\演示程序\简化协议的无线收发演示\demo_pro\src\SendPack.c
      1          
      2          #include "msstate_lrwpan.h"
      3          #include "mac.h"
      4          

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
      5          NODE_INFO dest;
   \                     dest:
   \   000000                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;

   \                                 In segment NEAR_CODE, align 1, keep-with-next
     15          void WirelessSendData(BYTE frame)
   \                     WirelessSendData:
     16          {
   \   000000   74F5         MOV     A,#-0xb
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 11
   \   000005                ; Auto size: 61
   \   000005   74C3         MOV     A,#-0x3d
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
   \   00000A   89..         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:
   \   00000C   90....       MOV     DPTR,#(phy_pib + 8)
   \   00000F   E0           MOVX    A,@DPTR
   \   000010   5402         ANL     A,#0x2
   \   000012   70F8         JNZ     ??WirelessSendData_0
     34              phyGrabTxLock();
   \   000014   90....       MOV     DPTR,#(phy_pib + 8)
   \   000017   E0           MOVX    A,@DPTR
   \   000018   4402         ORL     A,#0x2
   \   00001A   F0           MOVX    @DPTR,A
   \   00001B   A3           INC     DPTR
   \   00001C   E0           MOVX    A,@DPTR
   \   00001D   4400         ORL     A,#0x0
   \   00001F   F0           MOVX    @DPTR,A
     35          
     36          
     37              macInfo.addrMode = MAC_SRC_NO_ADDR;
   \   000020   7400         MOV     A,#0x0
   \   000022   90....       MOV     DPTR,#macInfo
   \   000025   F0           MOVX    @DPTR,A
     38              dest.addrMode = MAC_DST_SHORT_ADDR;
   \   000026   7408         MOV     A,#0x8
   \   000028   90....       MOV     DPTR,#dest
   \   00002B   F0           MOVX    @DPTR,A
     39              dest.shortAddr.Val = 0xffff;
   \   00002C   90....       MOV     DPTR,#(dest + 9)
   \   00002F   74FF         MOV     A,#-0x1
   \   000031   F0           MOVX    @DPTR,A
   \   000032   A3           INC     DPTR
   \   000033   74FF         MOV     A,#-0x1
   \   000035   F0           MOVX    @DPTR,A
     40              dest.panID.Val = 0xffff;
   \   000036   90....       MOV     DPTR,#(dest + 11)
   \   000039   74FF         MOV     A,#-0x1
   \   00003B   F0           MOVX    @DPTR,A
   \   00003C   A3           INC     DPTR
   \   00003D   74FF         MOV     A,#-0x1
   \   00003F   F0           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);
   \   000040                ; Setup parameters for call to function MACPutHeader
   \   000040   7901         MOV     R1,#0x1
   \   000042   7A..         MOV     R2,#(dest & 0xff)
   \   000044   7B..         MOV     R3,#((dest >> 8) & 0xff)
   \   000046   12....       LCALL   MACPutHeader
     45          	cs=0;
   \   000049   7E00         MOV     R6,#0x0
     46              SendData[0] = frame;
   \   00004B   85..82       MOV     DPL,?XSP + 0
   \   00004E   85..83       MOV     DPH,?XSP + 1
   \   000051   E5..         MOV     A,?V0 + 1
   \   000053   F0           MOVX    @DPTR,A
     47          
     48              switch (frame)
   \   000054   E5..         MOV     A,?V0 + 1
   \   000056   12....       LCALL   ?UC_SWITCH_SPARSE
   \                     `?<Jumptable for WirelessSendData>_0`:
   \   000059   00           DB        0
   \   00005A   15           DB        21
   \   00005B   00           DB        0
   \   00005C   ....         DW        ??WirelessSendData_1
   \   00005E   01           DB        1
   \   00005F   ....         DW        ??WirelessSendData_2
   \   000061   10           DB        16
   \   000062   ....         DW        ??WirelessSendData_3
   \   000064   11           DB        17
   \   000065   ....         DW        ??WirelessSendData_4
   \   000067   12           DB        18
   \   000068   ....         DW        ??WirelessSendData_5
   \   00006A   13           DB        19
   \   00006B   ....         DW        ??WirelessSendData_6
   \   00006D   14           DB        20
   \   00006E   ....         DW        ??WirelessSendData_7
   \   000070   15           DB        21
   \   000071   ....         DW        ??WirelessSendData_8
   \   000073   16           DB        22
   \   000074   ....         DW        ??WirelessSendData_9
   \   000076   17           DB        23
   \   000077   ....         DW        ??WirelessSendData_10
   \   000079   18           DB        24
   \   00007A   ....         DW        ??WirelessSendData_11
   \   00007C   19           DB        25
   \   00007D   ....         DW        ??WirelessSendData_12
   \   00007F   1A           DB        26
   \   000080   ....         DW        ??WirelessSendData_13
   \   000082   1B           DB        27
   \   000083   ....         DW        ??WirelessSendData_14
   \   000085   1C           DB        28
   \   000086   ....         DW        ??WirelessSendData_15
   \   000088   1D           DB        29
   \   000089   ....         DW        ??WirelessSendData_16
   \   00008B   20           DB        32
   \   00008C   ....         DW        ??WirelessSendData_17
   \   00008E   22           DB        34
   \   00008F   ....         DW        ??WirelessSendData_18
   \   000091   23           DB        35
   \   000092   ....         DW        ??WirelessSendData_19
   \   000094   24           DB        36
   \   000095   ....         DW        ??WirelessSendData_20
   \   000097   A0           DB        160
   \   000098   ....         DW        ??WirelessSendData_21
   \   00009A   ....         DW        ??WirelessSendData_22
     49              {
     50                 case MSG_DEBUG_OUT:
     51                      SendData[1] = 0xff;
   \                     ??WirelessSendData_21:
   \   00009C   74FF         MOV     A,#-0x1
   \   00009E   C0E0         PUSH    A
   \   0000A0   7401         MOV     A,#0x1
   \   0000A2   12....       LCALL   ?XSTACK_DISP0_8
   \   0000A5   D0E0         POP     A
   \   0000A7   F0           MOVX    @DPTR,A
     52                      SendData[2] = 0xff;
   \   0000A8   74FF         MOV     A,#-0x1
   \   0000AA   C0E0         PUSH    A
   \   0000AC   7402         MOV     A,#0x2
   \   0000AE   12....       LCALL   ?XSTACK_DISP0_8
   \   0000B1   D0E0         POP     A
   \   0000B3   F0           MOVX    @DPTR,A
     53                      SendData[3] = macInfo.longAddr.v[0];
   \   0000B4   90....       MOV     DPTR,#(macInfo + 1)
   \   0000B7   E0           MOVX    A,@DPTR
   \   0000B8   C0E0         PUSH    A
   \   0000BA   7403         MOV     A,#0x3
   \   0000BC   12....       LCALL   ?XSTACK_DISP0_8
   \   0000BF   D0E0         POP     A
   \   0000C1   F0           MOVX    @DPTR,A
     54                      SendData[4] = macInfo.longAddr.v[1];
   \   0000C2   90....       MOV     DPTR,#(macInfo + 2)
   \   0000C5   E0           MOVX    A,@DPTR
   \   0000C6   C0E0         PUSH    A
   \   0000C8   7404         MOV     A,#0x4
   \   0000CA   12....       LCALL   ?XSTACK_DISP0_8
   \   0000CD   D0E0         POP     A
   \   0000CF   F0           MOVX    @DPTR,A
     55                      SendData[5] = 1+1+1+DebugParamLen;//len;
   \   0000D0   90....       MOV     DPTR,#DebugParamLen
   \   0000D3   E0           MOVX    A,@DPTR
   \   0000D4   2403         ADD     A,#0x3
   \   0000D6   C0E0         PUSH    A
   \   0000D8   7405         MOV     A,#0x5
   \   0000DA   12....       LCALL   ?XSTACK_DISP0_8
   \   0000DD   D0E0         POP     A
   \   0000DF   F0           MOVX    @DPTR,A
     56                      for(i=0;i<=5;i++)cs+=SendData[i];
   \   0000E0   75..00       MOV     ?V0 + 0,#0x0
   \                     ??WirelessSendData_23:
   \   0000E3   E5..         MOV     A,?V0 + 0
   \   0000E5   C3           CLR     C
   \   0000E6   9406         SUBB    A,#0x6
   \   0000E8   501F         JNC     ??WirelessSendData_24
   \   0000EA   85....       MOV     ?V0 + 2,?V0 + 0
   \   0000ED   75..00       MOV     ?V0 + 3,#0x0
   \   0000F0   85..82       MOV     DPL,?XSP + 0
   \   0000F3   85..83       MOV     DPH,?XSP + 1
   \   0000F6   E582         MOV     A,DPL
   \   0000F8   25..         ADD     A,?V0 + 2
   \   0000FA   F582         MOV     DPL,A
   \   0000FC   E583         MOV     A,DPH
   \   0000FE   35..         ADDC    A,?V0 + 3
   \   000100   F583         MOV     DPH,A
   \   000102   E0           MOVX    A,@DPTR
   \   000103   2E           ADD     A,R6
   \   000104   FE           MOV     R6,A
   \   000105   05..         INC     ?V0 + 0
   \   000107   80DA         SJMP    ??WirelessSendData_23
     57                      SendData[6] = cs;//checksum;
   \                     ??WirelessSendData_24:
   \   000109   EE           MOV     A,R6
   \   00010A   C0E0         PUSH    A
   \   00010C   7406         MOV     A,#0x6
   \   00010E   12....       LCALL   ?XSTACK_DISP0_8
   \   000111   D0E0         POP     A
   \   000113   F0           MOVX    @DPTR,A
     58          			
     59                      SendData[7] = DebugCode; 	
   \   000114   90....       MOV     DPTR,#DebugCode
   \   000117   E0           MOVX    A,@DPTR
   \   000118   C0E0         PUSH    A
   \   00011A   7407         MOV     A,#0x7
   \   00011C   12....       LCALL   ?XSTACK_DISP0_8
   \   00011F   D0E0         POP     A

⌨️ 快捷键说明

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