📄 node.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 16/Jan/2007 15:33:58 #
# 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 #
# 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\node.c #
# List file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\SOC_BB, hex\List\node.lst #
# Object file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\SOC_BB, hex\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;
\ ??NodeDataIndication_2:
\ 000040 7401 MOV A,#0x1
\ 000042 90.... MOV DPTR,#blinkLed
\ 000045 8031 SJMP ??NodeDataIndication_6
79 break;
80 // case PACKET_TYPE_BLIND_NODE_POSITION:
81 case PACKET_TYPE_BLIND_NODE_REQ_SIGNAL: /* only sent to ref node */
82 case PACKET_TYPE_REF_NODE_POSITION: /* only sent to blind node */
83 if(BUFFER_EMPTY()){
\ ??NodeDataIndication_0:
\ 000047 90.... MOV DPTR,#buffer
\ 00004A E0 MOVX A,@DPTR
\ 00004B 702C JNZ ??NodeDataIndication_3
84 msgReceived = TRUE;
\ 00004D 7401 MOV A,#0x1
\ 00004F 90.... MOV DPTR,#msgReceived
\ 000052 F0 MOVX @DPTR,A
85 memcpy(&buffer.b, pMDI, sizeof(MCPS_DATA_INDICATION));
\ 000053 ; Setup parameters for call to function memcpy
\ 000053 75..90 MOV ?V0 + 0,#-0x70
\ 000056 75..00 MOV ?V0 + 1,#0x0
\ 000059 78.. MOV R0,#?V0 + 0
\ 00005B 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 00005E EA MOV A,R2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -