[lkml]   [2007]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [RFC] Documentation about unaligned memory access
    On Nov 22, 2007, at 20:29:11, Alan Cox wrote:
    >> Most architectures are unable to perform unaligned memory
    >> accesses. Any unaligned access causes a processor exception.
    > Not all. Some simply produce the wrong answer - thats oh so much
    > more exciting.

    As one example, the MicroBlaze soft-core processor family designed
    for use on Xilinx FPGAs will (by default) simply forcibly zero the
    lower bits of the unaligned address, such that the following code
    will fail mysteriously:

    const char foo[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 };
    printf("0x%08lx 0x%08lx 0x%08lx 0x%08lx\n",
    *((u32 *)(foo+0)),
    *((u32 *)(foo+1)),
    *((u32 *)(foo+2)),
    *((u32 *)(foo+3)));

    Instead of outputting:
    0x00010203 0x01020304 0x02030405 0x03040506

    It will output:
    0x00010203 0x00010203 0x00010203 0x00010203

    Other embedded architectures have very similar problems. Some may
    provide an "unaligned data access" exception, but offer insufficient
    information to repair the damage and resume execution.

    Kyle Moffett

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-11-23 04:09    [W:0.023 / U:76.420 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site