Grubb, Jared escreveu:
I'm not sure which ARM processor you're referring to, but that can't actually 
be true. By definition in the C standard, every compiler is guaranteed to have 
byte access anywhere it wants (IIRC, a byte is defined as the minimal unit 
addressable on the architecture). The fun part is that a byte (as defined by 
the C standard) is not guaranteed to have 8-bits!

That is correct... and not :(

ARM7 and ARM9r4 do not have physical byte access, that is what I meant. So if the compiler wants byte access, it will do whatever it takes to get the byte, even worse to write it. If you compute pipeline misses, it gets a mess.

There is a very interesting chapter in my ARM book about how to write a program in C in a manner that the compiled code will be efficient. And it is very interesting to see the code generated in Eclipse debugging.

I gess that the same but happen in other 16/32 bit achitectures.

So, this is a case where a specially written macro can make a big difference. One advantage of TCP/IP, is that it was originaly written for mainframes with the same problem and almost averything in the headers is inside 32 bit words.

Alain



_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to