Without the explicit cast, avr-gcc generates incorrect asm which sets
only the lower bytes of the u32, leading the upper bytes to be set to
0xFFFF when the input value has MSB set. This results in flashing past
32k bytes failing. Explicit casting corrects this behaviour in testing.