From 63f6d6aa131e54d1120e77e4dfeda9d228cb3b46 Mon Sep 17 00:00:00 2001 From: Benjamin Valentin Date: Thu, 13 Feb 2020 11:17:11 +0100 Subject: [PATCH] drivers/at86rf2xx: use luid_get_eui64() / luid_get_short() Use dedicated helper functions to generate long and short address. Maybe fixes #13358 --- drivers/at86rf2xx/at86rf2xx.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/at86rf2xx/at86rf2xx.c b/drivers/at86rf2xx/at86rf2xx.c index 386b45ce0c..5ebb728499 100644 --- a/drivers/at86rf2xx/at86rf2xx.c +++ b/drivers/at86rf2xx/at86rf2xx.c @@ -90,6 +90,7 @@ static void at86rf2xx_enable_smart_idle(at86rf2xx_t *dev) void at86rf2xx_reset(at86rf2xx_t *dev) { eui64_t addr_long; + network_uint16_t addr_short; at86rf2xx_hardware_reset(dev); @@ -100,14 +101,13 @@ void at86rf2xx_reset(at86rf2xx_t *dev) at86rf2xx_set_state(dev, AT86RF2XX_STATE_FORCE_TRX_OFF); } - /* get an 8-byte unique ID to use as hardware address */ - luid_get(addr_long.uint8, IEEE802154_LONG_ADDRESS_LEN); - /* make sure we mark the address as non-multicast and not globally unique */ - addr_long.uint8[0] &= ~(0x01); - addr_long.uint8[0] |= (0x02); + /* generate EUI-64 and short address */ + luid_get_eui64(&addr_long); + luid_get_short(&addr_short); + /* set short and long address */ at86rf2xx_set_addr_long(dev, &addr_long); - at86rf2xx_set_addr_short(dev, &addr_long.uint16[ARRAY_SIZE(addr_long.uint16) - 1]); + at86rf2xx_set_addr_short(dev, &addr_short); /* set default channel */ at86rf2xx_set_chan(dev, AT86RF2XX_DEFAULT_CHANNEL);