📄 hal_sleep.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 06/Nov/2008 11:13:21 #
# 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:\解决\路由\Components\hal\target\CC2430DB\hal_s #
# leep.c #
# Command line = -f E:\解决\路由\Projects\zstack\Samples\SampleApp #
# \CC2430DB\..\..\..\Tools\CC2430DB\f8wCoord.cfg #
# (-DCPU32MHZ -DFORCE_MAC_NEAR -DROOT=__near_func #
# -DMAC_CFG_APP_PENDING_QUEUE=TRUE #
# -DZDO_COORDINATOR -DRTR_NWK -DBLINK_LEDS #
# "-DCONST=const __code" -DGENERIC=__generic) -f #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\..\..\..\Tools\CC2430DB\f8wConfig.cfg #
# (-DSECURE=0 -DDEFAULT_CHANLIST=0x00000800 #
# -DZDAPP_CONFIG_PAN_ID=0xFFFF #
# -DNWK_START_DELAY=100 -DEXTENDED_JOINING_RANDOM_M #
# ASK=0x007F -DBEACON_REQUEST_DELAY=100 #
# -DBEACON_REQ_DELAY_MASK=0x00FF #
# -DROUTE_EXPIRY_TIME=30 -DAPSC_ACK_WAIT_DURATION_P #
# OLLED=3000 -DNWK_INDIRECT_MSG_TIMEOUT=7 #
# -DMAX_RREQ_ENTRIES=10 -DAPSC_MAX_FRAME_RETRIES=3 #
# -DNWK_MAX_DATA_RETRIES=2 #
# -DMAX_POLL_FAILURE_RETRIES=2 -DMAX_BCAST=9 #
# -DAPS_MAX_GROUPS=16 -DMAX_RTG_ENTRIES=20 #
# -DNWK_MAX_BINDING_ENTRIES=10 #
# -DMAX_BINDING_CLUSTER_IDS=5 #
# "-DDEFAULT_KEY={0x01, 0x03, 0x05, 0x07, 0x09, #
# 0x0B, 0x0D, 0x0F, 0x00, 0x02, 0x04, 0x06, 0x08, #
# 0x0A, 0x0C, 0x0D}" -DRFD_RCVC_ALWAYS_ON=FALSE #
# -DPOLL_RATE=1000 -DQUEUED_POLL_RATE=100 #
# -DRESPONSE_POLL_RATE=100 -DREJOIN_POLL_RATE=440 #
# -DTOP_BOOT_PAGES=0) -I "D:\Program Files\IAR #
# Systems\Embedded Workbench 4.05 Evaluation #
# version\8051\inc\" -I "D:\Program Files\IAR #
# Systems\Embedded Workbench 4.05 Evaluation #
# version\8051\inc\clib\" -I #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\ -I E:\解决\路由\Projects\zstack\Samples\S #
# ampleApp\CC2430DB\..\Source\ -I #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\..\..\..\ZMain\TI2430DB\ -I #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\..\..\..\..\..\Components\mt\ -I #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\..\..\..\..\..\Components\hal\include\ -I #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\..\..\..\..\..\Components\hal\target\CC243 #
# 0DB\ -I E:\解决\路由\Projects\zstack\Samples\Samp #
# leApp\CC2430DB\..\..\..\..\..\Components\osal\mcu #
# \ccsoc\ -I E:\解决\路由\Projects\zstack\Samples\S #
# ampleApp\CC2430DB\..\..\..\..\..\Components\osal\ #
# include\ -I E:\解决\路由\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\stac #
# k\af\ -I E:\解决\路由\Projects\zstack\Samples\Sam #
# pleApp\CC2430DB\..\..\..\..\..\Components\stack\n #
# wk\ -I E:\解决\路由\Projects\zstack\Samples\Sampl #
# eApp\CC2430DB\..\..\..\..\..\Components\stack\sec #
# \ -I E:\解决\路由\Projects\zstack\Samples\SampleA #
# pp\CC2430DB\..\..\..\..\..\Components\stack\sys\ #
# -I E:\解决\路由\Projects\zstack\Samples\SampleApp #
# \CC2430DB\..\..\..\..\..\Components\stack\zdo\ #
# -I E:\解决\路由\Projects\zstack\Samples\SampleApp #
# \CC2430DB\..\..\..\..\..\Components\zmac\f8w\ -I #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\..\..\..\..\..\Components\zmac\ -I #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\..\..\..\..\..\Components\services\saddr\ #
# -I E:\解决\路由\Projects\zstack\Samples\SampleApp #
# \CC2430DB\..\..\..\..\..\Components\services\sdat #
# a\ -I E:\解决\路由\Projects\zstack\Samples\Sample #
# App\CC2430DB\..\..\..\..\..\Components\mac\includ #
# e\ -I E:\解决\路由\Projects\zstack\Samples\Sample #
# App\CC2430DB\..\..\..\..\..\Components\mac\high_l #
# evel\ -I E:\解决\路由\Projects\zstack\Samples\Sam #
# pleApp\CC2430DB\..\..\..\..\..\Components\mac\low #
# _level\srf03\ -I E:\解决\路由\Projects\zstack\Sam #
# ples\SampleApp\CC2430DB\..\..\..\..\..\Components #
# \mac\low_level\srf03\single_chip\ -D CC2430DB #
# -lC E:\解决\路由\Projects\zstack\Samples\SampleAp #
# p\CC2430DB\CoordinatorDB\List\ -lA #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\CoordinatorDB\List\ --diag_suppress #
# Pe001,Pa010 --diag_remark pe550 -o #
# E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\CoordinatorDB\Obj\ -e #
# --require_prototypes -z9 --no_code_motion #
# --debug --core=plain --dptr=16,1 #
# --data_model=large --code_model=banked #
# --calling_convention=xdata_reentrant #
# --place_constants=data --nr_virtual_regs 8 #
# E:\解决\路由\Components\hal\target\CC2430DB\hal_s #
# leep.c #
# List file = E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\CoordinatorDB\List\hal_sleep.lst #
# Object file = E:\解决\路由\Projects\zstack\Samples\SampleApp\CC #
# 2430DB\CoordinatorDB\Obj\hal_sleep.r51 #
# #
# #
##############################################################################
E:\解决\路由\Components\hal\target\CC2430DB\hal_sleep.c
1 /**************************************************************************************************
2 Filename: hal_sleep.c
3 Revised: $Date: 2007-05-15 15:37:47 -0700 (Tue, 15 May 2007) $
4 Revision: $Revision: 14304 $
5
6 Description:
7
8 This module contains the HAL power management procedures for the CC2430.
9
10
11 Copyright (c) 2006 by Texas Instruments, Inc.
12 All Rights Reserved. Permission to use, reproduce, copy, prepare
13 derivative works, modify, distribute, perform, display or sell this
14 software and/or its documentation for any purpose is prohibited
15 without the express written consent of Texas Instruments, Inc.
16 **************************************************************************************************/
17
18 /* ------------------------------------------------------------------------------------------------
19 * Includes
20 * ------------------------------------------------------------------------------------------------
21 */
22 #include "hal_types.h"
23 #include "hal_mcu.h"
\ In segment SFR_AN, at 0x87
\ unsigned char volatile __sfr PCON
\ PCON:
\ 000000 DS 1
\ In segment SFR_AN, at 0x8f
\ unsigned char volatile __sfr P0INP
\ P0INP:
\ 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 0xbe
\ unsigned char volatile __sfr SLEEP
\ SLEEP:
\ 000000 DS 1
\ In segment SFR_AN, at 0xc6
\ unsigned char volatile __sfr CLKCON
\ CLKCON:
\ 000000 DS 1
\ In segment SFR_AN, at 0xfd
\ unsigned char volatile __sfr P0DIR
\ P0DIR:
\ 000000 DS 1
24 #include "hal_board.h"
25 #include "hal_sleep.h"
26 #include "hal_led.h"
27 #include "hal_key.h"
28 #include "mac_api.h"
29 #include "OSAL.h"
30 #include "OSAL_Timers.h"
31 #include "OSAL_Tasks.h"
32 #include "OSAL_PwrMgr.h"
33 #include "OnBoard.h"
34 #include "hal_drivers.h"
35
36 #if !defined (RTR_NWK) && defined (NWK_AUTO_POLL)
37 #include "nwk_globals.h"
38 #include "ZGlobals.h"
39 #endif
40
41 /* ------------------------------------------------------------------------------------------------
42 * Macros
43 * ------------------------------------------------------------------------------------------------
44 */
45
46 /* 32 kHz clock source select in CLKCON */
47 #if !defined (OSC32K_CRYSTAL_INSTALLED) || (defined (OSC32K_CRYSTAL_INSTALLED) && (OSC32K_CRYSTAL_INSTALLED == TRUE))
48 #define OSC_32KHZ 0x00 /* external 32 KHz xosc */
49 #else
50 #define OSC_32KHZ 0x80 /* internal 32 KHz rcosc */
51 #endif
52
53 /* POWER CONSERVATION DEFINITIONS
54 * Sleep mode H/W definitions (enabled with POWER_SAVING compile option)
55 */
56 #define CC2430_PM0 0 /* PM0, Clock oscillators on, voltage regulator on */
57 #define CC2430_PM1 1 /* PM1, 32.768 kHz oscillators on, voltage regulator on */
58 #define CC2430_PM2 2 /* PM2, 32.768 kHz oscillators on, voltage regulator off */
59 #define CC2430_PM3 3 /* PM3, All clock oscillators off, voltage regulator off */
60
61 /* HAL power management mode is set according to the power management state. The default
62 * setting is HAL_SLEEP_OFF. The actual value is tailored to different HW platform. Both
63 * HAL_SLEEP_TIMER and HAL_SLEEP_DEEP selections will:
64 * 1. turn off the system clock, and
65 * 2. halt the MCU.
66 * HAL_SLEEP_TIMER can be woken up by sleep timer interrupt, I/O interrupt and reset.
67 * HAL_SLEEP_DEEP can be woken up by I/O interrupt and reset.
68 */
69 #define HAL_SLEEP_OFF CC2430_PM0
70 #define HAL_SLEEP_TIMER CC2430_PM2
71 #define HAL_SLEEP_DEEP CC2430_PM3
72
73 /* MAX_SLEEP_TIME calculation:
74 * Sleep timer maximum duration = 0xFFFF7F / 32768 Hz = 511.996 seconds
75 * Round it to 510 seconds or 510000 ms
76 */
77 #define MAX_SLEEP_TIME 510000 /* maximum time to sleep allowed by ST */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -