lm3s1968: return the correct CPU frequency in clock_get_rate().
[bertos.git] / bertos / cpu / detect.h
index 6c0d8f6e35f4fd606e9a148b952997c19e756f8d..3c4712d25f1fd72f8fbcfcd7657f75274a05d0b3 100644 (file)
 #if defined(__arm__) /* GCC */ \
        || defined(__ARM4TM__) /* IAR: defined for all cores >= 4tm */
        #define CPU_ARM                 1
-       #define CPU_ID                  arm
+
+       // Cortex-M3 core family
+       #if defined(__ARM_LM3S1968__)
+               #define CPU_ID                  lm3s
+       #else
+               #define CPU_ID                  arm
+       #endif
 
        // AT91SAM7S core family
        #if defined(__ARM_AT91SAM7S32__)
                #define CPU_ARM_LM3S1968    0
        #endif
 
+       #if defined(__ARM_LPC2378__)
+               #define CPU_ARM_LPC2        1
+               #define CPU_ARM_LPC2378     1
+       #else
+               #define CPU_ARM_LPC2378     0
+       #endif  
+
        #if !defined(CPU_ARM_SAM7S_LARGE)
                #define CPU_ARM_SAM7S_LARGE 0
        #endif
                        #error ARM CPU configuration error
                #endif
                #define CPU_ARM_LM3S        0
+               #define CPU_ARM_LPC2        0
 
        #elif defined (CPU_ARM_LM3S)
                #if CPU_ARM_LM3S1968 + 0 != 1
                        #error Luminary ARM CPU configuration error
                #endif
                #define CPU_ARM_AT91        0
+               #define CPU_ARM_LPC2        0
+       #elif defined (CPU_ARM_LPC2)
+               
+               #if CPU_ARM_LPC2378 + 0 != 1
+                       #error NXP LPC2xxx ARM CPU configuration error
+               #endif
+               #define CPU_ARM_AT91        0
+               #define CPU_ARM_LM3S        0
        /* #elif Add other ARM families here */
        #else
                #define CPU_ARM_AT91        0
                #define CPU_ARM_LM3S        0
+               #define CPU_ARM_LPC2        0
        #endif
 
 
-       #if CPU_ARM_AT91 + CPU_ARM_LM3S + 0 /* Add other ARM families here */ != 1
+       #if CPU_ARM_AT91 + CPU_ARM_LM3S \
+               + CPU_ARM_LPC2 + 0 /* Add other ARM families here */ != 1
                #error ARM CPU configuration error
        #endif
 #else
        /* ARM Families */
        #define CPU_ARM_AT91            0
        #define CPU_ARM_LM3S            0
+       #define CPU_ARM_LPC2            0
 
        /* SAM7 sub-families */
        #define CPU_ARM_SAM7S_LARGE     0
        #define CPU_ARM_AT91SAM7X512    0
 
        #define CPU_ARM_LM3S1968        0
+
+       #define CPU_ARM_LPC2378         0
 #endif
 
 #if (defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)) \
                #define CPU_AVR_ATMEGA168   0
        #endif
 
+       #if defined(__AVR_ATmega328P__)
+               #define CPU_AVR_ATMEGA328P   1
+       #else
+               #define CPU_AVR_ATMEGA328P   0
+       #endif
+
        #if defined(__AVR_ATmega1281__)
                #define CPU_AVR_ATMEGA1281  1
        #else
        #endif
 
        #if CPU_AVR_ATMEGA32 + CPU_AVR_ATMEGA64 + CPU_AVR_ATMEGA103 + CPU_AVR_ATMEGA128 \
-         + CPU_AVR_ATMEGA8 + CPU_AVR_ATMEGA168 + CPU_AVR_ATMEGA1281 != 1
+         + CPU_AVR_ATMEGA8 + CPU_AVR_ATMEGA168 + CPU_AVR_ATMEGA328P + CPU_AVR_ATMEGA1281 != 1
                #error AVR CPU configuration error
        #endif
 #else
        #define CPU_AVR                 0
        #define CPU_AVR_ATMEGA8         0
        #define CPU_AVR_ATMEGA168       0
+       #define CPU_AVR_ATMEGA328P      0
        #define CPU_AVR_ATMEGA32        0
        #define CPU_AVR_ATMEGA64        0
        #define CPU_AVR_ATMEGA103       0