>> I have something like this on a 32 bit little endian arm9 board (SAM9 >> L9260): >> >> char buffer[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; >> >> long A = * ( (long*) >> buffer ); >> long B = * ( (long*) (buffer + 2) ); >> >> printf("A: % 08x B: %08x", A, >> B); >> >> I would expect that A = 0x03020100 and B = 0x05040302 >> instead I get the >> right value for A but B is 0x01000302 or something like this but anyway not >> what I expect. >> Is there something wrong on the board? It seems that only 4 >> bytes aligned long are read correctly. > >ARM9 does not support unaligned load/store. Yours is apparently
>configured in the round-and-rotate mode. >e Then my code is simply wrong, that is, not allowed? If I have to port code from a PPC (that handles unaligned accesses) to an ARM9 it is painful operation..., isn't it? Bye, Antonio. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot