projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Crate new SDK tag.
[bertos.git]
/
bertos
/
cpu
/
attr.h
diff --git
a/bertos/cpu/attr.h
b/bertos/cpu/attr.h
index bd74d5c518647ef9ff1e87389e9706c42331cbea..832f0618698c724945f7196dfaf97e30cf790404 100644
(file)
--- a/
bertos/cpu/attr.h
+++ b/
bertos/cpu/attr.h
@@
-42,6
+42,7
@@
#include "detect.h"
#include "detect.h"
+#include "cfg/cfg_proc.h" /* CONFIG_KERN_PREEMPT */
#include "cfg/cfg_attr.h" /* CONFIG_FAST_MEM */
#include "cfg/cfg_attr.h" /* CONFIG_FAST_MEM */
@@
-94,6
+95,8
@@
#ifdef __GNUC__
#define NOP asm volatile ("nop")
#ifdef __GNUC__
#define NOP asm volatile ("nop")
+ /* This is a good thing to insert into busy-wait loops. */
+ #define PAUSE asm volatile ("rep; nop" ::: "memory")
#define BREAKPOINT asm volatile ("int3" ::)
#endif
#define BREAKPOINT asm volatile ("int3" ::)
#endif
@@
-104,7
+107,12
@@
#define CPU_HARVARD 0
/// Valid pointers should be >= than this value (used for debug)
#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
#ifdef __IAR_SYSTEMS_ICC__
#warning Check CPU_BYTE_ORDER
@@
-148,10
+156,10
@@
#define FAST_FUNC /**/
#endif
#define FAST_FUNC /**/
#endif
- /*
*
- * Function attribute to
declare an interrupt service routine
.
+ /*
+ * Function attribute to
move it into ram memory
.
*/
*/
- #define
ISR_FUNC __attribute__((interrupt
))
+ #define
RAM_FUNC __attribute__((section(".data")
))
#endif /* !__IAR_SYSTEMS_ICC_ */
#endif /* !__IAR_SYSTEMS_ICC_ */
@@
-209,6
+217,7
@@
#else
#warning Fix CPU_RAM_START address for your AVR, default value set to 0x100
#define CPU_RAM_START 0x100
#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.
#else
#error No CPU_... defined.
@@
-228,4
+237,9
@@
#define FAST_RODATA /* */
#endif
#define FAST_RODATA /* */
#endif
+#ifndef PAUSE
+ /// Generic PAUSE implementation.
+ #define PAUSE {NOP; MEMORY_BARRIER;}
+#endif
+
#endif /* CPU_ATTR_H */
#endif /* CPU_ATTR_H */