X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=cpu%2Fattr.h;h=302b38c987089043a0ac7b2f8deabb6342b4f4bd;hb=87b0a020748ea20bd8bed2c7459f6b07868a4a6f;hp=497f899700d2712816480bd0792a53c4fd177dd9;hpb=0d5973b823b256204c2588b46891bb5231352e6f;p=bertos.git diff --git a/cpu/attr.h b/cpu/attr.h index 497f8997..302b38c9 100644 --- a/cpu/attr.h +++ b/cpu/attr.h @@ -102,13 +102,23 @@ #define CPU_SAVED_REGS_CNT 9 #define CPU_STACK_GROWS_UPWARD 0 #define CPU_SP_ON_EMPTY_SLOT 0 - #define CPU_BYTE_ORDER (__BIG_ENDIAN__ ? CPU_BIG_ENDIAN : CPU_LITTLE_ENDIAN) #define CPU_HARVARD 0 #ifdef __IAR_SYSTEMS_ICC__ - #define NOP __no_operation() + #warning Check CPU_BYTE_ORDER + #define CPU_BYTE_ORDER (__BIG_ENDIAN__ ? CPU_BIG_ENDIAN : CPU_LITTLE_ENDIAN) + + #define NOP __no_operation() #else /* !__IAR_SYSTEMS_ICC__ */ - #define NOP asm volatile ("mov r0,r0" ::) + #if defined(__ARMEB__) + #define CPU_BYTE_ORDER CPU_BIG_ENDIAN + #elif defined(__ARMEL__) + #define CPU_BYTE_ORDER CPU_LITTLE_ENDIAN + #else + #error Unable to detect ARM endianness! + #endif + + #define NOP asm volatile ("mov r0,r0" ::) /** * Initialization value for registers in stack frame. @@ -257,8 +267,8 @@ } while (0) /* - * If the kernel is in idle-spinning, the processor execute: - * + * If the kernel is in idle-spinning, the processor executes: + * * IRQ_ENABLE; * CPU_IDLE; * IRQ_DISABLE;