|
13 | 13 | namespace arduino { namespace ucid { |
14 | 14 |
|
15 | 15 | bool get(uint8_t *in, uint32_t size) { |
| 16 | +#if UC_UID_SIZE == 0 |
| 17 | + return false; |
| 18 | +#else |
16 | 19 | if (size < UC_UID_SIZE) { |
17 | 20 | return false; |
18 | 21 | } |
19 | | -#if defined(ARDUINO_SAMD_MKRWIFI1010) || \ |
20 | | - defined(ARDUINO_SAMD_NANO_33_IOT) |
| 22 | + #if defined(ARDUINO_SAMD_MKRWIFI1010) || \ |
| 23 | + defined(ARDUINO_SAMD_NANO_33_IOT) |
21 | 24 | (*(uint32_t*)(&in[0x0])) = __builtin_bswap32(*(volatile uint32_t*)(0x0080A00C)); |
22 | 25 | (*(uint32_t*)(&in[0x4])) = __builtin_bswap32(*(volatile uint32_t*)(0x0080A040)); |
23 | 26 | (*(uint32_t*)(&in[0x8])) = __builtin_bswap32(*(volatile uint32_t*)(0x0080A044)); |
24 | 27 | (*(uint32_t*)(&in[0xC])) = __builtin_bswap32(*(volatile uint32_t*)(0x0080A048)); |
25 | | -#elif defined(ARDUINO_PORTENTA_H7_M7) || \ |
26 | | - defined(ARDUINO_NICLA_VISION) || \ |
27 | | - defined(ARDUINO_OPTA) || \ |
28 | | - defined(ARDUINO_GIGA) |
| 28 | + #elif defined(ARDUINO_PORTENTA_H7_M7) || \ |
| 29 | + defined(ARDUINO_NICLA_VISION) || \ |
| 30 | + defined(ARDUINO_OPTA) || \ |
| 31 | + defined(ARDUINO_GIGA) |
29 | 32 | (*(uint32_t*)(&in[0x0])) = __builtin_bswap32(HAL_GetUIDw0()); |
30 | 33 | (*(uint32_t*)(&in[0x4])) = __builtin_bswap32(HAL_GetUIDw1()); |
31 | 34 | (*(uint32_t*)(&in[0x8])) = __builtin_bswap32(HAL_GetUIDw2()); |
32 | | -#elif defined(ARDUINO_PORTENTA_C33) || \ |
33 | | - defined(ARDUINO_UNOR4_WIFI) |
| 35 | + #elif defined(ARDUINO_PORTENTA_C33) || \ |
| 36 | + defined(ARDUINO_UNOR4_WIFI) |
34 | 37 | const bsp_unique_id_t* t = R_BSP_UniqueIdGet(); |
35 | 38 | (*(uint32_t*)(&in[0x0])) = __builtin_bswap32(t->unique_id_words[0x0]); |
36 | 39 | (*(uint32_t*)(&in[0x4])) = __builtin_bswap32(t->unique_id_words[0x1]); |
37 | 40 | (*(uint32_t*)(&in[0x8])) = __builtin_bswap32(t->unique_id_words[0x2]); |
38 | 41 | (*(uint32_t*)(&in[0xC])) = __builtin_bswap32(t->unique_id_words[0x3]); |
39 | | -#elif defined(ARDUINO_NANO_RP2040_CONNECT) |
| 42 | + #elif defined(ARDUINO_NANO_RP2040_CONNECT) |
40 | 43 | uint8_t id[UC_UID_SIZE]; |
41 | 44 | flash_get_unique_id(id); |
42 | 45 | (*(uint32_t*)(&in[0x0])) = __builtin_bswap32(*(uint32_t*)&id[0x0]); |
43 | 46 | (*(uint32_t*)(&in[0x4])) = __builtin_bswap32(*(uint32_t*)&id[0x4]); |
44 | | -#endif |
| 47 | + #endif |
45 | 48 | return true; |
| 49 | +#endif |
46 | 50 | } |
47 | 51 |
|
48 | 52 | }} // arduino::ucid |
0 commit comments