Stack Tokens#
These tokens are divided into three sections (the three main types of tokens mentioned in token.h):
manufacturing
stack
application
For a full explanation of the tokens, see hal/micro/token.h. See token-stack.h for source code.
A set of tokens is predefined in the APPLICATION DATA section at the end of token-stack.h because these tokens are required by the stack, but they are classified as application tokens since they are sized by the application via its CONFIGURATION_HEADER.
The user application can include its own tokens in a header file similar to this one. The macro ::APPLICATION_TOKEN_HEADER should be defined to equal the name of the header file in which application tokens are defined. See the APPLICATION DATA section at the end of token-stack.h for examples of token definitions.
Since token-stack.h contains both the typedefs and the token defs, two #defines are used to select which one is needed when this file is included. #define DEFINETYPES is used to select the type definitions and #define DEFINETOKENS is used to select the token definitions. See token.h and token.c to see how these are used.
Convenience Macros#
The following convenience macros are used to simplify the definition process for commonly specified parameters to the basic TOKEN_DEF macro. See hal/micro/token.h for a more complete explanation.
Creator Codes#
The CREATOR is used as a distinct identifier tag for the token.The CREATOR is necessary because the token name is defined differently depending on the hardware platform. Therefore, the CREATOR ensures that token definitions and data stay tagged and known. The only requirement is that each creator definition must be unique. See hal/micro/token.h for a more complete explanation.
NVM3 Object Keys#
The NVM3 object key is used as a distinct identifier tag for a token stored in NVM3.Every token must have a defined NVM3 object key and the object key must be unique. The object key defined must be in the following format: NVM3KEY_tokennamewhere tokenname is the name of the token without NVM3KEY_ or TOKEN_ prefix.
Macros#
By default, tokens are automatically located after the previous token.
The current version number of the stack tokens. MSB is the version, LSB is a complement.
Convenience Macros Documentation#
DEFINE_BASIC_TOKEN#
#define DEFINE_BASIC_TOKENValue:
(name, type, ...)
103
of file stack/config/token-stack.h
DEFINE_COUNTER_TOKEN#
#define DEFINE_COUNTER_TOKENValue:
(name, type, ...)
106
of file stack/config/token-stack.h
DEFINE_INDEXED_TOKEN#
#define DEFINE_INDEXED_TOKENValue:
(name, type, arraysize, ...)
109
of file stack/config/token-stack.h
DEFINE_FIXED_BASIC_TOKEN#
#define DEFINE_FIXED_BASIC_TOKENValue:
112
of file stack/config/token-stack.h
DEFINE_FIXED_COUNTER_TOKEN#
#define DEFINE_FIXED_COUNTER_TOKENValue:
116
of file stack/config/token-stack.h
DEFINE_FIXED_INDEXED_TOKEN#
#define DEFINE_FIXED_INDEXED_TOKENValue:
120
of file stack/config/token-stack.h
DEFINE_MFG_TOKEN#
#define DEFINE_MFG_TOKENValue:
124
of file stack/config/token-stack.h
Creator Codes Documentation#
CREATOR_STACK_NVDATA_VERSION#
#define CREATOR_STACK_NVDATA_VERSIONValue:
0xFF01
153
of file stack/config/token-stack.h
CREATOR_STACK_BOOT_COUNTER#
#define CREATOR_STACK_BOOT_COUNTERValue:
0xE263
154
of file stack/config/token-stack.h
CREATOR_STACK_NONCE_COUNTER#
#define CREATOR_STACK_NONCE_COUNTERValue:
0xE563
155
of file stack/config/token-stack.h
CREATOR_STACK_ANALYSIS_REBOOT#
#define CREATOR_STACK_ANALYSIS_REBOOTValue:
0xE162
156
of file stack/config/token-stack.h
CREATOR_STACK_KEYS#
#define CREATOR_STACK_KEYSValue:
0xEB79
157
of file stack/config/token-stack.h
CREATOR_STACK_NODE_DATA#
#define CREATOR_STACK_NODE_DATAValue:
0xEE64
158
of file stack/config/token-stack.h
CREATOR_STACK_CLASSIC_DATA#
#define CREATOR_STACK_CLASSIC_DATAValue:
0xE364
159
of file stack/config/token-stack.h
CREATOR_STACK_ALTERNATE_KEY#
#define CREATOR_STACK_ALTERNATE_KEYValue:
0xE475
160
of file stack/config/token-stack.h
CREATOR_STACK_APS_FRAME_COUNTER#
#define CREATOR_STACK_APS_FRAME_COUNTERValue:
0xE123
161
of file stack/config/token-stack.h
CREATOR_STACK_TRUST_CENTER#
#define CREATOR_STACK_TRUST_CENTERValue:
0xE124
162
of file stack/config/token-stack.h
CREATOR_STACK_NETWORK_MANAGEMENT#
#define CREATOR_STACK_NETWORK_MANAGEMENTValue:
0xE125
163
of file stack/config/token-stack.h
CREATOR_STACK_PARENT_INFO#
#define CREATOR_STACK_PARENT_INFOValue:
0xE126
164
of file stack/config/token-stack.h
CREATOR_STACK_PARENT_ADDITIONAL_INFO#
#define CREATOR_STACK_PARENT_ADDITIONAL_INFOValue:
0xE127
165
of file stack/config/token-stack.h
CREATOR_STACK_MULTI_PHY_NWK_INFO#
#define CREATOR_STACK_MULTI_PHY_NWK_INFOValue:
0xE128
166
of file stack/config/token-stack.h
CREATOR_STACK_MIN_RECEIVED_RSSI#
#define CREATOR_STACK_MIN_RECEIVED_RSSIValue:
0xE129
167
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_KEYS#
#define CREATOR_MULTI_NETWORK_STACK_KEYSValue:
0xE210
169
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_NODE_DATA#
#define CREATOR_MULTI_NETWORK_STACK_NODE_DATAValue:
0xE211
170
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_ALTERNATE_KEY#
#define CREATOR_MULTI_NETWORK_STACK_ALTERNATE_KEYValue:
0xE212
171
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_TRUST_CENTER#
#define CREATOR_MULTI_NETWORK_STACK_TRUST_CENTERValue:
0xE213
172
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_NETWORK_MANAGEMENT#
#define CREATOR_MULTI_NETWORK_STACK_NETWORK_MANAGEMENTValue:
0xE214
173
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_PARENT_INFO#
#define CREATOR_MULTI_NETWORK_STACK_PARENT_INFOValue:
0xE215
174
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_NONCE_COUNTER#
#define CREATOR_MULTI_NETWORK_STACK_NONCE_COUNTERValue:
0xE220
178
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_PARENT_ADDITIONAL_INFO#
#define CREATOR_MULTI_NETWORK_STACK_PARENT_ADDITIONAL_INFOValue:
0xE221
179
of file stack/config/token-stack.h
CREATOR_STACK_GP_DATA#
#define CREATOR_STACK_GP_DATAValue:
0xE258
182
of file stack/config/token-stack.h
CREATOR_STACK_GP_PROXY_TABLE#
#define CREATOR_STACK_GP_PROXY_TABLEValue:
0xE259
183
of file stack/config/token-stack.h
CREATOR_STACK_GP_SINK_TABLE#
#define CREATOR_STACK_GP_SINK_TABLEValue:
0xE25A
184
of file stack/config/token-stack.h
CREATOR_STACK_GP_INCOMING_FC#
#define CREATOR_STACK_GP_INCOMING_FCValue:
0xE25B
185
of file stack/config/token-stack.h
CREATOR_STACK_GP_INCOMING_FC_IN_SINK#
#define CREATOR_STACK_GP_INCOMING_FC_IN_SINKValue:
0xE25C
186
of file stack/config/token-stack.h
CREATOR_STACK_BINDING_TABLE#
#define CREATOR_STACK_BINDING_TABLEValue:
0xE274
188
of file stack/config/token-stack.h
CREATOR_STACK_CHILD_TABLE#
#define CREATOR_STACK_CHILD_TABLEValue:
0xFF0D
189
of file stack/config/token-stack.h
CREATOR_STACK_KEY_TABLE#
#define CREATOR_STACK_KEY_TABLEValue:
0xE456
190
of file stack/config/token-stack.h
CREATOR_STACK_CERTIFICATE_TABLE#
#define CREATOR_STACK_CERTIFICATE_TABLEValue:
0xE500
191
of file stack/config/token-stack.h
CREATOR_STACK_ZLL_DATA#
#define CREATOR_STACK_ZLL_DATAValue:
0xE501
192
of file stack/config/token-stack.h
CREATOR_STACK_ZLL_SECURITY#
#define CREATOR_STACK_ZLL_SECURITYValue:
0xE502
193
of file stack/config/token-stack.h
CREATOR_STACK_ADDITIONAL_CHILD_DATA#
#define CREATOR_STACK_ADDITIONAL_CHILD_DATAValue:
0xE503
194
of file stack/config/token-stack.h
NVM3 Object Keys Documentation#
NVM3KEY_DOMAIN_USER#
#define NVM3KEY_DOMAIN_USERValue:
0x00000U
215
of file stack/config/token-stack.h
NVM3KEY_DOMAIN_ZIGBEE#
#define NVM3KEY_DOMAIN_ZIGBEEValue:
0x10000U
216
of file stack/config/token-stack.h
NVM3KEY_DOMAIN_COMMON#
#define NVM3KEY_DOMAIN_COMMONValue:
0x80000U
217
of file stack/config/token-stack.h
NVM3KEY_STACK_NVDATA_VERSION#
#define NVM3KEY_STACK_NVDATA_VERSIONValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xFF01)
220
of file stack/config/token-stack.h
NVM3KEY_STACK_BOOT_COUNTER#
#define NVM3KEY_STACK_BOOT_COUNTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE263)
221
of file stack/config/token-stack.h
NVM3KEY_STACK_NONCE_COUNTER#
#define NVM3KEY_STACK_NONCE_COUNTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE563)
222
of file stack/config/token-stack.h
NVM3KEY_STACK_ANALYSIS_REBOOT#
#define NVM3KEY_STACK_ANALYSIS_REBOOTValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE162)
223
of file stack/config/token-stack.h
NVM3KEY_STACK_KEYS#
#define NVM3KEY_STACK_KEYSValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xEB79)
224
of file stack/config/token-stack.h
NVM3KEY_STACK_NODE_DATA#
#define NVM3KEY_STACK_NODE_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xEE64)
225
of file stack/config/token-stack.h
NVM3KEY_STACK_CLASSIC_DATA#
#define NVM3KEY_STACK_CLASSIC_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE364)
226
of file stack/config/token-stack.h
NVM3KEY_STACK_ALTERNATE_KEY#
#define NVM3KEY_STACK_ALTERNATE_KEYValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE475)
227
of file stack/config/token-stack.h
NVM3KEY_STACK_APS_FRAME_COUNTER#
#define NVM3KEY_STACK_APS_FRAME_COUNTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE123)
228
of file stack/config/token-stack.h
NVM3KEY_STACK_TRUST_CENTER#
#define NVM3KEY_STACK_TRUST_CENTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE124)
229
of file stack/config/token-stack.h
NVM3KEY_STACK_NETWORK_MANAGEMENT#
#define NVM3KEY_STACK_NETWORK_MANAGEMENTValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE125)
230
of file stack/config/token-stack.h
NVM3KEY_STACK_PARENT_INFO#
#define NVM3KEY_STACK_PARENT_INFOValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE126)
231
of file stack/config/token-stack.h
NVM3KEY_STACK_PARENT_ADDITIONAL_INFO#
#define NVM3KEY_STACK_PARENT_ADDITIONAL_INFOValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE127)
232
of file stack/config/token-stack.h
NVM3KEY_STACK_MULTI_PHY_NWK_INFO#
#define NVM3KEY_STACK_MULTI_PHY_NWK_INFOValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE128)
233
of file stack/config/token-stack.h
NVM3KEY_STACK_MIN_RECEIVED_RSSI#
#define NVM3KEY_STACK_MIN_RECEIVED_RSSIValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE129)
234
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_KEYS#
#define NVM3KEY_MULTI_NETWORK_STACK_KEYSValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0000)
237
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_NODE_DATA#
#define NVM3KEY_MULTI_NETWORK_STACK_NODE_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0080)
239
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_ALTERNATE_KEY#
#define NVM3KEY_MULTI_NETWORK_STACK_ALTERNATE_KEYValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0100)
241
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_TRUST_CENTER#
#define NVM3KEY_MULTI_NETWORK_STACK_TRUST_CENTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0180)
243
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_NETWORK_MANAGEMENT#
#define NVM3KEY_MULTI_NETWORK_STACK_NETWORK_MANAGEMENTValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0200)
245
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_PARENT_INFO#
#define NVM3KEY_MULTI_NETWORK_STACK_PARENT_INFOValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0280)
247
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_NONCE_COUNTER#
#define NVM3KEY_MULTI_NETWORK_STACK_NONCE_COUNTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE220)
251
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_PARENT_ADDITIONAL_INFO#
#define NVM3KEY_MULTI_NETWORK_STACK_PARENT_ADDITIONAL_INFOValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0300)
253
of file stack/config/token-stack.h
NVM3KEY_STACK_GP_DATA#
#define NVM3KEY_STACK_GP_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE258)
256
of file stack/config/token-stack.h
NVM3KEY_STACK_GP_PROXY_TABLE#
#define NVM3KEY_STACK_GP_PROXY_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0380)
258
of file stack/config/token-stack.h
NVM3KEY_STACK_GP_SINK_TABLE#
#define NVM3KEY_STACK_GP_SINK_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0400)
260
of file stack/config/token-stack.h
NVM3KEY_STACK_GP_INCOMING_FC#
#define NVM3KEY_STACK_GP_INCOMING_FCValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0480)
262
of file stack/config/token-stack.h
NVM3KEY_STACK_BINDING_TABLE#
#define NVM3KEY_STACK_BINDING_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0500)
266
of file stack/config/token-stack.h
NVM3KEY_STACK_CHILD_TABLE#
#define NVM3KEY_STACK_CHILD_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0580)
268
of file stack/config/token-stack.h
NVM3KEY_STACK_KEY_TABLE#
#define NVM3KEY_STACK_KEY_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0600)
270
of file stack/config/token-stack.h
NVM3KEY_STACK_CERTIFICATE_TABLE#
#define NVM3KEY_STACK_CERTIFICATE_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0680)
272
of file stack/config/token-stack.h
NVM3KEY_STACK_ZLL_DATA#
#define NVM3KEY_STACK_ZLL_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE501)
273
of file stack/config/token-stack.h
NVM3KEY_STACK_ZLL_SECURITY#
#define NVM3KEY_STACK_ZLL_SECURITYValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE502)
274
of file stack/config/token-stack.h
NVM3KEY_STACK_ADDITIONAL_CHILD_DATA#
#define NVM3KEY_STACK_ADDITIONAL_CHILD_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0700)
276
of file stack/config/token-stack.h
NVM3KEY_STACK_GP_INCOMING_FC_IN_SINK#
#define NVM3KEY_STACK_GP_INCOMING_FC_IN_SINKValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0780)
279
of file stack/config/token-stack.h
Macro Definition Documentation#
TOKEN_NEXT_ADDRESS#
#define TOKEN_NEXT_ADDRESS
By default, tokens are automatically located after the previous token.
If a token needs to be placed at a specific location, one of the DEFINE_FIXED_* definitions should be used. This macro is inherently used in the DEFINE_FIXED_* definition to locate a token and under special circumstances (such as manufacturing tokens) it may be explicitly used.
67
of file stack/config/token-stack.h
CURRENT_STACK_TOKEN_VERSION#
#define CURRENT_STACK_TOKEN_VERSIONValue:
0x03FC
The current version number of the stack tokens. MSB is the version, LSB is a complement.
See hal/micro/token.h for a more complete explanation.
305
of file stack/config/token-stack.h