aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Common/Common.h
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2011-03-05 11:34:04 +0000
committerDean Camera <dean@fourwalledcubicle.com>2011-03-05 11:34:04 +0000
commitb763c3f33e8596afe2dd21746890fa9641362c5e (patch)
tree4253888dedfecf7500b3aaed743c5b0dfd88a840 /LUFA/Common/Common.h
parent33a81bffb9e3f856c1d3446d7292795774ae91a8 (diff)
downloadlufa-b763c3f33e8596afe2dd21746890fa9641362c5e.tar.gz
lufa-b763c3f33e8596afe2dd21746890fa9641362c5e.tar.bz2
lufa-b763c3f33e8596afe2dd21746890fa9641362c5e.zip
Porting updates for the UC3B architecture - get UC3B partially enumerating using a modified mouse demo on the EVK1101. Implement a software FIFO for the endpoint banks; datasheet hints that this can be done through hardware as on the AVR8 architecture, but the correct method to do this not discovered yet.
Diffstat (limited to 'LUFA/Common/Common.h')
-rw-r--r--LUFA/Common/Common.h41
1 files changed, 36 insertions, 5 deletions
diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h
index 76e1be1e2..147ae8ebc 100644
--- a/LUFA/Common/Common.h
+++ b/LUFA/Common/Common.h
@@ -87,15 +87,50 @@
#include <util/delay.h>
typedef uint8_t uint_reg_t;
+
+ #define le16_to_cpu(x) x
+ #define le32_to_cpu(x) x
+ #define be16_to_cpu(x) SwapEndian_16(x)
+ #define be32_to_cpu(x) SwapEndian_32(x)
+ #define cpu_to_le16(x) x
+ #define cpu_to_le32(x) x
+ #define cpu_to_be16(x) SwapEndian_16(x)
+ #define cpu_to_be32(x) SwapEndian_32(x)
+ #define LE16_TO_CPU(x) x
+ #define LE32_TO_CPU(x) x
+ #define BE16_TO_CPU(x) SWAPENDIAN_16(x)
+ #define BE32_TO_CPU(x) SWAPENDIAN_32(x)
+ #define CPU_TO_LE16(x) x
+ #define CPU_TO_LE32(x) x
+ #define CPU_TO_BE16(x) SWAPENDIAN_16(x)
+ #define CPU_TO_BE32(x) SWAPENDIAN_32(x)
+
#elif (ARCH == ARCH_UC3B)
#include <avr32/io.h>
typedef uint32_t uint_reg_t;
// TODO
+ #define le16_to_cpu(x) SwapEndian_16(x)
+ #define le32_to_cpu(x) SwapEndian_32(x)
+ #define be16_to_cpu(x) x
+ #define be32_to_cpu(x) x
+ #define cpu_to_le16(x) SwapEndian_16(x)
+ #define cpu_to_le32(x) SwapEndian_32(x)
+ #define cpu_to_be16(x) x
+ #define cpu_to_be32(x) x
+ #define LE16_TO_CPU(x) SWAPENDIAN_16(x)
+ #define LE32_TO_CPU(x) SWAPENDIAN_32(x)
+ #define BE16_TO_CPU(x) x
+ #define BE32_TO_CPU(x) x
+ #define CPU_TO_LE16(x) SWAPENDIAN_16(x)
+ #define CPU_TO_LE32(x) SWAPENDIAN_32(x)
+ #define CPU_TO_BE16(x) x
+ #define CPU_TO_BE32(x) x
+
+ #define ISR(Name) void Name (void) __attribute__((__interrupt__)); void Name (void)
#define EEMEM
#define PROGMEM const
- #define ISR(Name) void Name (void) __attribute__((__interrupt__)); void Name (void)
#define ATOMIC_BLOCK(x) if (1)
#define ATOMIC_RESTORESTATE
#define pgm_read_byte(x) *x
@@ -105,10 +140,6 @@
#define _delay_ms(x)
#define memcmp_P(...) memcmp(__VA_ARGS__)
#define memcpy_P(...) memcpy(__VA_ARGS__)
- #define cpu_irq_enable() do { asm volatile("" ::: "memory"); __builtin_csrf(AVR32_SR_GM_OFFSET); } while (0)
- #define cpu_irq_disable() do { __builtin_ssrf(AVR32_SR_GM_OFFSET); asm volatile("" ::: "memory"); } while (0)
-
- #warning The UC3B architecture support is currently experimental and incomplete!
#endif
/* Public Interface - May be used in end-application: */