aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/rt/Doxyfile_chm2
-rw-r--r--doc/rt/Doxyfile_html2
-rw-r--r--os/rt/include/ch.h4
-rw-r--r--os/rt/include/chmsg.h4
-rw-r--r--os/rt/include/chschd.h10
-rw-r--r--os/rt/src/chmsg.c3
-rw-r--r--readme.txt5
7 files changed, 19 insertions, 11 deletions
diff --git a/doc/rt/Doxyfile_chm b/doc/rt/Doxyfile_chm
index 9c2dd78e4..fcabe40ba 100644
--- a/doc/rt/Doxyfile_chm
+++ b/doc/rt/Doxyfile_chm
@@ -38,7 +38,7 @@ PROJECT_NAME = ChibiOS/RT
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 3.1.0
+PROJECT_NUMBER = 3.2.0
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/doc/rt/Doxyfile_html b/doc/rt/Doxyfile_html
index 3b1bf1641..398d6eab1 100644
--- a/doc/rt/Doxyfile_html
+++ b/doc/rt/Doxyfile_html
@@ -38,7 +38,7 @@ PROJECT_NAME = ChibiOS/RT
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 3.1.0
+PROJECT_NUMBER = 3.2.0
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/os/rt/include/ch.h b/os/rt/include/ch.h
index 9794b6dcb..eb35eb944 100644
--- a/os/rt/include/ch.h
+++ b/os/rt/include/ch.h
@@ -48,7 +48,7 @@
/**
* @brief Kernel version string.
*/
-#define CH_KERNEL_VERSION "3.1.0"
+#define CH_KERNEL_VERSION "3.2.0"
/**
* @brief Kernel version major number.
@@ -58,7 +58,7 @@
/**
* @brief Kernel version minor number.
*/
-#define CH_KERNEL_MINOR 1
+#define CH_KERNEL_MINOR 2
/**
* @brief Kernel version patch number.
diff --git a/os/rt/include/chmsg.h b/os/rt/include/chmsg.h
index 61c117e75..cd4f99897 100644
--- a/os/rt/include/chmsg.h
+++ b/os/rt/include/chmsg.h
@@ -95,7 +95,9 @@ static inline bool chMsgIsPendingI(thread_t *tp) {
*/
static inline msg_t chMsgGet(thread_t *tp) {
- return tp->p_msg;
+ chDbgAssert(tp->p_state == CH_STATE_SNDMSG, "invalid state");
+
+ return tp->p_u.sentmsg;
}
/**
diff --git a/os/rt/include/chschd.h b/os/rt/include/chschd.h
index 5d9829d57..5c81fdf2d 100644
--- a/os/rt/include/chschd.h
+++ b/os/rt/include/chschd.h
@@ -276,6 +276,12 @@ struct ch_thread {
* state.
*/
thread_reference_t *wttrp;
+#if (CH_CFG_USE_MESSAGES == TRUE) || defined(__DOXYGEN__)
+ /**
+ * @brief Thread sent message.
+ */
+ msg_t sentmsg;
+#endif
#if (CH_CFG_USE_SEMAPHORES == TRUE) || defined(__DOXYGEN__)
/**
* @brief Pointer to a generic semaphore object.
@@ -314,10 +320,6 @@ struct ch_thread {
* @brief Messages queue.
*/
threads_queue_t p_msgqueue;
- /**
- * @brief Thread message.
- */
- msg_t p_msg;
#endif
#if (CH_CFG_USE_EVENTS == TRUE) || defined(__DOXYGEN__)
/**
diff --git a/os/rt/src/chmsg.c b/os/rt/src/chmsg.c
index 7b559e8ed..a4a646722 100644
--- a/os/rt/src/chmsg.c
+++ b/os/rt/src/chmsg.c
@@ -90,8 +90,7 @@ msg_t chMsgSend(thread_t *tp, msg_t msg) {
chDbgCheck(tp != NULL);
chSysLock();
- ctp->p_msg = msg;
- ctp->p_u.wtobjp = &tp->p_msgqueue;
+ ctp->p_u.sentmsg = msg;
msg_insert(ctp, &tp->p_msgqueue);
if (tp->p_state == CH_STATE_WTMSG) {
(void) chSchReadyI(tp);
diff --git a/readme.txt b/readme.txt
index 7d66aa04e..e5d5320e2 100644
--- a/readme.txt
+++ b/readme.txt
@@ -72,6 +72,11 @@
*** Releases and Change Log ***
*****************************************************************************
+*** RT 3.2.0 ***
+- OPT: Removed the p_msg field from the thread_t structure saving a
+ msg_t-sized field from the structure. Messages now use a new field
+ into the p_u union. Now synchnorous messages are even faster.
+
*** 16.1.0 ***
- RT: Added CodeWarrior compiler support to the e200 port.
- HAL: Added support for STM32F446.