Merge pull request #584 from lab11/cc2538-ieee-addr

CC2538: add secondary location to ieee address
This commit is contained in:
George Oikonomou 2014-03-08 23:15:23 +00:00
commit 24c503c726
4 changed files with 24 additions and 2 deletions

View file

@ -52,7 +52,7 @@ ieee_addr_cpy_to(uint8_t *dst, uint8_t len)
/* Reading from Info Page, we need to invert byte order */
int i;
for(i = 0; i < len; i++) {
dst[i] = ((uint8_t *)IEEE_ADDR_LOCATION_PRIMARY)[len - 1 - i];
dst[i] = ((uint8_t *)IEEE_ADDR_LOCATION)[len - 1 - i];
}
}

View file

@ -53,6 +53,18 @@
* @{
*/
#define IEEE_ADDR_LOCATION_PRIMARY 0x00280028 /**< IEEE address location */
#define IEEE_ADDR_LOCATION_SECONDARY 0x0027FFCC /**< IEEE address location */
/** @} */
/*---------------------------------------------------------------------------*/
/**
* \brief Select which address location to use
* @{
*/
#if IEEE_ADDR_CONF_USE_SECONDARY_LOCATION
#define IEEE_ADDR_LOCATION IEEE_ADDR_LOCATION_SECONDARY
#else
#define IEEE_ADDR_LOCATION IEEE_ADDR_LOCATION_PRIMARY
#endif
/** @} */
/*---------------------------------------------------------------------------*/
/*

View file

@ -243,7 +243,7 @@ To configure the IEEE address source location (Info Page or hard-coded), use the
* 0: Info Page
* 1: Hard-coded
If `IEEE_ADDR_CONF_HARDCODED` is defined as 1, the IEEE address will take its value from the `IEEE_ADDR_CONF_ADDRESS` define.
If `IEEE_ADDR_CONF_HARDCODED` is defined as 1, the IEEE address will take its value from the `IEEE_ADDR_CONF_ADDRESS` define. If `IEEE_ADDR_CONF_HARDCODED` is defined as 0, the IEEE address can come from either the primary or secondary location in the Info Page. To use the secondary address, define `IEEE_ADDR_CONF_USE_SECONDARY_LOCATION` as 1.
Additionally, you can override the IEEE's 2 LSBs, by using the `NODEID` make variable. The value of `NODEID` will become the value of the `IEEE_ADDR_NODE_ID` pre-processor define. If `NODEID` is not defined, `IEEE_ADDR_NODE_ID` will not get defined either. For example:

View file

@ -268,6 +268,16 @@ typedef uint32_t rtimer_clock_t;
#ifndef IEEE_ADDR_CONF_ADDRESS
#define IEEE_ADDR_CONF_ADDRESS { 0x00, 0x12, 0x4B, 0x00, 0x89, 0xAB, 0xCD, 0xEF }
#endif
/**
* \brief Location of the IEEE address in the InfoPage when
* IEEE_ADDR_CONF_HARDCODED is defined as 0
* 0 => Use the primary address location
* 1 => Use the secondary address location
*/
#ifndef IEEE_ADDR_CONF_USE_SECONDARY_LOCATION
#define IEEE_ADDR_CONF_USE_SECONDARY_LOCATION 0
#endif
/** @} */
/*---------------------------------------------------------------------------*/
/**