Better detection of concurrent ADC access.
[bertos.git] / bertos / cpu / attr.h
index 837ccfb82cabc6512f1d352ea2792946adf50d2e..c6d8373484d300c7f3c6deded36c9ff993da9629 100644 (file)
        #define CPU_HARVARD            0
 
        /// Valid pointers should be >= than this value (used for debug)
-       #define CPU_RAM_START           0x200
+       #if CPU_ARM_AT91
+               #define CPU_RAM_START           0x00200000
+       #else
+               #warning Fix CPU_RAM_START address for your ARM, default value set to 0x200
+               #define CPU_RAM_START           0x200
+       #endif
 
        #ifdef __IAR_SYSTEMS_ICC__
                #warning Check CPU_BYTE_ORDER
                 */
                #define ISR_FUNC __attribute__((interrupt))
 
+               /*
+                * Function attribute to move it into ram memory.
+                */
+               #define RAM_FUNC __attribute__((section(".data")))
+
        #endif /* !__IAR_SYSTEMS_ICC_ */
 
 #elif CPU_PPC
        #define CPU_HARVARD             1
 
        /// Valid pointers should be >= than this value (used for debug)
-       #define CPU_RAM_START       0x100
+       #if CPU_AVR_ATMEGA8 || CPU_AVR_ATMEGA32 || CPU_AVR_ATMEGA103
+               #define CPU_RAM_START       0x60
+       #elif CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128 || CPU_AVR_ATMEGA168
+               #define CPU_RAM_START       0x100
+       #elif CPU_AVR_ATMEGA1281
+               #define CPU_RAM_START       0x200
+       #else
+               #warning Fix CPU_RAM_START address for your AVR, default value set to 0x100
+               #define CPU_RAM_START       0x100
+       #endif
 
 #else
        #error No CPU_... defined.