From 4de2a1eb6224dbb218c80f652bf0ed36f2ac29f4 Mon Sep 17 00:00:00 2001 From: Dave Marples Date: Wed, 12 Feb 2020 22:36:34 +0000 Subject: Fix alignment warning --- ports/mimxrt10xx/common-hal/microcontroller/Processor.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ports/mimxrt10xx/common-hal/microcontroller/Processor.c b/ports/mimxrt10xx/common-hal/microcontroller/Processor.c index 23493f766..6b0a15185 100644 --- a/ports/mimxrt10xx/common-hal/microcontroller/Processor.c +++ b/ports/mimxrt10xx/common-hal/microcontroller/Processor.c @@ -58,8 +58,17 @@ void common_hal_mcu_processor_get_uid(uint8_t raw_id[]) { OCOTP_Init(OCOTP, CLOCK_GetFreq(kCLOCK_IpgClk)); // Reads shadow registers 0x01 - 0x04 (Configuration and Manufacturing Info) + // into 8 bit wide destination, avoiding punning. for (int i = 0; i < 4; ++i) - ((uint32_t*) raw_id)[i] = OCOTP_ReadFuseShadowRegister(OCOTP, i + 1); + { + uint32_t wr = OCOTP_ReadFuseShadowRegister(OCOTP, i + 1); + + for (int j = 0; j < 4; j++) + { + raw_id[i*4+j] = wr&0xff; + wr>>=8; + } + } OCOTP_Deinit(OCOTP); } -- cgit v1.2.3