📄 mac_loc.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 16/Jan/2007 15:33:33 #
# 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\apps\mac_loc.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 #
# USE_LED -D SOC_BB -lCN "E:\公司产品资料\Zigbee\cc #
# 2431\cc2431定位\LOC_Engine\Test\mac\mac_loc\SOC_B #
# B, hex\List\" -lA "E:\公司产品资料\Zigbee\cc2431\ #
# cc2431定位\LOC_Engine\Test\mac\mac_loc\SOC_BB, #
# hex\List\" -o "E:\公司产品资料\Zigbee\cc2431\cc24 #
# 31定位\LOC_Engine\Test\mac\mac_loc\SOC_BB, #
# hex\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\apps\mac_loc.c #
# List file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\SOC_BB, hex\List\mac_loc.lst #
# Object file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\SOC_BB, hex\Obj\mac_loc.r51 #
# #
# #
##############################################################################
E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engine\apps\mac_loc.c
1 /******************************************************************************
2 * *
3 * ********** *
4 * ************ *
5 * *** *** *
6 * *** ++ *** *
7 * *** + + *** CHIPCON *
8 * *** + *
9 * *** + + *** *
10 * *** ++ *** *
11 * *** *** *
12 * ************ *
13 * ********** *
14 * *
15 *******************************************************************************
16
17 Filename: mac_loc.c
18 Target: cc2431/ cc2430
19 Author: KJA
20 Revised: 14/02-2006
21 Revision: 1.0
22
23 Description:
24 This file implements all function which is common for both Blind and Reference
25 Node.
26
27 ******************************************************************************/
28
29
30 /******************************************************************************
31 *******************************************************************************
32 ** CONFIDENTIAL **
33 ** The use of this file is restricted by the signed MAC software license **
34 ** agreement. **
35 ** **
36 ** Copyright Chipcon AS, 2006 **
37 *******************************************************************************
38 ******************************************************************************/
39
40
41
42 #include <mac_headers.h>
\ In segment SFR_AN, at 0x8f
\ unsigned char volatile __sfr P0INP
\ P0INP:
\ 000000 DS 1
\ In segment SFR_AN, at 0xb4
\ unsigned char volatile __sfr ADCCON1
\ ADCCON1:
\ 000000 DS 1
\ In segment SFR_AN, at 0xbd
\ unsigned char volatile __sfr RNDH
\ RNDH:
\ 000000 DS 1
\ In segment SFR_AN, at 0xc7
\ unsigned char volatile __sfr MEMCTR
\ MEMCTR:
\ 000000 DS 1
\ In segment SFR_AN, at 0xf4
\ unsigned char volatile __sfr P1SEL
\ P1SEL:
\ 000000 DS 1
\ In segment SFR_AN, at 0xf6
\ unsigned char volatile __sfr P1INP
\ P1INP:
\ 000000 DS 1
\ In segment SFR_AN, at 0xf7
\ unsigned char volatile __sfr P2INP
\ P2INP:
\ 000000 DS 1
\ In segment SFR_AN, at 0xfd
\ unsigned char volatile __sfr P0DIR
\ P0DIR:
\ 000000 DS 1
\ In segment SFR_AN, at 0xfe
\ unsigned char volatile __sfr P1DIR
\ P1DIR:
\ 000000 DS 1
43 #include "hal.h"
44 #include "node.h"
45 #ifdef CC2430EB
46 #include "lcd.h"
47 #endif
48
49 #define INVALID_STATUS 0x80
50
51 // Addresses
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
52 WORD myShortAddr; // The short address
\ myShortAddr:
\ 000000 DS 2
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
53 ADDRESS extAddr; // The extended address
\ extAddr:
\ 000000 DS 8
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
54 WORD panId; // The PAN ID
\ panId:
\ 000000 DS 2
55
56
57 // hold node type, blind node or reference node
58 extern NODE_TYPE nodeType;
59
60 // The payload of the packets transmitted by the device
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
61 BYTE pBuffer[128];
\ pBuffer:
\ 000000 DS 128
62
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
63 BYTE msduHandle, txOptions;
\ msduHandle:
\ 000000 DS 1
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
\ txOptions:
\ 000000 DS 1
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
64 MAC_ENUM dataConfirmStatus, pollConfirmStatus;
\ dataConfirmStatus:
\ 000000 DS 1
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
\ pollConfirmStatus:
\ 000000 DS 1
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
65 BYTE dataConfirmMsduHandle;
\ dataConfirmMsduHandle:
\ 000000 DS 1
66
67
68 // Prototypes
69 ROOT void FetchIeeeAddress(unsigned char *ieeeAddress);
70 static void StartDevice(void);
71 static void WaitForDeviceModeSelection (NODE_TYPE *deviceMode);
72 static void WaitForPacketTransmission (BYTE msduHandle);
73
74 #ifdef SOC_BB
75 void RunHWTest(void);
76 #endif
77
78
79 /******************************************************************************
80 *
81 * Startup sequence and main loop.
82 ******************************************************************************/
\ In segment BANKED_CODE, align 1, keep-with-next
83 void main(void)
\ main:
84 {
\ 000000 ; Auto size: 0
85 BOOL resetCoordinates;
86
87 INIT_BUTTON();
\ 000000 53FDFD ANL 0xfd,#0xfd
88 #if defined CC2430EB
89 INIT_JOYSTICK();
90 initLcd();
91 lcdUpdate("Chipcon","Location Engine");
92 #elif defined CC2430DB
93 INIT_JOYSTICK();
94 ENABLE_DB_PERIPHERALS();
95 #endif
96
97 #ifdef USE_LED
98 INIT_LED1();
\ 000003 D290 SETB 0x90.0
\ 000005 43FE01 ORL 0xfe,#0x1
\ 000008 53F4FE ANL 0xf4,#0xfe
99 #if defined CC2430EB
100 INIT_LED3();
101 #elif defined CC2430DB
102 INIT_LED2();
103 #endif
104 #endif
105
106
107 #ifdef SOC_BB
108 RunHWTest();
\ 00000B ; Setup parameters for call to function RunHWTest
\ 00000B 90.... MOV DPTR,#(RunHWTest & 0xffff)
\ 00000E 74.. MOV A,#((RunHWTest >> 16) & 0xff)
\ 000010 12.... LCALL ?BCALL ; Banked call to: DPTR()
109 #endif
110
111 // Setup MAC framework
112 MAC_INIT();
\ 000013 C2AF CLR 0xa8.7
\ 000015 E4 CLR A
\ 000016 90.... MOV DPTR,#(mpib + 8)
\ 000019 F0 MOVX @DPTR,A
\ 00001A 90.... MOV DPTR,#(mpib + 31)
\ 00001D F0 MOVX @DPTR,A
\ 00001E ; Setup parameters for call to function mschInit
\ 00001E 12.... LCALL mschInit & 0xFFFF
\ 000021 ; Setup parameters for call to function mtimInit
\ 000021 7900 MOV R1,#0x0
\ 000023 12.... LCALL mtimInit & 0xFFFF
\ 000026 D2BA SETB 0xb8.2
\ 000028 E4 CLR A
\ 000029 90.... MOV DPTR,#macInfo
\ 00002C F0 MOVX @DPTR,A
\ 00002D 7402 MOV A,#0x2
\ 00002F 90.... MOV DPTR,#mpmInfo
\ 000032 F0 MOVX @DPTR,A
\ 000033 90.... MOV DPTR,#(mpmInfo + 1)
\ 000036 F0 MOVX @DPTR,A
\ 000037 7401 MOV A,#0x1
\ 000039 90.... MOV DPTR,#(mrxInfo + 15)
\ 00003C F0 MOVX @DPTR,A
\ 00003D ; Setup parameters for call to function InitializeCommonStorage
\ 00003D 12.... LCALL InitializeCommonStorage & 0xFFFF
\ 000040 ; Setup parameters for call to function InitializeDma
\ 000040 12.... LCALL InitializeDma & 0xFFFF
\ 000043 ; Setup parameters for call to function InitializeRfInterrupts
\ 000043 12.... LCALL InitializeRfInterrupts & 0xFFFF
\ 000046 D2AF SETB 0xa8.7
113
114 // Power up
115 mpmSetRequest(MPM_CC2430_ON);
\ 000048 ; Setup parameters for call to function mpmSetRequest
\ 000048 7900 MOV R1,#0x0
\ 00004A 12.... LCALL mpmSetRequest & 0xFFFF
116 while (mpmGetState() != MPM_CC2430_ON);
\ ??main_0:
\ 00004D ; Setup parameters for call to function mpmGetState
\ 00004D 12.... LCALL mpmGetState & 0xFFFF
\ 000050 E9 MOV A,R1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -