user4581301 suggested that I go header surfing. This is what I found:
typedef __UINT32_TYPE__ __uint32_t;
typedef __uint32_t uint32_t ;
Then Why is uint32_t
typedeffed to unsigned long
on arm-none-eabi GCC, and how to change it? explains that arm-none-eabi-gcc points __UINT32_TYPE__
to long unsigned int
but makes them 4 bytes long.
I guess that explains why the compiler doesn't see the match to unsigned long
.