Improved messages.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8707 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
Giovanni Di Sirio 2016-01-07 10:12:42 +00:00
parent 5fc0cb9764
commit 0c827780f0
7 changed files with 19 additions and 11 deletions

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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;
}
/**

View File

@ -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__)
/**

View File

@ -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);

View File

@ -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.