📄 hal_wait.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 16/Jan/2007 15:30:36 #
# 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\lib\hal\CC2430\hal_wait.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\lib\hal\CC2430\hal_wait.c #
# List file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\List\hal_wait.lst #
# Object file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\Obj\hal_wait.r51 #
# #
# #
##############################################################################
E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engine\lib\hal\CC2430\hal_wait.c
1 /*******************************************************************************************************
2 * *
3 * ********** *
4 * ************ *
5 * *** *** *
6 * *** +++ *** *
7 * *** + + *** *
8 * *** + CHIPCON HARDWARE ABSTRACTION LIBRARY FOR THE CC2430 *
9 * *** + + *** Idle Looping *
10 * *** +++ *** *
11 * *** *** *
12 * ************ *
13 * ********** *
14 * *
15 *******************************************************************************************************
16 * Copyright Chipcon AS, 2005 *
17 *******************************************************************************************************
18 * The Chipcon Hardware Abstraction Library is a collection of functions, macros and constants, which *
19 * can be used to ease access to the hardware on the CC2430 and the target microcontroller. *
20 * *
21 * This file contains a function that implements idle looping, with a resolution of 1 msec. *
22 * *
23 * EXAMPLE OF USAGE: *
24 * // Wait for at least 50 milliseconds *
25 * halWait(50000); *
26 *******************************************************************************************************
27 *******************************************************************************************************/
28 #include <mac_headers.h>
29
30
31
32
33 //-------------------------------------------------------------------------------------------------------
34 // void halMacWait(UINT16 timeout)
35 //
36 // DESCRIPTION:
37 // Runs an idle loop for [timeout] microseconds.
38 // Note: The time spent in interruptions will be added to the timeout!
39 //
40 // ARGUMENTS:
41 // UINT16 timeout
42 // The timeout in microseconds
43 //-------------------------------------------------------------------------------------------------------
\ In segment NEAR_CODE, align 1, keep-with-next
44 ROOT void halMacWait(UINT16 timeout) {
\ halMacWait:
\ 000000 ; Saved register size: 0
\ 000000 ; Auto size: 0
\ 000000 8008 SJMP ??halMacWait_0
45 while (timeout--) {
46 asm("NOP");
\ ??halMacWait_1:
\ 000002 00 NOP
47 asm("NOP");
\ 000003 00 NOP
48 asm("NOP");
\ 000004 00 NOP
49 asm("NOP");
\ 000005 00 NOP
50 asm("NOP");
\ 000006 00 NOP
51 asm("NOP");
\ 000007 00 NOP
52 asm("NOP");
\ 000008 00 NOP
53 asm("NOP");
\ 000009 00 NOP
54 }
\ ??halMacWait_0:
\ 00000A EA MOV A,R2
\ 00000B F8 MOV R0,A
\ 00000C EB MOV A,R3
\ 00000D F9 MOV R1,A
\ 00000E 74FF MOV A,#-0x1
\ 000010 28 ADD A,R0
\ 000011 1A DEC R2
\ 000012 74FF MOV A,#-0x1
\ 000014 39 ADDC A,R1
\ 000015 FB MOV R3,A
\ 000016 E8 MOV A,R0
\ 000017 7001 JNZ ??halMacWait_2
\ 000019 E9 MOV A,R1
\ ??halMacWait_2:
\ 00001A 70E6 JNZ ??halMacWait_1
55 }
\ 00001C 22 RET
56
57
Maximum stack usage in bytes:
Function ISTACK PSTACK XSTACK
-------- ------ ------ ------
halMacWait 0 0 0
Segment part sizes:
Function/Label Bytes
-------------- -----
halMacWait 29
29 bytes in segment NEAR_CODE
29 bytes of CODE memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -