I encountered another problem when I moved from arm-elf- to arm-none-eabi- The following code: uint8_t *Data; uint8_t Idx; *((uint32_t *)(Data+(6+Idx))) would not work anymore. My intention was to fetch 4 bytes pointed by Data (plus 6+Idx) and interpret them as a 32-bit unsigned integer. It worked with arm-elf but with arm-none-eabi only the lowest byte of the resulting 32-bit word was correct. Could anybody help ? Pawel.
Maybe your uint8_t is not aligned on a /4 divisable address as probably required for an uint32_t?
Is the 32-bit-word you're trying to read properly aligned?
Well, there is a 3/4 change that the data is not aligned. But how did it work with arm-elf and does not work with arm-none-eabi ? Pawel.