aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--os/nil/ports/ARMCMx/nilcore.h1
-rw-r--r--os/rt/include/chvt.h9
-rw-r--r--os/rt/ports/ARMCMx/chcore.h34
-rw-r--r--os/rt/ports/ARMCMx/chcore_v6m.h19
-rw-r--r--os/rt/ports/ARMCMx/chcore_v7m.h19
-rw-r--r--os/rt/ports/ARMCMx/compilers/GCC/chtypes.h1
6 files changed, 36 insertions, 47 deletions
diff --git a/os/nil/ports/ARMCMx/nilcore.h b/os/nil/ports/ARMCMx/nilcore.h
index 9d0303e0a..2f32f3cc0 100644
--- a/os/nil/ports/ARMCMx/nilcore.h
+++ b/os/nil/ports/ARMCMx/nilcore.h
@@ -136,7 +136,6 @@ typedef uint64_t stkalign_t;
real declarations are inside the sub-headers being specific for the
sub-architectures.*/
#if defined(__DOXYGEN__)
-
/**
* @brief Interrupt saved context.
* @details This structure represents the stack frame saved during a
diff --git a/os/rt/include/chvt.h b/os/rt/include/chvt.h
index 712aff699..fa859e8fe 100644
--- a/os/rt/include/chvt.h
+++ b/os/rt/include/chvt.h
@@ -41,12 +41,17 @@
/* Derived constants and error checks. */
/*===========================================================================*/
+#if (CH_CFG_ST_RESOLUTION != 16) && (CH_CFG_ST_RESOLUTION != 32)
+#error "invalid CH_CFG_ST_RESOLUTION specified, must be 16 or 32"
+#endif
+
#if CH_CFG_ST_FREQUENCY <= 0
-#error "invalid CH_CFG_ST_FREQUENCY specified"
+#error "invalid CH_CFG_ST_FREQUENCY specified, must be greated than zero"
#endif
#if (CH_CFG_ST_TIMEDELTA < 0) || (CH_CFG_ST_TIMEDELTA == 1)
-#error "invalid CH_CFG_ST_TIMEDELTA specified"
+#error "invalid CH_CFG_ST_TIMEDELTA specified, must " \
+ "be zero or greater than one"
#endif
#if (CH_CFG_ST_TIMEDELTA > 0) && (CH_CFG_TIME_QUANTUM > 0)
diff --git a/os/rt/ports/ARMCMx/chcore.h b/os/rt/ports/ARMCMx/chcore.h
index de95d8c4d..91231505f 100644
--- a/os/rt/ports/ARMCMx/chcore.h
+++ b/os/rt/ports/ARMCMx/chcore.h
@@ -110,18 +110,32 @@
asm module.*/
#if !defined(_FROM_ASM_)
-/* The following declarations are there just for Doxygen documentation, the
- real declarations are inside the sub-headers being specific for the
- sub-architectures.*/
-#if defined(__DOXYGEN__)
/**
- * @brief Stack and memory alignment enforcement.
+ * @brief Type of system time.
+ */
+#if (CH_CFG_ST_RESOLUTION == 32) || defined(__DOXYGEN__)
+typedef uint32_t systime_t;
+#else
+typedef uint16_t systime_t;
+#endif
+
+/**
+ * @brief Type of a generic ARM register.
+ */
+typedef void *regarm_t;
+
+/**
+ * @brief Type of stack and memory alignment enforcement.
* @note In this architecture the stack alignment is enforced to 64 bits,
* 32 bits alignment is supported by hardware but deprecated by ARM,
* the implementation choice is to not offer the option.
*/
typedef uint64_t stkalign_t;
+/* The following declarations are there just for Doxygen documentation, the
+ real declarations are inside the sub-headers being specific for the
+ sub-architectures.*/
+#if defined(__DOXYGEN__)
/**
* @brief Interrupt saved context.
* @details This structure represents the stack frame saved during a
@@ -138,6 +152,16 @@ struct port_extctx {};
struct port_intctx {};
#endif /* defined(__DOXYGEN__) */
+/**
+ * @brief Platform dependent part of the @p thread_t structure.
+ * @details In this port the structure just holds a pointer to the
+ * @p port_intctx structure representing the stack pointer
+ * at context switch time.
+ */
+struct context {
+ struct port_intctx *r13;
+};
+
#endif /* !defined(_FROM_ASM_) */
/*===========================================================================*/
diff --git a/os/rt/ports/ARMCMx/chcore_v6m.h b/os/rt/ports/ARMCMx/chcore_v6m.h
index 7cba6df34..f0878171a 100644
--- a/os/rt/ports/ARMCMx/chcore_v6m.h
+++ b/os/rt/ports/ARMCMx/chcore_v6m.h
@@ -147,17 +147,9 @@
#if !defined(_FROM_ASM_)
-/**
- * @brief Generic ARM register.
- */
-typedef void *regarm_t;
-
/* The documentation of the following declarations is in chconf.h in order
to not have duplicated structure names into the documentation.*/
#if !defined(__DOXYGEN__)
-
-typedef uint64_t stkalign_t;
-
struct port_extctx {
regarm_t r0;
regarm_t r1;
@@ -180,19 +172,8 @@ struct port_intctx {
regarm_t r7;
regarm_t lr;
};
-
#endif /* !defined(__DOXYGEN__) */
-/**
- * @brief Platform dependent part of the @p thread_t structure.
- * @details In this port the structure just holds a pointer to the
- * @p port_intctx structure representing the stack pointer
- * at context switch time.
- */
-struct context {
- struct port_intctx *r13;
-};
-
/*===========================================================================*/
/* Module macros. */
/*===========================================================================*/
diff --git a/os/rt/ports/ARMCMx/chcore_v7m.h b/os/rt/ports/ARMCMx/chcore_v7m.h
index 3c5947557..c8856c33a 100644
--- a/os/rt/ports/ARMCMx/chcore_v7m.h
+++ b/os/rt/ports/ARMCMx/chcore_v7m.h
@@ -208,17 +208,9 @@
asm module.*/
#if !defined(_FROM_ASM_)
-/**
- * @brief Generic ARM register.
- */
-typedef void *regarm_t;
-
/* The documentation of the following declarations is in chconf.h in order
to not have duplicated structure names into the documentation.*/
#if !defined(__DOXYGEN__)
-
-typedef uint64_t stkalign_t;
-
struct port_extctx {
regarm_t r0;
regarm_t r1;
@@ -279,19 +271,8 @@ struct port_intctx {
regarm_t r11;
regarm_t lr;
};
-
#endif /* !defined(__DOXYGEN__) */
-/**
- * @brief Platform dependent part of the @p thread_t structure.
- * @details In this port the structure just holds a pointer to the
- * @p port_intctx structure representing the stack pointer
- * at context switch time.
- */
-struct context {
- struct port_intctx *r13;
-};
-
/*===========================================================================*/
/* Module macros. */
/*===========================================================================*/
diff --git a/os/rt/ports/ARMCMx/compilers/GCC/chtypes.h b/os/rt/ports/ARMCMx/compilers/GCC/chtypes.h
index e16e4379e..1cf45c99b 100644
--- a/os/rt/ports/ARMCMx/compilers/GCC/chtypes.h
+++ b/os/rt/ports/ARMCMx/compilers/GCC/chtypes.h
@@ -51,7 +51,6 @@
#endif
/** @} */
-typedef uint32_t systime_t; /**< System time. */
typedef uint32_t rtcnt_t; /**< Realtime counter. */
typedef uint64_t rttime_t; /**< Time accumulator. */
typedef uint32_t syssts_t; /**< System status word. */