📄 mac.s51
字号:
//////////////////////////////////////////////////////////////////////////////
// /
// IAR 8051 C/C++ Compiler V7.20H/W32 11/Dec/2008 13:41:48 /
// 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\mac.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\mac.c /
// List file = D:\zigbee\演示程序\简化协议的无线收发演示\demo_p /
// ro\Debug\List\mac.s51 /
// /
// /
//////////////////////////////////////////////////////////////////////////////
NAME mac
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 ?L_MOV_TO_X
EXTERN ?L_MOV_X
EXTERN ?PUSH_XSTACK8_X
EXTERN ?UC_SWITCH_DENSE
EXTERN ?V0
EXTERN ?XSP
EXTERN ?XSTACK_DISP0_8
EXTERN __INIT_XDATA_I
EXTERN __INIT_XDATA_Z
FUNCTION ??macParseHdr,0203H
ARGFRAME XSTACK, 17, STACK
LOCFRAME ISTACK, 1, STACK
LOCFRAME XSTACK, 9, STACK
FUNCTION ??macRxFSM,021203H
ARGFRAME ISTACK, 2, STACK
LOCFRAME ISTACK, 1, STACK
LOCFRAME XSTACK, 17, STACK
??xxxxromstr_14 EQU 0
PUBLIC MACFlush
FUNCTION MACFlush,021203H
LOCFRAME ISTACK, 2, STACK
PUBLIC MACPutArray
FUNCTION MACPutArray,0203H
ARGFRAME XSTACK, 18, STACK
LOCFRAME ISTACK, 1, STACK
LOCFRAME XSTACK, 10, STACK
PUBLIC MACPutHeader
FUNCTION MACPutHeader,0a1203H
LOCFRAME ISTACK, 1, STACK
LOCFRAME XSTACK, 13, STACK
PUBWEAK __Constant_0
PUBWEAK __Constant_36
PUBWEAK __Constant_78
PUBLIC a_mac_rx_data
PUBLIC a_mac_tx_data
PUBLIC gMacDSN
PUBLIC macFSM
FUNCTION macFSM,021203H
LOCFRAME ISTACK, 2, STACK
PUBLIC macFormatUserData
FUNCTION macFormatUserData,021203H
LOCFRAME ISTACK, 1, STACK
LOCFRAME XSTACK, 18, STACK
PUBLIC macFreeRxPacket
FUNCTION macFreeRxPacket,0201H
ARGFRAME XSTACK, 17, STACK
LOCFRAME ISTACK, 2, STACK
PUBLIC macGetChannel
FUNCTION macGetChannel,0201H
LOCFRAME ISTACK, 2, STACK
PUBLIC macGetRxPacket
FUNCTION macGetRxPacket,0203H
ARGFRAME XSTACK, 17, STACK
LOCFRAME ISTACK, 2, STACK
PUBLIC macInfo
PUBLIC macInit
FUNCTION macInit,0203H
LOCFRAME ISTACK, 1, STACK
LOCFRAME XSTACK, 11, STACK
PUBLIC macInitRadio
FUNCTION macInitRadio,021203H
LOCFRAME XSTACK, 13, STACK
PUBLIC macRxBuffEmpty
FUNCTION macRxBuffEmpty,0203H
ARGFRAME XSTACK, 17, STACK
LOCFRAME ISTACK, 2, STACK
PUBLIC macRxBuffFull
FUNCTION macRxBuffFull,0203H
ARGFRAME ISTACK, 2, STACK
LOCFRAME ISTACK, 2, STACK
PUBLIC macRxCallback
FUNCTION macRxCallback,021203H
LOCFRAME ISTACK, 1, STACK
LOCFRAME XSTACK, 8, STACK
PUBLIC macRxGetBuffer
FUNCTION macRxGetBuffer,021201H
LOCFRAME ISTACK, 2, STACK
PUBLIC macSetChannel
FUNCTION macSetChannel,021203H
LOCFRAME XSTACK, 8, STACK
PUBLIC macSetPANID
FUNCTION macSetPANID,021203H
LOCFRAME XSTACK, 8, STACK
PUBLIC macSetShortAddr
FUNCTION macSetShortAddr,021203H
LOCFRAME XSTACK, 8, STACK
PUBLIC macTxCallback
FUNCTION macTxCallback,021203H
LOCFRAME XSTACK, 11, STACK
PUBLIC macTxFSM_status
PUBLIC mac_pib
PUBLIC submacCurrentFrame
PUBLIC xyz
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 halInitRadio
FUNCTION halInitRadio,0202H
ARGFRAME XSTACK, 13, STACK
EXTERN halSetRadioPANID
FUNCTION halSetRadioPANID,0202H
ARGFRAME XSTACK, 11, STACK
EXTERN halSetRadioShortAddr
FUNCTION halSetRadioShortAddr,0202H
ARGFRAME XSTACK, 11, STACK
EXTERN halSetChannel
FUNCTION halSetChannel,0202H
ARGFRAME XSTACK, 8, STACK
EXTERN halGetProcessorIEEEAddress_ASC
FUNCTION halGetProcessorIEEEAddress_ASC,0202H
ARGFRAME XSTACK, 13, STACK
EXTERN phyFSM
FUNCTION phyFSM,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN conPrintROMString_func
FUNCTION conPrintROMString_func,0202H
ARGFRAME XSTACK, 17, STACK
EXTERN conPrintUINT8
FUNCTION conPrintUINT8,0202H
ARGFRAME XSTACK, 17, STACK
EXTERN conPrintUINT16
FUNCTION conPrintUINT16,0202H
ARGFRAME XSTACK, 17, STACK
EXTERN halGetMACTimer
FUNCTION halGetMACTimer,0202H
ARGFRAME XSTACK, 17, STACK
EXTERN halPutch
FUNCTION halPutch,0202H
ARGFRAME XSTACK, 8, STACK
EXTERN a_phy_service
EXTERN debug_level
EXTERN phyState
EXTERN phy_pib
EXTERN tmpTxBuff
// D:\zigbee\演示程序\简化协议的无线收发演示\demo_pro\src\mac.c
// 1
// 2 /*
// 3 V0.1 Initial Release 10/July/2006 RBR
// 4
// 5 */
// 6
// 7
// 8 #include "compiler.h"
// 9 #include "lrwpan_config.h" //user configurations
// 10 #include "lrwpan_common_types.h" //types common acrosss most files
// 11 #include "ieee_lrwpan_defs.h"
// 12 #include "console.h"
// 13 #include "hal.h"
// 14 #include "halstack.h"
// 15 #include "phy.h"
// 16 #include "mac.h"
// 17
// 18 #include "sendpack.h"
// 19 //#include "nwk.h"
// 20
// 21 //#include "neighbor.h"
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 22 SUB_MAC_FRAME submacCurrentFrame;
submacCurrentFrame:
DS 62
// 23 /*
// 24 typedef enum _MAC_RXSTATE_ENUM {
// 25 MAC_RXSTATE_IDLE,
// 26 MAC_RXSTATE_NWK_HANDOFF,
// 27 MAC_RXSTATE_CMD_PENDING
// 28 } MAC_RXSTATE_ENUM;*/
// 29 //
// 30 //static MAC_RXSTATE_ENUM macRxState;
// 31
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 32 MAC_PIB mac_pib;
mac_pib:
DS 551
// 33 //MAC_SERVICE a_mac_service;
// 34 //MAC_STATE_ENUM macState;
// 35
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 36 NODE_INFO macInfo;
macInfo:
DS 13
// 37
// 38
// 39 //there can only be one TX in progress at a time, so
// 40 //a_mac_tx_data contains the arguments for that TX.
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 41 MAC_TX_DATA a_mac_tx_data;
a_mac_tx_data:
DS 18
// 42
// 43 //this is used for parsing of current packet.
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 44 MAC_RX_DATA a_mac_rx_data;
a_mac_rx_data:
DS 25
// 45
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 46 LRWPAN_STATUS_ENUM macTxFSM_status;
macTxFSM_status:
DS 1
// 47
// 48
// 49 //locals
// 50 //static UINT32 mac_utility_timer; //utility timer
// 51
// 52 //local functions
// 53 //static void macTxData(void);
// 54 static void macParseHdr(void);
// 55 static void macRxFSM(void);
// 56
// 57
// 58
// 59
// 60 //does not turn on radio.
RSEG NEAR_CODE:CODE:NOROOT(0)
// 61 void macInit(void){
macInit:
CFI Block cfiBlock0 Using cfiCommon0
CFI Function macInit
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: 0
// 62
// 63 BYTE *p;
// 64 //macState = MAC_STATE_IDLE;
// 65 //macRxState = MAC_RXSTATE_IDLE;
// 66 mac_pib.flags.val = 0;
MOV DPTR,#__Constant_0
MOV R0,#?V0 + 0
LCALL ?L_MOV_X
MOV DPTR,#(mac_pib + 4)
MOV R0,#?V0 + 0
LCALL ?L_MOV_TO_X
// 67 mac_pib.rxTail = 0;
MOV A,#0x0
MOV DPTR,#(mac_pib + 39)
MOVX @DPTR,A
// 68 mac_pib.rxHead = 0;
MOV A,#0x0
MOV DPTR,#(mac_pib + 40)
MOVX @DPTR,A
// 69 mac_pib.macPANID = LRWPAN_DEFAULT_PANID;
MOV DPTR,#(mac_pib + 18)
MOV A,#0x47
MOVX @DPTR,A
INC DPTR
MOV A,#0x13
MOVX @DPTR,A
// 70 //mac_pib.macMaxAckRetries = aMaxFrameRetries;
// 71
// 72 macInfo.panID.Val=0xffff;
MOV DPTR,#(macInfo + 11)
MOV A,#-0x1
MOVX @DPTR,A
INC DPTR
MOV A,#-0x1
MOVX @DPTR,A
// 73 macInfo.panID.Val=0xffff;
MOV DPTR,#(macInfo + 11)
MOV A,#-0x1
MOVX @DPTR,A
INC DPTR
MOV A,#-0x1
MOVX @DPTR,A
// 74
// 75
// 76 p = (BYTE*) &macInfo.longAddr;// Initialize the MAC address
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -