📄 halstack.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 11/Dec/2008 13:41:51 #
# Copyright 2004-2006 IAR Systems. All rights reserved. #
# #
# Core = plain #
# Code model = near #
# Data model = large #
# Calling convention = xdata reentrant #
# Constant location = data #
# Dptr setup = 1,16 #
# Source file = D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\src\halStack.c #
# Command line = -lC D:\zigbee\演示程序\简化协议的无线收发演示\dem #
# o_pro\Debug\List\ -lA D:\zigbee\演示程序\简化协议 #
# 的无线收发演示\demo_pro\Debug\List\ -o #
# D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\Debug\Obj\ -e -z2 --no_cse --no_unroll #
# --no_inline --no_code_motion --no_tbaa --debug #
# --core=plain --dptr=16,1 --data_model=large #
# --code_model=near --calling_convention=xdata_reen #
# trant --place_constants=data --nr_virtual_regs 8 #
# -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\INC\CLIB\" #
# D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\src\halStack.c #
# List file = D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\Debug\List\halStack.lst #
# Object file = D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\Debug\Obj\halStack.r51 #
# #
# #
##############################################################################
D:\zigbee\演示程序\简化协议的无线收发演示\demo_pro\src\halStack.c
1 /*
2 V0.1 Initial Release 10/July/2006 RBR
3
4 */
5
6 #include "hal.h"
\ In segment SFR_AN, at 0x86
\ unsigned char volatile __sfr U0CSR
\ U0CSR:
\ 000000 DS 1
\ In segment SFR_AN, at 0x87
\ unsigned char volatile __sfr PCON
\ PCON:
\ 000000 DS 1
\ In segment SFR_AN, at 0x91
\ unsigned char volatile __sfr RFIM
\ RFIM:
\ 000000 DS 1
\ 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
\ In segment SFR_AN, at 0x9a
\ unsigned char volatile __sfr IEN2
\ IEN2:
\ 000000 DS 1
\ In segment SFR_AN, at 0x9b
\ unsigned char volatile __sfr S1CON
\ S1CON:
\ 000000 DS 1
\ 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
\ In segment SFR_AN, at 0xa4
\ unsigned char volatile __sfr T2CAPLPL
\ T2CAPLPL:
\ 000000 DS 1
\ In segment SFR_AN, at 0xa5
\ unsigned char volatile __sfr T2CAPHPH
\ T2CAPHPH:
\ 000000 DS 1
\ In segment SFR_AN, at 0xb4
\ unsigned char volatile __sfr ADCCON1
\ ADCCON1:
\ 000000 DS 1
\ In segment SFR_AN, at 0xb6
\ unsigned char volatile __sfr ADCCON3
\ ADCCON3:
\ 000000 DS 1
\ In segment SFR_AN, at 0xba
\ unsigned char volatile __sfr ADCL
\ ADCL:
\ 000000 DS 1
\ In segment SFR_AN, at 0xbb
\ unsigned char volatile __sfr ADCH
\ ADCH:
\ 000000 DS 1
\ In segment SFR_AN, at 0xbe
\ unsigned char volatile __sfr SLEEP
\ SLEEP:
\ 000000 DS 1
\ In segment SFR_AN, at 0xc1
\ unsigned char volatile __sfr U0DBUF
\ U0DBUF:
\ 000000 DS 1
\ In segment SFR_AN, at 0xc2
\ unsigned char volatile __sfr U0BAUD
\ U0BAUD:
\ 000000 DS 1
\ In segment SFR_AN, at 0xc3
\ unsigned char volatile __sfr T2CNF
\ T2CNF:
\ 000000 DS 1
\ In segment SFR_AN, at 0xc4
\ unsigned char volatile __sfr U0UCR
\ U0UCR:
\ 000000 DS 1
\ In segment SFR_AN, at 0xc5
\ unsigned char volatile __sfr U0GCR
\ U0GCR:
\ 000000 DS 1
\ In segment SFR_AN, at 0xc6
\ unsigned char volatile __sfr CLKCON
\ CLKCON:
\ 000000 DS 1
\ In segment SFR_AN, at 0xc7
\ unsigned char volatile __sfr MEMCTR
\ MEMCTR:
\ 000000 DS 1
\ In segment SFR_AN, at 0xd9
\ unsigned char volatile __sfr RFD
\ RFD:
\ 000000 DS 1
\ 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
\ In segment SFR_AN, at 0xf1
\ unsigned char volatile __sfr PERCFG
\ PERCFG:
\ 000000 DS 1
\ In segment SFR_AN, at 0xf2
\ unsigned char volatile __sfr ADCCFG
\ ADCCFG:
\ 000000 DS 1
\ In segment SFR_AN, at 0xf3
\ unsigned char volatile __sfr P0SEL
\ P0SEL:
\ 000000 DS 1
\ In segment SFR_AN, at 0xf4
\ unsigned char volatile __sfr P1SEL
\ P1SEL:
\ 000000 DS 1
7 #include "halstack.h"
8 #include "console.h"
9 #include "ieee_lrwpan_defs.h"
10 #include "phy.h"
11 #include "mac.h"
12
13
14
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
15 RADIO_FLAGS local_radio_flags;
\ local_radio_flags:
\ 000000 DS 2
16
17
18
19
20
21 //halInit contains both processor specific initialization
\ In segment NEAR_CODE, align 1, keep-with-next
22 void halInit(void)
\ halInit:
23 {
\ 000000 C082 PUSH DPL
\ 000002 C083 PUSH DPH
\ 000004 ; Saved register size: 2
\ 000004 ; Auto size: 0
24 //Set clock source
25 local_radio_flags.val = 0;
\ 000004 7400 MOV A,#0x0
\ 000006 90.... MOV DPTR,#local_radio_flags
\ 000009 F0 MOVX @DPTR,A
26 SET_MAIN_CLOCK_SOURCE(CRYSTAL);
\ 00000A 53BEFB ANL 0xbe,#0xfb
\ ??halInit_0:
\ 00000D E5BE MOV A,0xbe
\ 00000F A2E6 MOV C,0xE0 /* A */.6
\ 000011 50FA JNC ??halInit_0
\ 000013 00 NOP
\ 000014 53C6B8 ANL 0xc6,#0xb8
\ 000017 E5C6 MOV A,0xc6
\ 000019 43BE04 ORL 0xbe,#0x4
27 halInitUart();
\ 00001C ; Setup parameters for call to function halInitUart
\ 00001C 12.... LCALL halInitUart
28 halSetBaud(LRWPAN_DEFAULT_BAUDRATE);
\ 00001F E5F1 MOV A,0xf1
\ 000021 A2E0 MOV C,0xE0 /* A */.0
\ 000023 5007 JNC ??halInit_1
\ 000025 43F430 ORL 0xf4,#0x30
\ 000028 E5F4 MOV A,0xf4
\ 00002A 8005 SJMP ??halInit_2
\ ??halInit_1:
\ 00002C 43F30C ORL 0xf3,#0xc
\ 00002F E5F3 MOV A,0xf3
\ ??halInit_2:
\ 000031 7407 MOV A,#0x7
\ 000033 55C6 ANL A,0xc6
\ 000035 240A ADD A,#0xa
\ 000037 F5C5 MOV 0xc5,A
\ 000039 75C2D8 MOV 0xc2,#-0x28
\ 00003C 438680 ORL 0x86,#0x80
\ 00003F 43C482 ORL 0xc4,#0x82
\ 000042 E5C4 MOV A,0xc4
29 halInitMACTimer();
\ 000044 ; Setup parameters for call to function halInitMACTimer
\ 000044 12.... LCALL halInitMACTimer
30 }
\ 000047 D083 POP DPH
\ 000049 D082 POP DPL
\ 00004B 22 RET
31
32
33 //initialize UART to be used by
\ In segment NEAR_CODE, align 1, keep-with-next
34 void halInitUart(void) {
\ halInitUart:
\ 000000 ; Saved register size: 0
\ 000000 ; Auto size: 0
35 // Setup for UART0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -