diff --git a/cpu/nrf51822/include/cpu-conf.h b/cpu/nrf51822/include/cpu-conf.h index 37be1c1b8b..939fe028b2 100644 --- a/cpu/nrf51822/include/cpu-conf.h +++ b/cpu/nrf51822/include/cpu-conf.h @@ -49,5 +49,10 @@ #endif /** @} */ +/** + * @name Length in bytes for reading CPU_ID + */ +#define CPUID_ID_LEN (8) + #endif /* __CPU_CONF_H */ /** @} */ diff --git a/cpu/nrf51822/periph/cpuid.c b/cpu/nrf51822/periph/cpuid.c new file mode 100644 index 0000000000..e3bc7c6123 --- /dev/null +++ b/cpu/nrf51822/periph/cpuid.c @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2014 Freie Universität Berlin + * + * This file is subject to the terms and conditions of the GNU Lesser General + * Public License v2.1. See the file LICENSE in the top level directory for more + * details. + */ + +/** + * @ingroup cpu_nrf51822 + * @{ + * + * @file + * @brief CPU-ID driver implementation + * + * The NRF51822 provides a 64-bit unique identifier, that is unique for each shipped unit. + * + * @author Hauke Petersen + * + * @} + */ + +#include + +#include "cpu.h" +#include "cpu-conf.h" +#include "periph/cpuid.h" + +void cpuid_get(void *id) +{ + memcpy(id, (void*)NRF_FICR->DEVICEID, CPUID_ID_LEN); +}