From 5f2b47e17bbddd663b5237f3d235375f69f88d4f Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Tue, 17 Nov 2015 15:24:32 +0000 Subject: More CW stuff. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8506 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/rt/ports/e200/chcore.h | 3 + os/rt/ports/e200/compilers/CW/chtypes.h | 105 ++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 os/rt/ports/e200/compilers/CW/chtypes.h (limited to 'os/rt') diff --git a/os/rt/ports/e200/chcore.h b/os/rt/ports/e200/chcore.h index c12b615e9..56c30fb57 100644 --- a/os/rt/ports/e200/chcore.h +++ b/os/rt/ports/e200/chcore.h @@ -59,6 +59,9 @@ #if defined(__GNUC__) || defined(__DOXYGEN__) #define PORT_COMPILER_NAME "GCC " __VERSION__ +#elif defined(__CWCC__) +#define PORT_COMPILER_NAME "CW " __VERSION__ + #else #error "unsupported compiler" #endif diff --git a/os/rt/ports/e200/compilers/CW/chtypes.h b/os/rt/ports/e200/compilers/CW/chtypes.h new file mode 100644 index 000000000..b0a8de4e2 --- /dev/null +++ b/os/rt/ports/e200/compilers/CW/chtypes.h @@ -0,0 +1,105 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio. + + This file is part of ChibiOS. + + ChibiOS is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file e200/compilers/CW/chtypes.h + * @brief Power e200 port system types. + * + * @addtogroup PPC_CW_CORE + * @{ + */ + +#ifndef _CHTYPES_H_ +#define _CHTYPES_H_ + +#include +#include +#include + +/** + * @name Common constants + */ +/** + * @brief Generic 'false' boolean constant. + */ +#if !defined(FALSE) || defined(__DOXYGEN__) +#define FALSE 0 +#endif + +/** + * @brief Generic 'true' boolean constant. + */ +#if !defined(TRUE) || defined(__DOXYGEN__) +#define TRUE 1 +#endif +/** @} */ + +/** + * @name Derived generic types + * @{ + */ +typedef volatile int8_t vint8_t; /**< Volatile signed 8 bits. */ +typedef volatile uint8_t vuint8_t; /**< Volatile unsigned 8 bits. */ +typedef volatile int16_t vint16_t; /**< Volatile signed 16 bits. */ +typedef volatile uint16_t vuint16_t; /**< Volatile unsigned 16 bits. */ +typedef volatile int32_t vint32_t; /**< Volatile signed 32 bits. */ +typedef volatile uint32_t vuint32_t; /**< Volatile unsigned 32 bits. */ +/** @} */ + +/** + * @name Kernel types + * @{ + */ +typedef uint32_t rtcnt_t; /**< Realtime counter. */ +typedef uint64_t rttime_t; /**< Realtime accumulator. */ +typedef uint32_t syssts_t; /**< System status word. */ +typedef uint8_t tmode_t; /**< Thread flags. */ +typedef uint8_t tstate_t; /**< Thread state. */ +typedef uint8_t trefs_t; /**< Thread references counter. */ +typedef uint8_t tslices_t; /**< Thread time slices counter.*/ +typedef uint32_t tprio_t; /**< Thread priority. */ +typedef int32_t msg_t; /**< Inter-thread message. */ +typedef int32_t eventid_t; /**< Numeric event identifier. */ +typedef uint32_t eventmask_t; /**< Mask of event identifiers. */ +typedef uint32_t eventflags_t; /**< Mask of event flags. */ +typedef int32_t cnt_t; /**< Generic signed counter. */ +typedef uint32_t ucnt_t; /**< Generic unsigned counter. */ +/** @} */ + +/** + * @brief ROM constant modifier. + * @note It is set to use the "const" keyword in this port. + */ +#define ROMCONST const + +/** + * @brief Makes functions not inlineable. + * @note If the compiler does not support such attribute then the + * realtime counter precision could be degraded. + */ +#define NOINLINE __attribute__((noinline)) + +/** + * @brief Optimized thread function declaration macro. + */ +#define PORT_THD_FUNCTION(tname, arg) void tname(void *arg) + +#endif /* _CHTYPES_H_ */ + +/** @} */ -- cgit v1.2.3