📄 osal_nv.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 08/Mar/2009 09:13:26 #
# 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 = C:\Texas Instruments\ZStack-1.4.2-1.1.0\Component #
# s\osal\mcu\ccsoc\OSAL_Nv.c #
# Command line = -f "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Proje #
# cts\zstack\Samples\GenericApp\CC2430DB\..\..\..\T #
# ools\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 #
# "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects #
# \zstack\Samples\GenericApp\CC2430DB\..\..\..\Tool #
# s\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 "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\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\Source\" -I #
# "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects #
# \zstack\Samples\GenericApp\CC2430DB\..\..\..\ZMai #
# n\TI2430DB\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\mt\" -I "C:\Texas Instruments\ZStack-1.4.2-1.1 #
# .0\Projects\zstack\Samples\GenericApp\CC2430DB\.. #
# \..\..\..\..\Components\hal\include\" -I #
# "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects #
# \zstack\Samples\GenericApp\CC2430DB\..\..\..\..\. #
# .\Components\hal\target\CC2430DB\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\osal\mcu\ccsoc\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\osal\include\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\stack\af\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\stack\nwk\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\stack\sec\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\stack\sys\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\stack\zdo\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\zmac\f8w\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\zmac\" -I "C:\Texas Instruments\ZStack-1.4.2-1 #
# .1.0\Projects\zstack\Samples\GenericApp\CC2430DB\ #
# ..\..\..\..\..\Components\services\saddr\" -I #
# "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects #
# \zstack\Samples\GenericApp\CC2430DB\..\..\..\..\. #
# .\Components\services\sdata\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\mac\include\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\mac\high_level\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\mac\low_level\srf03\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\mac\low_level\srf03\single_chip\" -D CC2430DB #
# -D COORDINATOR_BINDING -D xZTOOL_P2 -D xMT_TASK #
# -D xMT_ZDO_FUNC -D xLCD_SUPPORTED=DEBUG -lC #
# "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects #
# \zstack\Samples\GenericApp\CC2430DB\CoordinatorDB #
# \List\" -lA "C:\Texas Instruments\ZStack-1.4.2-1. #
# 1.0\Projects\zstack\Samples\GenericApp\CC2430DB\C #
# oordinatorDB\List\" --diag_suppress Pe001,Pa010 #
# --diag_remark pe550 -o "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\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 #
# "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Componen #
# ts\osal\mcu\ccsoc\OSAL_Nv.c" #
# List file = C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects\ #
# zstack\Samples\GenericApp\CC2430DB\CoordinatorDB\ #
# List\OSAL_Nv.lst #
# Object file = C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects\ #
# zstack\Samples\GenericApp\CC2430DB\CoordinatorDB\ #
# Obj\OSAL_Nv.r51 #
# #
# #
##############################################################################
C:\Texas Instruments\ZStack-1.4.2-1.1.0\Components\osal\mcu\ccsoc\OSAL_Nv.c
1 /*********************************************************************
2 Filename: OSAL_Nv.c
3 Revised: $Date: 2007-04-11 14:41:47 -0700 (Wed, 11 Apr 2007) $
4 Revision: $Revision: 13998 $
5
6 Description: This module contains the OSAL non-volatile memory functions.
7
8 Notes: A trick buried deep in initPage() requires that the MSB of the NV
9 Item Id be reserved for use by this module.
10
11 Copyright (c) 2007 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 "ZComDef.h"
23 #include "hal_adc.h"
\ In segment SFR_AN, at 0xab
\ unsigned char volatile __sfr FWT
\ FWT:
\ 000000 DS 1
\ In segment SFR_AN, at 0xac
\ unsigned char volatile __sfr FADDRL
\ FADDRL:
\ 000000 DS 1
\ In segment SFR_AN, at 0xad
\ unsigned char volatile __sfr FADDRH
\ FADDRH:
\ 000000 DS 1
\ In segment SFR_AN, at 0xae
\ unsigned char volatile __sfr FCTL
\ FCTL:
\ 000000 DS 1
\ In segment SFR_AN, at 0xd1
\ unsigned char volatile __sfr DMAIRQ
\ DMAIRQ:
\ 000000 DS 1
\ In segment SFR_AN, at 0xd6
\ unsigned char volatile __sfr DMAARM
\ DMAARM:
\ 000000 DS 1
24 #include "hal_dma.h"
25 #include "osal.h"
26 #include "OSAL_Nv.h"
27 #include <ioCC2430.h>
28
29 #if !defined ( OSAL_NV_CLEANUP )
30 #define OSAL_NV_CLEANUP FALSE
31 #endif
32
33 /*********************************************************************
34 * CONSTANTS
35 */
36
37 #define OSAL_NV_DMA_CH (&dmaCh0)
38
39 #define OSAL_NV_ACTIVE 0x00
40 #define OSAL_NV_ERASED 0xFF
41 #define OSAL_NV_ERASED_ID 0xFFFF
42 #define OSAL_NV_ZEROED_ID 0x0000
43
44 #define OSAL_NV_PAGE_FREE (OSAL_NV_PAGE_SIZE - Z_EXTADDR_LEN)
45
46 /* The last Flash page will reserve an IEEE addr block at the end of the page where the tools know
47 * to program the IEEE.
48 */
49 #define OSAL_NV_IEEE_OFFSET (OSAL_NV_PAGE_SIZE - Z_EXTADDR_LEN)
50 #define OSAL_NV_IEEE_PAGE 63
51
52 // In case pages 0-1 are ever used, define a null page value.
53 #define OSAL_NV_PAGE_NULL 0
54
55 // In case item Id 0 is ever used, define a null item value.
56 #define OSAL_NV_ITEM_NULL 0
57
58 #define OSAL_NV_WORD_SIZE 4
59
60 #define OSAL_NV_PAGE_HDR_OFFSET 0
61
62 /*********************************************************************
63 * MACROS
64 */
65
66 #define OSAL_NV_PAGE_ERASE( pg ) \
67 st( \
68 FADDRH = (pg) << 1; \
69 FCTL = 0x01; \
70 asm("NOP"); \
71 while(FCTL == 0x80); \
72 )
73
74 #define OSAL_NV_PAGE_TO_ADDR( pg ) ((uint32)pg << 11)
75 #define OSAL_NV_ADDR_TO_PAGE( addr ) ((uint8)(addr >> 11))
76
77 #define OSAL_NV_CHECK_BUS_VOLTAGE (HalAdcCheckVdd( HAL_ADC_VDD_LIMIT_4 ))
78
79 /*********************************************************************
80 * TYPEDEFS
81 */
82
83 typedef struct
84 {
85 uint16 id;
86 uint16 len; // Enforce Flash-WORD size on len.
87 uint16 chk; // Byte-wise checksum of the 'len' data bytes of the item.
88 uint16 stat; // Item status.
89 } osalNvHdr_t;
90 // Struct member offsets.
91 #define OSAL_NV_HDR_ID 0
92 #define OSAL_NV_HDR_LEN 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -