33 #ifdef __IAR_SYSTEMS_ICC__
34 #include <intrinsics.h>
37 #define dint() __disable_interrupt()
38 #define eint() __enable_interrupt()
40 #define CC_CONF_INLINE
46 #include <legacymsp430.h>
50 #if !defined(MSP430_MEMCPY_WORKAROUND) && (__GNUC__ < 4)
51 #define MSP430_MEMCPY_WORKAROUND 1
55 #define CC_CONF_INLINE inline
60 #define BV(x) (1 << x)
67 typedef unsigned char uint8_t;
68 typedef unsigned short uint16_t;
69 typedef unsigned long uint32_t;
70 typedef signed char int8_t;
71 typedef short int16_t;
78 typedef uint16_t u16_t;
79 typedef uint32_t u32_t;
80 typedef int32_t s32_t;
83 #ifdef DCOSYNCH_CONF_PERIOD
84 #define DCOSYNCH_PERIOD DCOSYNCH_CONF_PERIOD
86 #define DCOSYNCH_PERIOD 30
89 void msp430_cpu_init(
void);
90 void msp430_sync_dco(
void);
93 #define cpu_init() msp430_cpu_init()
101 #define splhigh() splhigh_()
102 #ifdef __IAR_SYSTEMS_ICC__
103 #define splx(sr) __bis_SR_register(sr)
105 #define splx(sr) __asm__ __volatile__("bis %0, r2" : : "r" (sr))
109 #if defined(__MSP430__) && defined(__GNUC__) && MSP430_MEMCPY_WORKAROUND
113 void *w_memcpy(
void *out,
const void *in,
size_t n);
114 #define memcpy(dest, src, count) w_memcpy(dest, src, count)
116 void *w_memset(
void *out,
int value,
size_t n);
117 #define memset(dest, value, count) w_memset(dest, value, count)
126 #define MSP430_CPU_SPEED F_CPU
128 #define MSP430_CPU_SPEED 2457600UL
131 #define MSP430_REQUIRE_CPUON 0
132 #define MSP430_REQUIRE_LPM1 1
133 #define MSP430_REQUIRE_LPM2 2
134 #define MSP430_REQUIRE_LPM3 3
136 void msp430_add_lpm_req(
int req);
137 void msp430_remove_lpm_req(
int req);