📄 mac.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 16/Jan/2007 15:30:47 #
# Copyright 2004-2006 IAR Systems. All rights reserved. #
# #
# Core = plain #
# Code model = banked #
# Data model = large #
# Calling convention = xdata reentrant #
# Constant location = data #
# Dptr setup = 1,16 #
# Source file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\lib\mac\CC2430\mac.c #
# Command line = -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\SRC\LIB\" -I #
# "C:\Program Files\IAR Systems\Embedded Workbench #
# 4.05 Evaluation version\8051\INC\CLIB\" -I #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\..\..\..\include\ -I #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\..\..\..\include\mac\cc2430\ #
# -I E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_E #
# ngine\Test\mac\mac_loc\..\..\..\include\hal\cc243 #
# 0\ -I E:\公司产品资料\Zigbee\cc2431\cc2431定位\LO #
# C_Engine\Test\mac\mac_loc\..\..\..\apps\ -D #
# CC2430EB -D USE_LED -lCN #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\List\ -lA #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\List\ -o #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\Obj\ -e -s9 --debug #
# --core=plain --dptr=16,1 --data_model=large #
# --code_model=banked --calling_convention=xdata_re #
# entrant --place_constants=data --nr_virtual_regs #
# 8 E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_En #
# gine\lib\mac\CC2430\mac.c #
# List file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\List\mac.lst #
# Object file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\Obj\mac.r51 #
# #
# #
##############################################################################
E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engine\lib\mac\CC2430\mac.c
1 /*******************************************************************************************************
2 * *
3 * ********** *
4 * ************ *
5 * *** *** *
6 * *** +++ *** *
7 * *** + + *** *
8 * *** + CHIPCON CC2430 INTEGRATED 802.15.4 MAC AND PHY *
9 * *** + + *** *
10 * *** +++ *** *
11 * *** *** *
12 * ************ *
13 * ********** *
14 * *
15 *******************************************************************************************************
16 * CONFIDENTIAL *
17 * The use of this file is restricted by the signed MAC software license agreement. *
18 * *
19 * Copyright Chipcon AS, 2005 *
20 *******************************************************************************************************
21 * This file implements the MAC functions (request and response) to be called by the higher layer *
22 *******************************************************************************************************/
23 #include "mac_headers.h"
\ In segment SFR_AN, at 0xa1
\ unsigned char volatile __sfr T2OF0
\ T2OF0:
\ 000000 DS 1
\ In segment SFR_AN, at 0xa2
\ unsigned char volatile __sfr T2OF1
\ T2OF1:
\ 000000 DS 1
\ In segment SFR_AN, at 0xa3
\ unsigned char volatile __sfr T2OF2
\ T2OF2:
\ 000000 DS 1
24
25 //-------------------------------------------------------------------------------------------------------
26 // Extended address, must be set by higher layer
27
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
28 BYTE aExtendedAddress[8];
\ aExtendedAddress:
\ 000000 DS 8
29 //-------------------------------------------------------------------------------------------------------
30
31
32 //-------------------------------------------------------------------------------------------------------
33 // MAC_ENUM mlmeResetRequest(BOOL setDefaultPIB)
34 //
35 // DESCRIPTION:
36 // Reset the MAC and PHY layers, including CC2430, the microcontroller, and all state variables.
37 // NOTE: The initialization and power-up sequence must be performed according to
38 // the MAC documentation prior to calling mlmeResetRequest or other
39 // MAC primitives
40 //
41 // PARAMETERS:
42 // BOOL setDefaultPIB
43 // Reset the PHY and MAC PIBs
44 //
45 // RETURN VALUE:
46 // MAC_ENUM
47 // Always SUCCESS
48 //-------------------------------------------------------------------------------------------------------
\ In segment NEAR_CODE, align 1, keep-with-next
49 ROOT MAC_ENUM mlmeResetRequest(BOOL setDefaultPIB) {
\ mlmeResetRequest:
\ 000000 74F5 MOV A,#-0xb
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 11
\ 000005 ; Auto size: 0
\ 000005 E9 MOV A,R1
\ 000006 FE MOV R6,A
50
51 // Disable the FIFOP interrupt
52 DISABLE_TIMER2_INT();
\ 000007 C2BA CLR 0xb8.2
53
54 // Clear ABORTRX_ON_SRXON and ACCEPT_ACKPKT
55 FSMTC1 = 0x00;
\ 000009 E4 CLR A
\ 00000A 90DF54 MOV DPTR,#-0x20ac
\ 00000D F0 MOVX @DPTR,A
56
57 // Initialize the MAC timer
58 mtimInit(FALSE);
\ 00000E ; Setup parameters for call to function mtimInit
\ 00000E F9 MOV R1,A
\ 00000F 12.... LCALL mtimInit
59
60 // Initialize the scheduler before the other modules (task reservation...)
61 mschInit();
\ 000012 ; Setup parameters for call to function mschInit
\ 000012 12.... LCALL mschInit
62
63 // Initialize variables in the various modules
64 mrxpInit();
\ 000015 ; Setup parameters for call to function mrxpInit
\ 000015 12.... LCALL mrxpInit
65 mtxpInit();
\ 000018 ; Setup parameters for call to function mtxpInit
\ 000018 12.... LCALL mtxpInit
66 #if MAC_OPT_FFD
67 miqInit();
\ 00001B ; Setup parameters for call to function miqInit
\ 00001B 12.... LCALL miqInit
68 #endif
69 mtxInfo.startTxTask = mschReserveTask();
\ 00001E ; Setup parameters for call to function mschReserveTask
\ 00001E 12.... LCALL mschReserveTask
\ 000021 E9 MOV A,R1
\ 000022 90.... MOV DPTR,#(mtxInfo + 12)
\ 000025 F0 MOVX @DPTR,A
70 mrxInfo.state = MRX_STATE_LEN_FCF_SEQ;
\ 000026 E4 CLR A
\ 000027 90.... MOV DPTR,#(mrxInfo + 12)
\ 00002A F0 MOVX @DPTR,A
71 mrxInfo.onCounter = 0;
\ 00002B 90.... MOV DPTR,#(mrxInfo + 13)
\ 00002E F0 MOVX @DPTR,A
72 mrxInfo.keepFifopIntOff = FALSE;
\ 00002F 90.... MOV DPTR,#(mrxInfo + 15)
\ 000032 F0 MOVX @DPTR,A
73 mrxInfo.handleFifoUnderflow = FALSE;
\ 000033 90.... MOV DPTR,#(mrxInfo + 14)
\ 000036 F0 MOVX @DPTR,A
74 mbcnInfo.trackBeacon = FALSE;
\ 000037 90.... MOV DPTR,#(mbcnInfo + 5)
\ 00003A F0 MOVX @DPTR,A
75 mbcnInfo.findBeacon = FALSE;
\ 00003B 90.... MOV DPTR,#(mbcnInfo + 6)
\ 00003E F0 MOVX @DPTR,A
76 mbcnInfo.rxTaskNumber = NO_TASK;
\ 00003F 74FF MOV A,#-0x1
\ 000041 90.... MOV DPTR,#(mbcnInfo + 1)
\ 000044 F0 MOVX @DPTR,A
77 mbcnInfo.txTaskNumber = NO_TASK;
\ 000045 90.... MOV DPTR,#mbcnInfo
\ 000048 F0 MOVX @DPTR,A
78 mbcnInfo.pTxPacket = NULL;
\ 000049 90.... MOV DPTR,#(mbcnInfo + 2)
\ 00004C E4 CLR A
\ 00004D F0 MOVX @DPTR,A
\ 00004E A3 INC DPTR
\ 00004F F0 MOVX @DPTR,A
79 mscInfo.scanStatus = MSC_STATUS_FINISHED;
\ 000050 7401 MOV A,#0x1
\ 000052 90.... MOV DPTR,#(mscInfo + 10)
\ 000055 F0 MOVX @DPTR,A
80 mtxInfo.beaconTransmissionInProgress = FALSE;
\ 000056 E4 CLR A
\ 000057 90.... MOV DPTR,#(mtxInfo + 11)
\ 00005A F0 MOVX @DPTR,A
81
82 // Reset flags
83 RESET_MF();
\ 00005B 90.... MOV DPTR,#(macInfo + 6)
\ 00005E F0 MOVX @DPTR,A
84
85 // MAC command state
86 macInfo.state = MAC_STATE_DEFAULT;
\ 00005F 90.... MOV DPTR,#macInfo
\ 000062 F0 MOVX @DPTR,A
87
88 // Other state variables
89 mbcnInfo.lastSfSpec.battLifeExt = FALSE;
\ 000063 90.... MOV DPTR,#(mbcnInfo + 9)
\ 000066 F0 MOVX @DPTR,A
90 mbcnInfo.lastSfSpec.finalCap = USE_WHOLE_SUPERFRAME_FOR_CAP;
\ 000067 740F MOV A,#0xf
\ 000069 90.... MOV DPTR,#(mbcnInfo + 8)
\ 00006C F0 MOVX @DPTR,A
91
92 // Set all MAC/PHY PIB attributes to their default values.
93 if (setDefaultPIB) {
\ 00006D EE MOV A,R6
\ 00006E 7003 JNZ $+5
\ 000070 02.... LJMP ??mlmeResetRequest_0
94 ppib.phyCurrentChannel = 11;
\ 000073 740B MOV A,#0xb
\ 000075 90.... MOV DPTR,#ppib
\ 000078 F0 MOVX @DPTR,A
95 ppib.phyTransmitPower = OUTPUT_POWER_0DBM; //0dBm an +/- 1dBm tolerance
\ 000079 E4 CLR A
\ 00007A 90.... MOV DPTR,#(ppib + 1)
\ 00007D F0 MOVX @DPTR,A
96 ppib.phyCcaMode = 1;
\ 00007E 7401 MOV A,#0x1
\ 000080 90.... MOV DPTR,#(ppib + 2)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -