📄 node.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 16/Jan/2007 15:30:22 #
# 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\node.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\apps\node.c #
# List file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\List\node.lst #
# Object file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\Obj\node.r51 #
# #
# #
##############################################################################
E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engine\apps\node.c
1 /******************************************************************************
2 * *
3 * ********** *
4 * ************ *
5 * *** *** *
6 * *** ++ *** *
7 * *** + + *** CHIPCON *
8 * *** + *
9 * *** + + *** *
10 * *** ++ *** *
11 * *** *** *
12 * ************ *
13 * ********** *
14 * *
15 *******************************************************************************
16
17 Filename: node.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 #include "mac_headers.h"
\ In segment SFR_AN, at 0x95
\ unsigned char volatile __sfr ST0
\ ST0:
\ 000000 DS 1
\ In segment SFR_AN, at 0x96
\ unsigned char volatile __sfr ST1
\ ST1:
\ 000000 DS 1
\ In segment SFR_AN, at 0x97
\ unsigned char volatile __sfr ST2
\ ST2:
\ 000000 DS 1
31 #include "hal.h"
32 #include "node.h"
33 #include "stdarg.h"
34 #include "stdio.h"
35 #ifdef CC2430EB
36 #include "lcd.h"
37 #endif
38
39 NODE_TYPE nodeType;
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
40 BOOL parametersReceived = FALSE;
\ parametersReceived:
\ 000000 DS 1
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
41 BOOL blinkLed = FALSE;
\ blinkLed:
\ 000000 DS 1
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
42 UINT8 ledBlinkCounter;
\ ledBlinkCounter:
\ 000000 DS 1
43
44 // main variables
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
45 NODE_TYPE nodeType;
\ nodeType:
\ 000000 DS 1
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
46 UINT16_2 x, y;
\ x:
\ 000000 DS 2
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
\ y:
\ 000000 DS 2
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
47 UINT8 z;
\ z:
\ 000000 DS 1
48
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
49 MSG_BUFFER buffer;
\ buffer:
\ 000000 DS 145
50
51
52 // flags
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
53 BOOL msgReceived;
\ msgReceived:
\ 000000 DS 1
54
55
56 /******************************************************************************
57 *
58 * Function to handle received packets
59 *
60 * This function handle messages common for both Blind and reference nodes.
61 * Other messages will be handled in blindNode.c or refNode.c
62 ******************************************************************************/
\ In segment BANKED_CODE, align 1, keep-with-next
63 void NodeDataIndication(MCPS_DATA_INDICATION *pMDI){
\ NodeDataIndication:
\ 000000 74F6 MOV A,#-0xa
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 10
\ 000005 ; Auto size: 0
64 BYTE packetType;
65
66 packetType = pMDI->pMsdu[PACKET_INDEX_TYPE];
67
68 switch (packetType){
\ 000005 EA MOV A,R2
\ 000006 241A ADD A,#0x1a
\ 000008 F582 MOV DPL,A
\ 00000A EB MOV A,R3
\ 00000B 3400 ADDC A,#0x0
\ 00000D F583 MOV DPH,A
\ 00000F E0 MOVX A,@DPTR
\ 000010 12.... LCALL ?UC_SWITCH_SPARSE
\ `?<Jumptable for NodeDataIndication>_0`:
\ 000013 01 DB 1
\ 000014 11 DB 17
\ 000015 12 DB 18
\ 000016 .... DW ??NodeDataIndication_0
\ 000018 02 DB 2
\ 000019 20 DB 32
\ 00001A .... DW ??NodeDataIndication_1
\ 00001C 22 DB 34
\ 00001D .... DW ??NodeDataIndication_2
\ 00001F .... DW ??NodeDataIndication_3
69 case PACKET_TYPE_SETUP_PARAMETER:
70 if (nodeType == REF_NODE){
\ ??NodeDataIndication_1:
\ 000021 EA MOV A,R2
\ 000022 241B ADD A,#0x1b
\ 000024 FA MOV R2,A
\ 000025 EB MOV A,R3
\ 000026 3400 ADDC A,#0x0
\ 000028 FB MOV R3,A
\ 000029 90.... MOV DPTR,#nodeType
\ 00002C E0 MOVX A,@DPTR
\ 00002D 700A JNZ ??NodeDataIndication_4
71 SetupRefNode(&pMDI->pMsdu[PACKET_INDEX_NBR_OF_CONFIG_DATA]);
\ 00002F ; Setup parameters for call to function SetupRefNode
\ 00002F 90.... MOV DPTR,#(SetupRefNode & 0xffff)
\ 000032 74.. MOV A,#((SetupRefNode >> 16) & 0xff)
\ ??NodeDataIndication_5:
\ 000034 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000037 8040 SJMP ??NodeDataIndication_3
72 }
73 else{
74 SetupBlindNode(&pMDI->pMsdu[PACKET_INDEX_NBR_OF_CONFIG_DATA]);
\ ??NodeDataIndication_4:
\ 000039 ; Setup parameters for call to function SetupBlindNode
\ 000039 90.... MOV DPTR,#(SetupBlindNode & 0xffff)
\ 00003C 74.. MOV A,#((SetupBlindNode >> 16) & 0xff)
\ 00003E 80F4 SJMP ??NodeDataIndication_5
75 }
76 break;
77 case PACKET_TYPE_BLINK_LED:
78 blinkLed = TRUE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -