#include #include #include "uid64.h" #define UID64_NODE DT_NODELABEL(uid64) uint64_t uid64_get(void) { #if DT_NODE_EXISTS(UID64_NODE) return *(volatile uint64_t *) DT_REG_ADDR(UID64_NODE); #else return 0; #endif } void uid64_to_string(uint64_t uid, char *str) { uint8_t *source = (uint8_t *)&uid + 7; char *sink = str; for (unsigned int i = 0; i < 8; i++) { /* delimiter */ if (i > 0) { *sink = ':'; sink++; } /* byte values */ snprintf(sink, 3, "%02x", *source); source--; sink += 2; } } bool uid64_available(void) { #if DT_NODE_EXISTS(UID64_NODE) return true; #else return false; #endif }