diff --git a/examples/arm-cr/blinky_launchxl2-tms57012/qv/ti/targetConfigs/TMS570LS1224.ccxml b/examples/arm-cr/blinky_launchxl2-tms57012/qv/ti/targetConfigs/TMS570LS1224.ccxml deleted file mode 100644 index a9750db0..00000000 --- a/examples/arm-cr/blinky_launchxl2-tms57012/qv/ti/targetConfigs/TMS570LS1224.ccxml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/examples/arm-cr/blinky_launchxl2-tms57012/qv/ti/targetConfigs/readme.txt b/examples/arm-cr/blinky_launchxl2-tms57012/qv/ti/targetConfigs/readme.txt deleted file mode 100644 index af97b62d..00000000 --- a/examples/arm-cr/blinky_launchxl2-tms57012/qv/ti/targetConfigs/readme.txt +++ /dev/null @@ -1,9 +0,0 @@ -The 'targetConfigs' folder contains target-configuration (.ccxml) files, automatically generated based -on the device and connection settings specified in your project on the Properties > General page. - -Please note that in automatic target-configuration management, changes to the project's device and/or -connection settings will either modify an existing or generate a new target-configuration file. Thus, -if you manually edit these auto-generated files, you may need to re-apply your changes. Alternatively, -you may create your own target-configuration file for this project and manage it manually. You can -always switch back to automatic target-configuration management by checking the "Manage the project's -target-configuration automatically" checkbox on the project's Properties > General page. \ No newline at end of file diff --git a/examples/win32/qhsmtst/log.txt b/examples/win32/qhsmtst/log.txt index 9dca43de..fa20ae84 100644 --- a/examples/win32/qhsmtst/log.txt +++ b/examples/win32/qhsmtst/log.txt @@ -1,4 +1,4 @@ -QHsmTst example, QEP 5.4.2 +QHsmTst example, QEP 5.7.4 top-INIT;s-ENTRY;s2-ENTRY;s2-INIT;s21-ENTRY;s211-ENTRY; A:s21-A;s211-EXIT;s21-EXIT;s21-ENTRY;s21-INIT;s211-ENTRY; B:s21-B;s211-EXIT;s211-ENTRY; diff --git a/include/qep.h b/include/qep.h index c059e55d..05cbd41f 100644 --- a/include/qep.h +++ b/include/qep.h @@ -5,7 +5,7 @@ * @cond ****************************************************************************** * Last updated for version 5.7.4 -* Last updated on 2016-11-04 +* Last updated on 2016-11-02 * * Q u a n t u m L e a P s * --------------------------- @@ -356,7 +356,7 @@ QState QMsm_execTatbl_(QMsm * const me, QMTranActTable const *tatbl); /*! Tests if a given state is part of the current active state * configuration in a MSM. */ -bool QMsm_isInState(QMsm * const me, QMState const * const state); +bool QMsm_isInState(QMsm const * const me, QMState const * const state); /****************************************************************************/ /*! Hierarchical State Machine. */ diff --git a/include/qf.h b/include/qf.h index 8b4b0e33..0496c140 100644 --- a/include/qf.h +++ b/include/qf.h @@ -4,8 +4,8 @@ * @ingroup qf * @cond ****************************************************************************** -* Last updated for version 5.7.2 -* Last updated on 2016-09-23 +* Last updated for version 5.7.4 +* Last updated on 2016-11-02 * * Q u a n t u m L e a P s * --------------------------- @@ -642,7 +642,7 @@ bool QF_noTimeEvtsActiveX(uint_fast8_t const tickRate); void QF_add_(QMActive * const a); /*! Remove the active object from the framework. */ -void QF_remove_(QMActive const * const a); +void QF_remove_(QMActive * const a); /*! Obtain the minimum of free entries of the given event pool. */ uint_fast16_t QF_getPoolMin(uint_fast8_t const poolId); diff --git a/ports/lint/options.lnt b/ports/lint/options.lnt index c6ba06a8..ec895551 100644 --- a/ports/lint/options.lnt +++ b/ports/lint/options.lnt @@ -1,7 +1,7 @@ ////////////////////////////////////////////////////////////////////////////// // Product: PC-Lint 9.x option file for linting QP/C -// Last updated for version 5.7.2 -// Last updated on 2016-09-18 +// Last updated for version 5.7.4 +// Last updated on 2016-11-02 // // Q u a n t u m L e a P s // --------------------------- @@ -52,8 +52,6 @@ qpc.lnt // QP/C options -strong(AXJ) // Strong type checking // general --esym(715, me) // Info: Symbol 'me' not referenced --esym(818, me) // Info: Pointer 'me' could be pointing to const +e900 // prints a success message at the end // QEP diff --git a/ports/posix/qf_port.c b/ports/posix/qf_port.c index 1f9df4ed..26015ad8 100644 --- a/ports/posix/qf_port.c +++ b/ports/posix/qf_port.c @@ -4,8 +4,8 @@ * @ingroup ports * @cond ****************************************************************************** -* Last Updated for Version: 5.6.5 -* Date of the Last Update: 2016-06-08 +* Last Updated for Version: 5.7.4 +* Date of the Last Update: 2016-11-02 * * Q u a n t u m L e a P s * --------------------------- @@ -186,7 +186,7 @@ void QActive_start_(QActive * const me, uint_fast8_t prio, me->thread = (uint8_t)1; } /*..........................................................................*/ -void QActive_stop(QActive *me) { +void QActive_stop(QActive * const me) { me->thread = (uint8_t)0; /* stop the QActive thread loop */ } diff --git a/ports/ti-rtos/qf_port.c b/ports/ti-rtos/qf_port.c index a5e9aea0..bb5f8619 100644 --- a/ports/ti-rtos/qf_port.c +++ b/ports/ti-rtos/qf_port.c @@ -4,8 +4,8 @@ * @ingroup ports * @cond ****************************************************************************** -* Last Updated for Version: 5.7.3 -* Date of the Last Update: 2016-10-06 +* Last Updated for Version: 5.7.4 +* Date of the Last Update: 2016-11-02 * * Q u a n t u m L e a P s * --------------------------- @@ -122,7 +122,7 @@ static void swi_function(UArg arg0, UArg arg1) { /* TI-RTOS Swi signature */ } } /*..........................................................................*/ -void QActive_stop(QActive *me) { +void QActive_stop(QActive * const me) { QF_remove_(me); /* remove the AO from the framework */ } diff --git a/ports/ucos-ii/qf_port.c b/ports/ucos-ii/qf_port.c index 3837b8cf..c7485b02 100644 --- a/ports/ucos-ii/qf_port.c +++ b/ports/ucos-ii/qf_port.c @@ -4,8 +4,8 @@ * @ingroup ports * @cond ****************************************************************************** -* Last Updated for Version: 5.4.0 -* Date of the Last Update: 2015-04-08 +* Last Updated for Version: 5.7.4 +* Date of the Last Update: 2016-11-02 * * Q u a n t u m L e a P s * --------------------------- @@ -32,8 +32,8 @@ * along with this program. If not, see . * * Contact information: -* Web: www.state-machine.com -* Email: info@state-machine.com +* http://www.state-machine.com +* mailto:info@state-machine.com ****************************************************************************** * @endcond */ @@ -128,7 +128,7 @@ static void task_function(void *pdata) { /* uC/OS-II task signature */ OSTaskDel(OS_PRIO_SELF); /* make uC/OS-II forget about this task */ } /*..........................................................................*/ -void QActive_stop(QActive *me) { +void QActive_stop(QActive * const me) { INT8U err; me->thread = (uint32_t)0; /* stop the thread loop */ OSQDel(me->eQueue, OS_DEL_ALWAYS, &err); /* cleanup the queue */ diff --git a/source/qep_hsm.c b/source/qep_hsm.c index d48f6ae9..2ac44421 100644 --- a/source/qep_hsm.c +++ b/source/qep_hsm.c @@ -4,8 +4,8 @@ * @ingroup qep * @cond ****************************************************************************** -* Last updated for version 5.5.0 -* Last updated on 2015-09-04 +* Last updated for version 5.7.4 +* Last updated on 2016-11-02 * * Q u a n t u m L e a P s * --------------------------- @@ -260,8 +260,11 @@ void QHsm_dispatch_(QHsm * const me, QEvt const * const e) { QState r; QS_CRIT_STAT_ - /** @pre the state configuration must be stable */ - Q_REQUIRE_ID(400, t == me->temp.fun); + /** @pre the current state must be initialized and + * the state configuration must be stable + */ + Q_REQUIRE_ID(400, (t != Q_STATE_CAST(0)) + && (t == me->temp.fun)); QS_BEGIN_(QS_QEP_DISPATCH, QS_priv_.smObjFilter, me) QS_TIME_(); /* time stamp */ diff --git a/source/qep_msm.c b/source/qep_msm.c index 8243b3bd..6b578311 100644 --- a/source/qep_msm.c +++ b/source/qep_msm.c @@ -4,8 +4,8 @@ * @ingroup qep * @cond ****************************************************************************** -* Last updated for version 5.7.1 -* Last updated on 2016-09-20 +* Last updated for version 5.7.4 +* Last updated on 2016-11-02 * * Q u a n t u m L e a P s * --------------------------- @@ -519,7 +519,7 @@ static QState QMsm_enterHistory_(QMsm * const me, QMState const * const hist){ * * @returns 'true' if the MSM "is in" the @p state and 'false' otherwise */ -bool QMsm_isInState(QMsm * const me, QMState const * const state) { +bool QMsm_isInState(QMsm const * const me, QMState const * const state) { bool inState = false; /* assume that this MSM is not in 'state' */ QMState const *s; diff --git a/source/qf_act.c b/source/qf_act.c index f157e215..2785abf0 100644 --- a/source/qf_act.c +++ b/source/qf_act.c @@ -4,8 +4,8 @@ * @ingroup qf * @cond ****************************************************************************** -* Last updated for version 5.7.1 -* Last updated on 2016-09-17 +* Last updated for version 5.7.4 +* Last updated on 2016-11-02 * * Q u a n t u m L e a P s * --------------------------- @@ -106,7 +106,7 @@ void QF_add_(QMActive * const a) { * * @sa QF_add_() */ -void QF_remove_(QMActive const * const a) { +void QF_remove_(QMActive * const a) { uint_fast8_t p = a->prio; QF_CRIT_STAT_ @@ -121,6 +121,7 @@ void QF_remove_(QMActive const * const a) { QF_CRIT_ENTRY_(); QF_active_[p] = (QMActive *)0; /* free-up the priority level */ + a->super.state.obj = (QMState *)0; /* invalidate the state */ QS_BEGIN_NOCRIT_(QS_QF_ACTIVE_REMOVE, QS_priv_.aoObjFilter, a) QS_TIME_(); /* timestamp */ diff --git a/source/qk.c b/source/qk.c index 0126a970..cda38823 100644 --- a/source/qk.c +++ b/source/qk.c @@ -4,8 +4,8 @@ * @ingroup qk * @cond ****************************************************************************** -* Last updated for version 5.7.2 -* Last updated on 2016-09-26 +* Last updated for version 5.7.4 +* Last updated on 2016-11-02 * * Q u a n t u m L e a P s * --------------------------- @@ -203,7 +203,7 @@ void QActive_start_(QMActive * const me, uint_fast8_t prio, * @note By the time the AO calls QActive_stop(), it should have unsubscribed * from all events and no more events should be directly-posted to it. */ -void QActive_stop(QMActive *me) { +void QActive_stop(QMActive * const me) { QF_CRIT_STAT_ QF_CRIT_ENTRY_(); diff --git a/source/qxk.c b/source/qxk.c index 151de95b..298a2322 100644 --- a/source/qxk.c +++ b/source/qxk.c @@ -5,7 +5,7 @@ * @cond ****************************************************************************** * Last updated for version 5.7.4 -* Last updated on 2016-11-01 +* Last updated on 2016-11-02 * * Q u a n t u m L e a P s * --------------------------- @@ -216,7 +216,7 @@ void QActive_start_(QMActive * const me, uint_fast8_t prio, * @note By the time the AO calls QActive_stop(), it should have unsubscribed * from all events and no more events should be directly-posted to it. */ -void QActive_stop(QMActive *me) { +void QActive_stop(QMActive * const me) { QF_CRIT_STAT_ QF_CRIT_ENTRY_(); diff --git a/source/qxk_pkg.h b/source/qxk_pkg.h index 2326ff1c..7ab9f774 100644 --- a/source/qxk_pkg.h +++ b/source/qxk_pkg.h @@ -4,8 +4,8 @@ * @ingroup qxk * @cond ****************************************************************************** -* Last updated for version 5.7.2 -* Last updated on 2016-09-27 +* Last updated for version 5.7.4 +* Last updated on 2016-11-02 * * Q u a n t u m L e a P s * --------------------------- @@ -58,10 +58,10 @@ enum QXK_Timeouts { }; /*! internal functin to block (suspend) a given extended thread */ -void QXThread_block_(QXThread * const me); +void QXThread_block_(QXThread const * const me); /*! internal function to unblock (resume) a given extended thread. */ -void QXThread_unblock_(QXThread * const me); +void QXThread_unblock_(QXThread const * const me); /*! internal function to arm the private time event for a given thread. */ void QXThread_teArm_(QXThread * const me, @@ -70,7 +70,7 @@ void QXThread_teArm_(QXThread * const me, uint_fast8_t const tickRate); /*! internal function to disarm the private time event for a given thread. */ -bool QXThread_teDisarm_(QXThread * const me); +bool QXThread_teDisarm_(QXThread const * const me); #include "qf_pkg.h" /* QF package-scope interface */ diff --git a/source/qxk_xthr.c b/source/qxk_xthr.c index bf463fb0..2bd65671 100644 --- a/source/qxk_xthr.c +++ b/source/qxk_xthr.c @@ -5,7 +5,7 @@ * @cond ****************************************************************************** * Last updated for version 5.7.4 -* Last updated on 2016-11-01 +* Last updated on 2016-11-02 * * Q u a n t u m L e a P s * --------------------------- @@ -463,7 +463,7 @@ QEvt const *QXThread_queueGet(uint_fast16_t const nTicks, * @note * must be called from within a critical section */ -void QXThread_block_(QXThread * const me) { +void QXThread_block_(QXThread const * const me) { /*! @pre the thread holding the lock cannot block! */ Q_REQUIRE_ID(600, me->super.prio != QXK_attr_.lockPrio); QPSet_remove(&QXK_attr_.readySet, me->super.prio); @@ -478,7 +478,7 @@ void QXThread_block_(QXThread * const me) { * @note * must be called from within a critical section */ -void QXThread_unblock_(QXThread * const me) { +void QXThread_unblock_(QXThread const * const me) { QPSet_insert(&QXK_attr_.readySet, me->super.prio); if ((!QXK_ISR_CONTEXT_()) /* not inside ISR? */ && (QF_active_[0] != (QMActive *)0)) /* kernel started? */