X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Ftypes.h;h=dcddaa59b8d6e228fd8715f42deb92e3e397dd8d;hb=bc30005bd88b5a7673c45d1dd09c9240fbb00db6;hp=3e56a360f08da48b56296c0d6ee853b79de09aa6;hpb=0b38ba2ac1fe2fc44ee6b417235fdc0f42f65867;p=bertos.git diff --git a/bertos/cpu/types.h b/bertos/cpu/types.h index 3e56a360..dcddaa59 100644 --- a/bertos/cpu/types.h +++ b/bertos/cpu/types.h @@ -43,6 +43,7 @@ #include "detect.h" #include "attr.h" +#include #include /* for uintXX_t */ #if CPU_I196 @@ -84,15 +85,8 @@ typedef uint32_t cpu_stack_t; #define SIZEOF_CPUSTACK_T 4 - #if CPU_ARM - typedef uint64_t cpu_aligned_stack_t; - #define SIZEOF_CPUALIGNED_T 8 - #elif CPU_CM3 - typedef uint32_t cpu_aligned_stack_t; - #define SIZEOF_CPUALIGNED_T 4 - #else - #error CPU configuration error - #endif + typedef uint64_t cpu_aligned_stack_t; + #define SIZEOF_CPUALIGNED_T 8 #elif CPU_PPC @@ -127,6 +121,14 @@ #define SIZEOF_CPUSTACK_T 1 #define SIZEOF_CPUALIGNED_T SIZEOF_CPUSTACK_T +#elif CPU_MSP430 + + typedef uint16_t cpu_flags_t; + typedef uint16_t cpu_stack_t; + typedef cpu_stack_t cpu_aligned_stack_t; + #define SIZEOF_CPUSTACK_T 2 + #define SIZEOF_CPUALIGNED_T SIZEOF_CPUSTACK_T + #else #error No CPU_... defined. #endif @@ -240,4 +242,14 @@ STATIC_ASSERT(sizeof(cpu_stack_t) == SIZEOF_CPUSTACK_T); STATIC_ASSERT(sizeof(cpu_aligned_stack_t) == SIZEOF_CPUALIGNED_T); STATIC_ASSERT(sizeof(size_t) == SIZEOF_SIZE_T); + +/** + * Macros for hardware access, both direct and via the bit-band region. + */ +/*\{*/ +#define HWREG(x) (*((reg32_t *)(x))) +#define HWREGH(x) (*((reg16_t *)(x))) +#define HWREGB(x) (*((reg8_t *)(x))) +/*\}*/ + #endif /* CPU_TYPES_H */