📄 mac_rx.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 06/Nov/2008 11:13:26 #
# 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:\解决\路由\Components\mac\low_level\srf03\mac_r #
# x.c #
# Command line = -f E:\解决\路由\Projects\zstack\Samples\SampleApp #
# \CC2430DB\..\..\..\Tools\CC2430DB\f8wCoord.cfg #
# (-DCPU32MHZ -DFORCE_MAC_NEAR -DROOT=__near_func #
# -DMAC_CFG_APP_PENDING_QUEUE=TRUE #
# -DZDO_COORDINATOR -DRTR_NWK -DBLINK_LEDS #
# "-DCONST=const __code" -DGENERIC=__generic) -f #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\..\..\..\Tools\CC2430DB\f8wConfig.cfg #
# (-DSECURE=0 -DDEFAULT_CHANLIST=0x00000800 #
# -DZDAPP_CONFIG_PAN_ID=0xFFFF #
# -DNWK_START_DELAY=100 -DEXTENDED_JOINING_RANDOM_M #
# ASK=0x007F -DBEACON_REQUEST_DELAY=100 #
# -DBEACON_REQ_DELAY_MASK=0x00FF #
# -DROUTE_EXPIRY_TIME=30 -DAPSC_ACK_WAIT_DURATION_P #
# OLLED=3000 -DNWK_INDIRECT_MSG_TIMEOUT=7 #
# -DMAX_RREQ_ENTRIES=10 -DAPSC_MAX_FRAME_RETRIES=3 #
# -DNWK_MAX_DATA_RETRIES=2 #
# -DMAX_POLL_FAILURE_RETRIES=2 -DMAX_BCAST=9 #
# -DAPS_MAX_GROUPS=16 -DMAX_RTG_ENTRIES=20 #
# -DNWK_MAX_BINDING_ENTRIES=10 #
# -DMAX_BINDING_CLUSTER_IDS=5 #
# "-DDEFAULT_KEY={0x01, 0x03, 0x05, 0x07, 0x09, #
# 0x0B, 0x0D, 0x0F, 0x00, 0x02, 0x04, 0x06, 0x08, #
# 0x0A, 0x0C, 0x0D}" -DRFD_RCVC_ALWAYS_ON=FALSE #
# -DPOLL_RATE=1000 -DQUEUED_POLL_RATE=100 #
# -DRESPONSE_POLL_RATE=100 -DREJOIN_POLL_RATE=440 #
# -DTOP_BOOT_PAGES=0) -I "D:\Program Files\IAR #
# Systems\Embedded Workbench 4.05 Evaluation #
# version\8051\inc\" -I "D:\Program Files\IAR #
# Systems\Embedded Workbench 4.05 Evaluation #
# version\8051\inc\clib\" -I #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\ -I E:\解决\路由\Projects\zstack\Samples\S #
# ampleApp\CC2430DB\..\Source\ -I #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\..\..\..\ZMain\TI2430DB\ -I #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\..\..\..\..\..\Components\mt\ -I #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\..\..\..\..\..\Components\hal\include\ -I #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\..\..\..\..\..\Components\hal\target\CC243 #
# 0DB\ -I E:\解决\路由\Projects\zstack\Samples\Samp #
# leApp\CC2430DB\..\..\..\..\..\Components\osal\mcu #
# \ccsoc\ -I E:\解决\路由\Projects\zstack\Samples\S #
# ampleApp\CC2430DB\..\..\..\..\..\Components\osal\ #
# include\ -I E:\解决\路由\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\stac #
# k\af\ -I E:\解决\路由\Projects\zstack\Samples\Sam #
# pleApp\CC2430DB\..\..\..\..\..\Components\stack\n #
# wk\ -I E:\解决\路由\Projects\zstack\Samples\Sampl #
# eApp\CC2430DB\..\..\..\..\..\Components\stack\sec #
# \ -I E:\解决\路由\Projects\zstack\Samples\SampleA #
# pp\CC2430DB\..\..\..\..\..\Components\stack\sys\ #
# -I E:\解决\路由\Projects\zstack\Samples\SampleApp #
# \CC2430DB\..\..\..\..\..\Components\stack\zdo\ #
# -I E:\解决\路由\Projects\zstack\Samples\SampleApp #
# \CC2430DB\..\..\..\..\..\Components\zmac\f8w\ -I #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\..\..\..\..\..\Components\zmac\ -I #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\..\..\..\..\..\Components\services\saddr\ #
# -I E:\解决\路由\Projects\zstack\Samples\SampleApp #
# \CC2430DB\..\..\..\..\..\Components\services\sdat #
# a\ -I E:\解决\路由\Projects\zstack\Samples\Sample #
# App\CC2430DB\..\..\..\..\..\Components\mac\includ #
# e\ -I E:\解决\路由\Projects\zstack\Samples\Sample #
# App\CC2430DB\..\..\..\..\..\Components\mac\high_l #
# evel\ -I E:\解决\路由\Projects\zstack\Samples\Sam #
# pleApp\CC2430DB\..\..\..\..\..\Components\mac\low #
# _level\srf03\ -I E:\解决\路由\Projects\zstack\Sam #
# ples\SampleApp\CC2430DB\..\..\..\..\..\Components #
# \mac\low_level\srf03\single_chip\ -D CC2430DB #
# -lC E:\解决\路由\Projects\zstack\Samples\SampleAp #
# p\CC2430DB\CoordinatorDB\List\ -lA #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\CoordinatorDB\List\ --diag_suppress #
# Pe001,Pa010 --diag_remark pe550 -o #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\CoordinatorDB\Obj\ -e #
# --require_prototypes -z9 --no_code_motion #
# --debug --core=plain --dptr=16,1 #
# --data_model=large --code_model=banked #
# --calling_convention=xdata_reentrant #
# --place_constants=data --nr_virtual_regs 8 #
# E:\解决\路由\Components\mac\low_level\srf03\mac_r #
# x.c #
# List file = E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\CoordinatorDB\List\mac_rx.lst #
# Object file = E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\CoordinatorDB\Obj\mac_rx.r51 #
# #
# #
##############################################################################
E:\解决\路由\Components\mac\low_level\srf03\mac_rx.c
1 /**************************************************************************************************
2 Filename:
3 Revised: $Date: 2007-03-28 18:21:19 -0700 (Wed, 28 Mar 2007) $
4 Revision: $Revision: 13888 $
5
6 Description:
7
8 Describe the purpose and contents of the file.
9
10 Copyright (c) 2006 by Texas Instruments, Inc.
11 All Rights Reserved. Permission to use, reproduce, copy, prepare
12 derivative works, modify, distribute, perform, display or sell this
13 software and/or its documentation for any purpose is prohibited
14 without the express written consent of Texas Instruments, Inc.
15 **************************************************************************************************/
16
17
18
19 /* ------------------------------------------------------------------------------------------------
20 * Includes
21 * ------------------------------------------------------------------------------------------------
22 */
23
24 /* hal */
25 #include "hal_defs.h"
26 #include "hal_types.h"
27
28 /* high-level */
29 #include "mac_high_level.h"
30 #include "mac_spec.h"
31
32 /* exported low-level */
33 #include "mac_low_level.h"
34
35 /* low-level specific */
36 #include "mac_rx.h"
37 #include "mac_tx.h"
38 #include "mac_rx_onoff.h"
39 #include "mac_radio.h"
40
41 /* target specific */
42 #include "mac_radio_defs.h"
\ In segment SFR_AN, at 0xe1
\ unsigned char volatile __sfr RFST
\ RFST:
\ 000000 DS 1
\ In segment SFR_AN, at 0xe9
\ unsigned char volatile __sfr RFIF
\ RFIF:
\ 000000 DS 1
43
44 /* debug */
45 #include "mac_assert.h"
46
47
48 /* ------------------------------------------------------------------------------------------------
49 * Defines
50 * ------------------------------------------------------------------------------------------------
51 */
52 #define MAX_PAYLOAD_BYTES_READ_PER_INTERRUPT 16 /* adjustable to tune performance */
53
54 /* receive FIFO bytes needed to start a valid receive (see function rxStartIsr for details) */
55 #define RX_THRESHOLD_START_LEN (MAC_PHY_PHR_LEN + \
56 MAC_FCF_FIELD_LEN + \
57 MAC_SEQ_NUM_FIELD_LEN + \
58 MAC_FCS_FIELD_LEN)
59
60 /* maximum size of addressing fields (note: command frame identifier processed as part of address) */
61 #define MAX_ADDR_FIELDS_LEN ((MAC_EXT_ADDR_FIELD_LEN + MAC_PAN_ID_FIELD_LEN) * 2)
62
63 /* addressing mode reserved value */
64 #define ADDR_MODE_RESERVERED 1
65
66 /* length of command frame identifier */
67 #define CMD_FRAME_ID_LEN 1
68
69 /* packet size mask is equal to the maximum value */
70 #define PHY_PACKET_SIZE_MASK 0x7F
71
72 /* value for promiscuous off, must not conflict with other mode variants from separate include files */
73 #define PROMISCUOUS_MODE_OFF 0x00
74
75 /* bit of proprietary FCS format that indicates if the CRC is OK */
76 #define PROPRIETARY_FCS_CRC_OK_BIT 0x80
77
78 /* dummy length value for unused entry in lookup table */
79 #define DUMMY_LEN 0xBE
80
81 /* value for rxThresholdIntState */
82 #define RX_THRESHOLD_INT_STATE_INACTIVE 0
83 #define RX_THRESHOLD_INT_STATE_ACTIVE 1
84 #define RX_THRESHOLD_INT_STATE_RESET 2
85
86
87 /* ------------------------------------------------------------------------------------------------
88 * Macros
89 * ------------------------------------------------------------------------------------------------
90 */
91 #define MEM_ALLOC(x) macDataRxMemAlloc(x)
92 #define MEM_FREE(x) macDataRxMemFree((uint8 *)x)
93
94 /*
95 * Macro for encoding frame control information into internal flags format.
96 * Parameter is pointer to the frame. NOTE! If either the internal frame
97 * format *or* the specification changes, this macro will need to be modified.
98 */
99 #define INTERNAL_FCF_FLAGS(p) ((((p)[1] >> 4) & 0x03) | ((p)[0] & 0x78))
100
101 /*
102 * The radio replaces the actual FCS with different information. This proprietary FCS is
103 * the same length as the original and includes:
104 * 1) the RSSI value
105 * 2) the average correlation value (used for LQI)
106 * 3) a CRC passed bit
107 *
108 * These macros decode the proprietary FCS. The macro parameter is a pointer to the two byte FCS.
109 */
110 #define PROPRIETARY_FCS_RSSI(p) ((int8)((p)[0]))
111 #define PROPRIETARY_FCS_CRC_OK(p) ((p)[1] & PROPRIETARY_FCS_CRC_OK_BIT)
112 #define PROPRIETARY_FCS_CORRELATION_VALUE(p) ((p)[1] & ~PROPRIETARY_FCS_CRC_OK_BIT)
113
114
115 /* ------------------------------------------------------------------------------------------------
116 * Global Variables
117 * ------------------------------------------------------------------------------------------------
118 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -