В копилку: приведённый ниже исходник при помощи компилятора IAR ARM 4.4x генерирует оптимальный код для изменения порядка байтов в 32-битном слове (с включенной оптимизацией, режим ARM, 4 строчки - 4 инструкции).
Код
__arm uint32_t htonl(uint32_t n)
{
uint32_t tmp;
tmp = n ^ ((n << 16) | (n >> 16));
tmp &= ~0x00ff0000;
n = (n << 24) | (n >> 8);
n ^= (tmp >> 8);
return n;
}