mirror of
https://github.com/QuantumLeaps/qpc.git
synced 2025-01-14 06:43:19 +08:00
7.4.0-rc.3
This commit is contained in:
parent
d18627d1fb
commit
c284a04584
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
*.qms
|
||||
*.obj
|
||||
*.o
|
||||
*.d
|
||||
@ -33,7 +34,6 @@
|
||||
*.Debug
|
||||
*.Release
|
||||
*.bak
|
||||
.qpc
|
||||
version-*
|
||||
JLink*.*
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Any user of the QP/C real-time embedded framework
|
||||
qpc
|
||||
2024-12-31
|
||||
2025-12-31
|
||||
|
||||
Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
||||
@ -27,4 +27,4 @@ Plagiarizing this software to sidestep the license obligations is illegal.
|
||||
Contact information:
|
||||
<www.state-machine.com/licensing>
|
||||
<info@state-machine.com>
|
||||
#5B2B82CE252E0FB7975E7196F9141A16DD356860
|
||||
#BC89496843DE5343CECA990E1370BDD6F9ACDC56
|
@ -13,10 +13,10 @@ License, version 3 ("GPLv3"). It applies to the QP/C++ and QP-nano
|
||||
source code (the "QP Frameworks") that is distributed as part of the
|
||||
QP-Arduino Support Package.
|
||||
|
||||
When you use QP Frameworks inside your program, the QP Frameworks' code
|
||||
is combined with your code of the program. The purpose of this Exception
|
||||
is to allow non-GPL (including proprietary) programs to use, in this way,
|
||||
the QP Frameworks' code covered by this Exception.
|
||||
When you use QP/C++ or QP-nano Frameworks inside your program, the frameworks'
|
||||
code is combined with your code of the program. The purpose of this Exception
|
||||
is to allow non-GPL (including proprietary) programs to use, in this way, the
|
||||
QP Frameworks' code covered by this Exception.
|
||||
|
||||
0. Definitions.
|
||||
"QP Frameworks" are lightweight real-time embedded frameworks (RTEFs)
|
||||
|
@ -7,11 +7,10 @@ Copyright (c) 2005-2021 Quantum Leaps, LLC. <https://www.state-machine.com/>
|
||||
Everyone is permitted to copy and distribute verbatim copies of this
|
||||
license document, but changing it is not allowed.
|
||||
|
||||
This QP/C++ and QP-nano Framework Exception for Arduino ("Exception")
|
||||
This QP/C and QP/C++ Framework Exception for Raspberry Pi ("Exception")
|
||||
is an additional permission under section 7 of the GNU General Public
|
||||
License, version 3 ("GPLv3"). It applies to the QP/C++ and QP-nano
|
||||
source code (the "QP Frameworks") that is distributed as part of the
|
||||
QP-Arduino Support Package.
|
||||
License, version 3 ("GPLv3"). It applies to the QP/C and QP/C++ source
|
||||
code (the "QP Frameworks").
|
||||
|
||||
When you use QP Frameworks inside your program, the QP Frameworks' code
|
||||
is combined with your code of the program. The purpose of this Exception
|
||||
@ -24,23 +23,23 @@ as well as all supporting ports and examples, as distributed from:
|
||||
<https://www.state-machine.com> and
|
||||
<https://github.com/QuantumLeaps>
|
||||
|
||||
"Raspberry Pi" is a low cost, credit-card sized computer that is
|
||||
designed by the Raspberry Pi Foundation based in the UK and registered
|
||||
as UK educational charity under the number 1129409. For the purpose of
|
||||
this license, Raspberry Pi means only genuine Raspberry Pi computer
|
||||
bearing the Raspberry Pi logo, as described at
|
||||
"Raspberry Pi" is a low cost, credit-card sized computer that is designed
|
||||
by the Raspberry Pi Foundation based in the UK and registered as UK
|
||||
educational charity under the number 1129409. For the purpose of this
|
||||
license, Raspberry Pi means only genuine Raspberry Pi computer bearing
|
||||
the Raspberry Pi logo, as described at:
|
||||
<https://www.raspberrypi.com/trademark-rules>.
|
||||
|
||||
"Target Code" refers to output from any compiler and linker in
|
||||
executable form suitable for execution by Raspberry Pi.
|
||||
"Target Code" refers to output from any compiler and linker in executable
|
||||
form suitable for execution by Raspberry Pi.
|
||||
|
||||
|
||||
1. Grant of Additional Permission
|
||||
As a special Exception, the copyright holder of QP Frameworks gives you
|
||||
permission to propagate a work of Target Code formed by combining the QP
|
||||
Frameworks with your own source code without the requirement to expose
|
||||
your proprietary source code, provided that all Target Code will execute
|
||||
on a genuine Raspberry Pi computer(s).
|
||||
permission to propagate a work of Target Code formed by combining the
|
||||
QP/C or QP/C++ Frameworks with your own source code without the requirement
|
||||
to expose your propriatory source code, provided that all Target Code will
|
||||
execute on a genuine Raspberry Pi computer(s).
|
||||
|
||||
2. No Weakening of GPL
|
||||
The availability of this Exception does not imply any general
|
||||
|
@ -7,11 +7,10 @@ Copyright (c) 2005-2014 Quantum Leaps, LLC. <https://www.state-machine.com/>
|
||||
Everyone is permitted to copy and distribute verbatim copies of this
|
||||
license document, but changing it is not allowed.
|
||||
|
||||
This QP/C++ and QP-nano Framework Exception for Arduino ("Exception")
|
||||
This QP/C and QP/C++ Framework Exception for ARM mbed ("Exception")
|
||||
is an additional permission under section 7 of the GNU General Public
|
||||
License, version 3 ("GPLv3"). It applies to the QP/C++ and QP-nano
|
||||
source code (the "QP Frameworks") that is distributed as part of the
|
||||
QP-Arduino Support Package.
|
||||
License, version 3 ("GPLv3"). It applies to the QP/C and QP/C++ source
|
||||
code (the "QP Frameworks").
|
||||
|
||||
When you use QP Frameworks inside your program, the QP Frameworks' code
|
||||
is combined with your code of the program. The purpose of this Exception
|
||||
@ -24,16 +23,15 @@ as well as all supporting ports and examples, as distributed from:
|
||||
<https://www.state-machine.com> and
|
||||
<https://github.com/QuantumLeaps>
|
||||
|
||||
"mbed-Enabled Board" means any board with an ARM Cortex-M CPU that is
|
||||
listed on the official "mbed platforms" website
|
||||
<https://os.mbed.com/platforms>.
|
||||
"mbed-Enabled Board" means any board with an ARM Cortex-M CPU that is listed
|
||||
on the official "mbed platforms" website <https://os.mbed.com/platforms>.
|
||||
|
||||
|
||||
1. Grant of Additional Permission
|
||||
As a special Exception, the copyright holder of QP Frameworks gives you
|
||||
permission to propagate a work of Target Code formed by combining
|
||||
the QP Frameworks with your own source code without the requirement
|
||||
to expose your proprietary source code, provided that all Target Code will
|
||||
permission to propagate a work of Target Code formed by combining the
|
||||
QP/C or QP/C++ Frameworks with your own source code without the requirement
|
||||
to expose your propriatory source code, provided that all Target Code will
|
||||
execute on an "mbed-Enabled Board".
|
||||
|
||||
2. No Weakening of GPL
|
||||
|
2
examples
2
examples
@ -1 +1 @@
|
||||
Subproject commit 8912782f022cdf8ebf2528619d7d46af7fd4f097
|
||||
Subproject commit c2de401845b27784d4d9f5a9d6185f7b8d99add0
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${include::qequeue.h}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${include::qk.h}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${include::qmpool.h}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${include::qp.h}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -44,7 +44,7 @@
|
||||
#define QP_H_
|
||||
|
||||
//============================================================================
|
||||
#define QP_VERSION_STR "7.4.0-rc.1"
|
||||
#define QP_VERSION_STR "7.4.0-rc.3"
|
||||
#define QP_VERSION 740U
|
||||
#define QP_RELEASE 0x7092C3BBU
|
||||
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${include::qp_pkg.h}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${include::qpc.h}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
12
include/qs.h
12
include/qs.h
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${include::qs.h}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -159,9 +159,9 @@ enum QSpyPre {
|
||||
QS_ENUM_DICT, //!< enumeration dictionary entry
|
||||
|
||||
// [55] Additional QEP records
|
||||
QS_QEP_TRAN_HIST, //!< a tran to history was taken
|
||||
QS_QEP_TRAN_EP, //!< a tran to entry point into a submachine
|
||||
QS_QEP_TRAN_XP, //!< a tran to exit point out of a submachine
|
||||
QS_QEP_TRAN_HIST, //!< a tran. to history was taken
|
||||
QS_QEP_TRAN_EP, //!< a tran. to entry point into a submachine
|
||||
QS_QEP_TRAN_XP, //!< a tran. to exit point out of a submachine
|
||||
|
||||
// [58] Miscellaneous QS records (not maskable)
|
||||
QS_TEST_PAUSED, //!< test has been paused
|
||||
@ -774,7 +774,7 @@ uint32_t QS_getTestProbe_(QSpyFunPtr const api);
|
||||
|
||||
//${QS::QUTest-stub::QHsmDummy} ..............................................
|
||||
//! @class QHsmDummy
|
||||
//! @extends QHsm
|
||||
//! @extends QAsm
|
||||
typedef struct {
|
||||
// protected:
|
||||
QAsm super;
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${include::qs_dummy.h}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${include::qs_pkg.h}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${include::qsafe.h}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${include::qstamp.h}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${include::qv.h}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${include::qxk.h}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
@ -22,7 +22,7 @@
|
||||
// <www.state-machine.com/licensing>
|
||||
// <info@state-machine.com>
|
||||
//============================================================================
|
||||
//! @date Last updated on: 2024-06-11
|
||||
//! @date Last updated on: 2024-07-19
|
||||
//! @version Last updated for: @ref qpc_7_4_0
|
||||
//!
|
||||
//! @file
|
||||
@ -61,9 +61,47 @@ static struct timespec l_tick; // structure for the clock tick
|
||||
static int_t l_tickPrio; // priority of the ticker thread
|
||||
|
||||
#define NSEC_PER_SEC 1000000000L
|
||||
#define DEFAULT_TICKS_PER_SEC 100
|
||||
#define DEFAULT_TICKS_PER_SEC 100L
|
||||
|
||||
//============================================================================
|
||||
//----------------------------------------------------------------------------
|
||||
#ifdef __APPLE__
|
||||
|
||||
#define TIMER_ABSTIME 0
|
||||
|
||||
// emulate clock_nanosleep() for CLOCK_MONOTONIC and TIMER_ABSTIME
|
||||
static inline int clock_nanosleep(clockid_t clockid, int flags,
|
||||
const struct timespec* t,
|
||||
struct timespec* remain)
|
||||
{
|
||||
Q_UNUSED_PAR(clockid);
|
||||
Q_UNUSED_PAR(flags);
|
||||
Q_UNUSED_PAR(remain);
|
||||
|
||||
struct timespec ts_delta;
|
||||
clock_gettime(CLOCK_MONOTONIC, &ts_delta);
|
||||
|
||||
ts_delta.tv_sec = t->tv_sec - ts_delta.tv_sec;
|
||||
ts_delta.tv_nsec = t->tv_nsec - ts_delta.tv_nsec;
|
||||
if (ts_delta.tv_sec < 0) {
|
||||
ts_delta.tv_sec = 0;
|
||||
ts_delta.tv_nsec = 0;
|
||||
}
|
||||
else if (ts_delta.tv_nsec < 0) {
|
||||
if (ts_delta.tv_sec == 0) {
|
||||
ts_delta.tv_sec = 0;
|
||||
ts_delta.tv_nsec = 0;
|
||||
}
|
||||
else {
|
||||
ts_delta.tv_sec = ts_delta.tv_sec - 1;
|
||||
ts_delta.tv_nsec = ts_delta.tv_nsec + NSEC_PER_SEC;
|
||||
}
|
||||
}
|
||||
|
||||
return nanosleep(&ts_delta, NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static void *ticker_thread(void *arg); // prototype
|
||||
static void *ticker_thread(void *arg) { // for pthread_create()
|
||||
Q_UNUSED_PAR(arg);
|
||||
@ -91,7 +129,8 @@ static void *ticker_thread(void *arg) { // for pthread_create()
|
||||
if (clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME,
|
||||
&next_tick, NULL) == 0) // success?
|
||||
{
|
||||
QF_onClockTick(); // must call QTIMEEVT_TICK_X()
|
||||
// clock tick callback (must call QTIMEEVT_TICK_X())
|
||||
QF_onClockTick();
|
||||
}
|
||||
}
|
||||
return (void *)0; // return success
|
||||
@ -121,12 +160,12 @@ static int_t l_critSectNest; // critical section nesting up-down counter
|
||||
//............................................................................
|
||||
void QF_enterCriticalSection_(void) {
|
||||
pthread_mutex_lock(&l_critSectMutex_);
|
||||
Q_ASSERT_INCRIT(100, l_critSectNest == 0); // NO nesting of crit.sect!
|
||||
Q_ASSERT_INCRIT(101, l_critSectNest == 0); // NO nesting of crit.sect!
|
||||
++l_critSectNest;
|
||||
}
|
||||
//............................................................................
|
||||
void QF_leaveCriticalSection_(void) {
|
||||
Q_ASSERT_INCRIT(200, l_critSectNest == 1); // crit.sect. must ballace!
|
||||
Q_ASSERT_INCRIT(102, l_critSectNest == 1); // crit.sect. must balance!
|
||||
if ((--l_critSectNest) == 0) {
|
||||
pthread_mutex_unlock(&l_critSectMutex_);
|
||||
}
|
||||
@ -166,6 +205,7 @@ void QF_init(void) {
|
||||
|
||||
//............................................................................
|
||||
int QF_run(void) {
|
||||
l_isRunning = true; // QF is running
|
||||
|
||||
QF_onStartup(); // application-specific startup callback
|
||||
|
||||
@ -218,7 +258,6 @@ int QF_run(void) {
|
||||
QS_BEGIN_PRE_(QS_QF_RUN, 0U)
|
||||
QS_END_PRE_()
|
||||
|
||||
l_isRunning = true; // QF is running
|
||||
while (l_isRunning) {
|
||||
Q_ASSERT_INCRIT(300, QPSet_verify_(&QF_readySet_, &QF_readySet_dis_));
|
||||
|
||||
@ -233,8 +272,7 @@ int QF_run(void) {
|
||||
QF_CRIT_EXIT();
|
||||
|
||||
QEvt const *e = QActive_get_(a);
|
||||
// dispatch event (virtual call)
|
||||
(*a->super.vptr->dispatch)(&a->super, e, a->prio);
|
||||
QASM_DISPATCH(&a->super, e, a->prio); // dispatch to the HSM
|
||||
QF_gc(e);
|
||||
|
||||
QF_CRIT_ENTRY();
|
||||
@ -329,7 +367,6 @@ int QF_consoleWaitForKey(void) {
|
||||
#endif
|
||||
|
||||
// QActive functions =========================================================
|
||||
|
||||
void QActive_start_(QActive * const me, QPrioSpec const prioSpec,
|
||||
QEvt const * * const qSto, uint_fast16_t const qLen,
|
||||
void * const stkSto, uint_fast16_t const stkSize,
|
||||
@ -354,7 +391,6 @@ void QActive_start_(QActive * const me, QPrioSpec const prioSpec,
|
||||
(*me->super.vptr->init)(&me->super, par, me->prio);
|
||||
QS_FLUSH(); // flush the QS trace buffer to the host
|
||||
}
|
||||
|
||||
//............................................................................
|
||||
#ifdef QACTIVE_CAN_STOP
|
||||
void QActive_stop(QActive * const me) {
|
||||
|
@ -22,7 +22,7 @@
|
||||
// <www.state-machine.com>
|
||||
// <info@state-machine.com>
|
||||
//============================================================================
|
||||
//! @date Last updated on: 2024-06-11
|
||||
//! @date Last updated on: 2024-07-18
|
||||
//! @version Last updated for: @ref qpc_7_4_0
|
||||
//!
|
||||
//! @file
|
||||
@ -151,7 +151,7 @@ uint8_t QS_onStartup(void const *arg) {
|
||||
if (fcntl(l_sock, F_SETFL, status | O_NONBLOCK) != 0) {
|
||||
FPRINTF_S(stderr, "<TARGET> ERROR Failed to set non-blocking socket "
|
||||
"errno=%d\n", errno);
|
||||
QS_EXIT();
|
||||
QF_stop(); // <== stop and exit the application
|
||||
goto error;
|
||||
}
|
||||
|
||||
@ -177,7 +177,7 @@ void QS_onCleanup(void) {
|
||||
close(l_sock);
|
||||
l_sock = INVALID_SOCKET;
|
||||
}
|
||||
//PRINTF_S("<TARGET> Disconnected from QSPY\n");
|
||||
//PRINTF_S("%s\n", "<TARGET> Disconnected from QSPY");
|
||||
}
|
||||
//............................................................................
|
||||
void QS_onReset(void) {
|
||||
@ -232,7 +232,7 @@ void QS_onFlush(void) {
|
||||
//............................................................................
|
||||
QSTimeCtr QS_onGetTime(void) {
|
||||
struct timespec tspec;
|
||||
clock_gettime(CLOCK_MONOTONIC_RAW, &tspec);
|
||||
clock_gettime(CLOCK_MONOTONIC, &tspec);
|
||||
|
||||
// convert to units of 0.1 microsecond
|
||||
QSTimeCtr time = (QSTimeCtr)(tspec.tv_sec * 10000000 + tspec.tv_nsec / 100);
|
||||
|
@ -22,7 +22,7 @@
|
||||
// <www.state-machine.com/licensing>
|
||||
// <info@state-machine.com>
|
||||
//============================================================================
|
||||
//! @date Last updated on: 2024-06-11
|
||||
//! @date Last updated on: 2024-07-18
|
||||
//! @version Last updated for: @ref qpc_7_4_0
|
||||
//!
|
||||
//! @file
|
||||
@ -72,7 +72,46 @@ static void sigIntHandler(int dummy) {
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
#ifdef __APPLE__
|
||||
|
||||
#define TIMER_ABSTIME 0
|
||||
|
||||
// emulate clock_nanosleep() for CLOCK_MONOTONIC and TIMER_ABSTIME
|
||||
static inline int clock_nanosleep(clockid_t clockid, int flags,
|
||||
const struct timespec* t,
|
||||
struct timespec* remain)
|
||||
{
|
||||
Q_UNUSED_PAR(clockid);
|
||||
Q_UNUSED_PAR(flags);
|
||||
Q_UNUSED_PAR(remain);
|
||||
|
||||
struct timespec ts_delta;
|
||||
clock_gettime(CLOCK_MONOTONIC, &ts_delta);
|
||||
|
||||
ts_delta.tv_sec = t->tv_sec - ts_delta.tv_sec;
|
||||
ts_delta.tv_nsec = t->tv_nsec - ts_delta.tv_nsec;
|
||||
if (ts_delta.tv_sec < 0) {
|
||||
ts_delta.tv_sec = 0;
|
||||
ts_delta.tv_nsec = 0;
|
||||
}
|
||||
else if (ts_delta.tv_nsec < 0) {
|
||||
if (ts_delta.tv_sec == 0) {
|
||||
ts_delta.tv_sec = 0;
|
||||
ts_delta.tv_nsec = 0;
|
||||
}
|
||||
else {
|
||||
ts_delta.tv_sec = ts_delta.tv_sec - 1;
|
||||
ts_delta.tv_nsec = ts_delta.tv_nsec + NSEC_PER_SEC;
|
||||
}
|
||||
}
|
||||
|
||||
return nanosleep(&ts_delta, NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
//============================================================================
|
||||
// QF functions
|
||||
|
||||
// NOTE: initialize the critical section mutex as non-recursive,
|
||||
// but check that nesting of critical sections never occurs
|
||||
@ -83,12 +122,12 @@ int_t QF_critSectNest_;
|
||||
//............................................................................
|
||||
void QF_enterCriticalSection_(void) {
|
||||
pthread_mutex_lock(&QF_critSectMutex_);
|
||||
Q_ASSERT_INCRIT(100, QF_critSectNest_ == 0); // NO nesting of crit.sect!
|
||||
Q_ASSERT_INCRIT(101, QF_critSectNest_ == 0); // NO nesting of crit.sect!
|
||||
++QF_critSectNest_;
|
||||
}
|
||||
//............................................................................
|
||||
void QF_leaveCriticalSection_(void) {
|
||||
Q_ASSERT_INCRIT(200, QF_critSectNest_ == 1); // crit.sect. must ballace!
|
||||
Q_ASSERT_INCRIT(102, QF_critSectNest_ == 1); // crit.sect. must balance!
|
||||
if ((--QF_critSectNest_) == 0) {
|
||||
pthread_mutex_unlock(&QF_critSectMutex_);
|
||||
}
|
||||
@ -112,7 +151,7 @@ void QF_init(void) {
|
||||
}
|
||||
|
||||
l_tick.tv_sec = 0;
|
||||
l_tick.tv_nsec = NSEC_PER_SEC / DEFAULT_TICKS_PER_SEC; // default tick
|
||||
l_tick.tv_nsec = NSEC_PER_SEC / DEFAULT_TICKS_PER_SEC; // default rate
|
||||
l_tickPrio = sched_get_priority_min(SCHED_FIFO); // default ticker prio
|
||||
|
||||
// install the SIGINT (Ctrl-C) signal handler
|
||||
@ -167,10 +206,12 @@ int QF_run(void) {
|
||||
}
|
||||
|
||||
// sleep without drifting till next_time (absolute), see NOTE03
|
||||
(void)clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME,
|
||||
&next_tick, NULL);
|
||||
// clock tick callback (must call QTIMEEVT_TICK_X() once)
|
||||
QF_onClockTick();
|
||||
if (clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME,
|
||||
&next_tick, NULL) == 0) // success?
|
||||
{
|
||||
// clock tick callback (must call QTIMEEVT_TICK_X() once)
|
||||
QF_onClockTick();
|
||||
}
|
||||
}
|
||||
}
|
||||
else { // The provided system clock tick NOT configured
|
||||
|
@ -22,7 +22,7 @@
|
||||
// <www.state-machine.com>
|
||||
// <info@state-machine.com>
|
||||
//============================================================================
|
||||
//! @date Last updated on: 2024-06-11
|
||||
//! @date Last updated on: 2024-07-18
|
||||
//! @version Last updated for: @ref qpc_7_4_0
|
||||
//!
|
||||
//! @file
|
||||
@ -151,7 +151,7 @@ uint8_t QS_onStartup(void const *arg) {
|
||||
if (fcntl(l_sock, F_SETFL, status | O_NONBLOCK) != 0) {
|
||||
FPRINTF_S(stderr, "<TARGET> ERROR Failed to set non-blocking socket "
|
||||
"errno=%d\n", errno);
|
||||
QS_EXIT();
|
||||
QF_stop(); // <== stop and exit the application
|
||||
goto error;
|
||||
}
|
||||
|
||||
@ -232,7 +232,7 @@ void QS_onFlush(void) {
|
||||
//............................................................................
|
||||
QSTimeCtr QS_onGetTime(void) {
|
||||
struct timespec tspec;
|
||||
clock_gettime(CLOCK_MONOTONIC_RAW, &tspec);
|
||||
clock_gettime(CLOCK_MONOTONIC, &tspec);
|
||||
|
||||
// convert to units of 0.1 microsecond
|
||||
QSTimeCtr time = (QSTimeCtr)(tspec.tv_sec * 10000000 + tspec.tv_nsec / 100);
|
||||
|
@ -155,8 +155,7 @@ int QF_run(void) {
|
||||
QF_CRIT_EXIT();
|
||||
|
||||
QEvt const *e = QActive_get_(a);
|
||||
// dispatch event (virtual call)
|
||||
(*a->super.vptr->dispatch)(&a->super, e, a->prio);
|
||||
QASM_DISPATCH(&a->super, e, a->prio); // dispatch to the HSM
|
||||
QF_gc(e);
|
||||
|
||||
QF_CRIT_ENTRY();
|
||||
|
181
qpc.md5
181
qpc.md5
@ -1,181 +0,0 @@
|
||||
428e1fb89d8905aaa5fc80ebef1bb0fd *qpc.qm
|
||||
f71fdc0261b7d7e1693f7cf92b269fc0 *include/qequeue.h
|
||||
57b1efebccde23a26f9d11e822ec379f *include/qk.h
|
||||
807f80a7a39be52083010803f76b4f05 *include/qmpool.h
|
||||
b492f9909964e645db23a20da495c8e2 *include/qp.h
|
||||
e7b6c999b10d91f5c1adf1fde500e452 *include/qp_pkg.h
|
||||
01e5748669bf110cd91d0bbe8eb5b206 *include/qpc.h
|
||||
2f2ed281e63d5803738ab0c92a77171f *include/qs.h
|
||||
66f8bd1303a72346f52fbcccfd363586 *include/qs_dummy.h
|
||||
fad2d5ccd173e6374f4bce243709eef7 *include/qs_pkg.h
|
||||
f59bf88705afe5b0acc999f8b47a6745 *include/qsafe.h
|
||||
990a963045e6485091658b0eea0a9dbd *include/qstamp.h
|
||||
431c6e320c14f0b02dbc78e2d49f6431 *include/qv.h
|
||||
7845e9391f7a94311fd849da56abd8a1 *include/qxk.h
|
||||
a25152f319178420b5b5140ca51ea4ae *src/qf/CMakeLists.txt
|
||||
d6db193ebc951f705c383d01b5ef2ee3 *src/qf/qep_hsm.c
|
||||
95358d16fc2df768e95057c4400d141c *src/qf/qep_msm.c
|
||||
14e37e53c5e0aec72ab8f35f94c1b96d *src/qf/qf_act.c
|
||||
cbd76f4312137262c2fd3ec8a7836fea *src/qf/qf_actq.c
|
||||
858f4abf264ab69734b4df56b0bfa739 *src/qf/qf_defer.c
|
||||
d7bf54c7c065db78e2b9aea9dc972f13 *src/qf/qf_dyn.c
|
||||
276a142fc226625a51fe678ded9ca642 *src/qf/qf_mem.c
|
||||
e090893c0f33678c6bf267c637c6cb48 *src/qf/qf_ps.c
|
||||
5a1d0999864f48a688d34e9273868e8b *src/qf/qf_qact.c
|
||||
0025254525a7065b35dbb781187cd1e1 *src/qf/qf_qeq.c
|
||||
f9867335faa23f0b57c921c8882e7a52 *src/qf/qf_qmact.c
|
||||
d457172637ab14cf42f99071bc7b8e7a *src/qf/qf_time.c
|
||||
ccd28413fc3a093ca99b03854cf7439b *src/qk/CMakeLists.txt
|
||||
af0330a6f55fe4cffc70f27fa95baebc *src/qk/qk.c
|
||||
27c155798720d7fb3b2f9cc38e311393 *src/qs/CMakeLists.txt
|
||||
274720fa9a3b5015951b39a6159f6773 *src/qs/qs.c
|
||||
9091ffd15f7ec791076091bb17eec5fc *src/qs/qs_64bit.c
|
||||
730d9bea159722e5d2c225e01b5c7875 *src/qs/qs_fp.c
|
||||
60453f6d2b1f915e6e477cca68cb7fee *src/qs/qs_rx.c
|
||||
80a31dfc0e24839342fe193779401e7b *src/qs/qstamp.c
|
||||
9b60fe2d783f6cc18a9117e339b6ca5d *src/qs/qutest.c
|
||||
cf8fa24441cb9577288f73bdb4effbff *src/qv/CMakeLists.txt
|
||||
a428b106b6a95c80077a156ebe764622 *src/qv/qv.c
|
||||
3a9240f29676dea5ce3df8fed587ae52 *src/qxk/CMakeLists.txt
|
||||
a2ea8a8890449cf7686988c5e6631148 *src/qxk/qxk.c
|
||||
c098be23217a3aa757bc2e2d96ace49a *src/qxk/qxk_mutex.c
|
||||
214032bca5ddd45690cf3ca67f9f86c3 *src/qxk/qxk_sema.c
|
||||
c72e1cc89263ebda9462ca6fb8b04326 *src/qxk/qxk_xthr.c
|
||||
74f494c8854313253a4353f649e707ae *ports/lint-plus/au-barr.lnt
|
||||
2a8fea61bccbe5e8c7536a29f2ec8e98 *ports/lint-plus/au-ds.lnt
|
||||
115b283af0eeeae9fdbd91836710e228 *ports/lint-plus/au-misra4.lnt
|
||||
63418574679007d8ec13815cbff46f84 *ports/lint-plus/au-ql-c99.lnt
|
||||
be52f283a42b5b277097b5984181f204 *ports/lint-plus/options.lnt
|
||||
02803e47d485980bdabc4a5d271288bd *ports/lint-plus/ql-style.lnt
|
||||
77e3b47c56111ca18d91813c586fe126 *ports/lint-plus/qpc.lnt
|
||||
ecca2c20a6e0dc29a1f62aeb500ed165 *ports/lint-plus/std.lnt
|
||||
8f1b876266fb274386670d94d0ba0fa2 *ports/arm-cm/qk/armclang/qk_port.c
|
||||
5fcbb1d62dcc33ad8e0f38dfcf6f88a3 *ports/arm-cm/qk/armclang/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qk/armclang/qs_port.h
|
||||
ff973dd6492f060525805ba13d6ca02a *ports/arm-cm/qk/config/qp_config.h
|
||||
116b6f9ac224fe5d60f0bfe0f8a4f9f0 *ports/arm-cm/qk/gnu/qk_port.c
|
||||
12847297533c3226ccf66f189df8b4ca *ports/arm-cm/qk/gnu/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qk/gnu/qs_port.h
|
||||
ca7328d9e59618ce34a118d936e1b269 *ports/arm-cm/qk/iar/qk_port.c
|
||||
a5152099566e2b5f43787d67d5d86aef *ports/arm-cm/qk/iar/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qk/iar/qs_port.h
|
||||
a13c0887eb882d089ec5cb57c8f755ac *ports/arm-cm/qv/armclang/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qv/armclang/qs_port.h
|
||||
277f97c6a850930b54c02e83a99e9663 *ports/arm-cm/qv/armclang/qv_port.c
|
||||
247a4d37cdedb45f4819bf628d0d83cf *ports/arm-cm/qv/config/qp_config.h
|
||||
6213045e2390e7a59644f40e1aaa189c *ports/arm-cm/qv/gnu/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qv/gnu/qs_port.h
|
||||
1c87a822c4d802784342b58803261cdc *ports/arm-cm/qv/gnu/qv_port.c
|
||||
517ee111b0df9926e6ba3d30be5210ea *ports/arm-cm/qv/iar/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qv/iar/qs_port.h
|
||||
867217f77f0c6cdb0a82a964a7027510 *ports/arm-cm/qv/iar/qv_port.c
|
||||
40058ac0609321670e6e7816670e97af *ports/arm-cm/qxk/armclang/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qxk/armclang/qs_port.h
|
||||
bb7067859e7fec9e77684879a1cfae34 *ports/arm-cm/qxk/armclang/qxk_port.c
|
||||
16ef2e0af8dd350486f709b548d87c75 *ports/arm-cm/qxk/config/qp_config.h
|
||||
35ec850c15f42e2eab924d06bf2d4165 *ports/arm-cm/qxk/gnu/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qxk/gnu/qs_port.h
|
||||
068945110c5583a8b149930d9a446cc3 *ports/arm-cm/qxk/gnu/qxk_port.c
|
||||
9145c3ae665b20e224bd91406668754c *ports/arm-cm/qxk/iar/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qxk/iar/qs_port.h
|
||||
7745f5f6adfdd3813bc3d6a24e87aada *ports/arm-cm/qxk/iar/qxk_port.c
|
||||
b08b183d0275dbf6b55c46b94523a1a2 *ports/arm-cm/qutest/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qutest/qs_port.h
|
||||
1cc03f9c79b011da50d753018054dac1 *ports/arm-cr/qk/config/qp_config.h
|
||||
957f53c5d716ee9f88d4d8b7418f8757 *ports/arm-cr/qk/gnu/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cr/qk/gnu/qs_port.h
|
||||
6a6a54ca44b045c2977cfaf621d32836 *ports/arm-cr/qk/iar/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cr/qk/iar/qs_port.h
|
||||
7aab625aad16d5b55ab530a7f468e70b *ports/arm-cr/qk/ti/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cr/qk/ti/qs_port.h
|
||||
b91fd7d938880060e3914db32a1a7885 *ports/arm-cr/qv/gnu/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cr/qv/gnu/qs_port.h
|
||||
e7b34d68bbf61b9e5c1706c8c2e2b4d3 *ports/arm-cr/qv/iar/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cr/qv/iar/qs_port.h
|
||||
734d65377844b288a3e5dcc5200302b6 *ports/arm-cr/qv/ti/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cr/qv/ti/qs_port.h
|
||||
975c3375c8ca11093bc92dbfb7000eaa *ports/msp430/qk/qp_port.h
|
||||
abcdbdcac677ff605ee003ef1e08fb80 *ports/msp430/qk/qs_port.h
|
||||
3c7664e8ee8739bdd42bda3020ce5364 *ports/msp430/qv/qp_port.h
|
||||
abcdbdcac677ff605ee003ef1e08fb80 *ports/msp430/qv/qs_port.h
|
||||
07306e4b15b72b175365e26568ea6e3d *ports/msp430/qutest/qp_port.h
|
||||
abcdbdcac677ff605ee003ef1e08fb80 *ports/msp430/qutest/qs_port.h
|
||||
c2ed34e686a5ac9afe06026731247bf4 *ports/pic32/qk/xc32/qk_port.c
|
||||
e9dbc68a7233a4303a068b562be12049 *ports/pic32/qk/xc32/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/pic32/qk/xc32/qs_port.h
|
||||
ab9eacbab706ff105144eddecde681e0 *ports/pic32/qv/xc32/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/pic32/qv/xc32/qs_port.h
|
||||
33c16b6ecad7187219fc6195fbd566da *ports/pic32/qutest/xc32/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/pic32/qutest/xc32/qs_port.h
|
||||
7bd98101a1922e7dcf39107f2c07a7a4 *ports/config/qp_config.h
|
||||
d9a8f8c2b8ebdae309622841af4f80e7 *ports/embos/CMakeLists.txt
|
||||
287838f1571386f28c96de9f1bfd6cad *ports/embos/qf_port.c
|
||||
d5f7e75934bd283d4fa239afee096e78 *ports/embos/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/embos/qs_port.h
|
||||
9d19cdfdd9eb682d6de7847bd0900f5a *ports/freertos/CMakeLists.txt
|
||||
fe78898e3dbd64b18339adfc56c92826 *ports/freertos/qf_port.c
|
||||
672615c0e1e9daab9aec12c300682f58 *ports/freertos/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/freertos/qs_port.h
|
||||
04694f7224092a477cd4580aee7022fd *ports/threadx/CMakeLists.txt
|
||||
b3d52f613f1c1da008ae5412029af0da *ports/threadx/qf_port.c
|
||||
74570b4afbf0281af9638778781bda0b *ports/threadx/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/threadx/qs_port.h
|
||||
97dbc9c6b8b0c2b46499b9070688dd3c *ports/threadx/README.md
|
||||
eec27f333c2787b6f3fdca5dbdd573b2 *ports/uc-os2/CMakeLists.txt
|
||||
efff763f2b3a151b97cf6685599b0902 *ports/uc-os2/qf_port.c
|
||||
b9be2bca2c48d39a43e4b3d059376b6a *ports/uc-os2/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *ports/uc-os2/qs_port.h
|
||||
281f9d70e7fb90b4457bee33b544c460 *ports/qep-only/CMakeLists.txt
|
||||
6ce09e456ded120d13d73a92e022fa3d *ports/qep-only/qp_port.h
|
||||
f26311a1912e214477781255c7c71834 *ports/qep-only/safe_std.h
|
||||
4577c2c64f7dbb0c81d1e99f20984888 *ports/posix/CMakeLists.txt
|
||||
ca2e05b42962f7f6e052ffd8775871e3 *ports/posix/qf_port.c
|
||||
c1764d38614122b0a02a0172a21906d9 *ports/posix/qp_port.h
|
||||
ec516e1c355eb1812937f5efafa6d7bc *ports/posix/qs_port.c
|
||||
a6c1ccba363f62079a579cd71ceccfe8 *ports/posix/qs_port.h
|
||||
6690cf3899e6461ed7604dba13cf7520 *ports/posix/README.md
|
||||
f26311a1912e214477781255c7c71834 *ports/posix/safe_std.h
|
||||
c36532b0e4b1956d9113f6ced25fb47b *ports/posix-qv/CMakeLists.txt
|
||||
a846079b4b1c41d37399cbd1e2f55b5b *ports/posix-qv/qf_port.c
|
||||
46cd7f9bce31d6d519886f31f824fae0 *ports/posix-qv/qp_port.h
|
||||
3f783ea4de87adaa1e051c7b7bb0a091 *ports/posix-qv/qs_port.c
|
||||
a6c1ccba363f62079a579cd71ceccfe8 *ports/posix-qv/qs_port.h
|
||||
a39965a1d1c41b224c8f328c9e28999b *ports/posix-qv/README.md
|
||||
f26311a1912e214477781255c7c71834 *ports/posix-qv/safe_std.h
|
||||
51ca57651ed492278fd728d3b94aba4d *ports/posix-qutest/CMakeLists.txt
|
||||
b5e1013ec0e5220b4162387de10c9195 *ports/posix-qutest/qp_port.h
|
||||
a6c1ccba363f62079a579cd71ceccfe8 *ports/posix-qutest/qs_port.h
|
||||
209bf23f8e9b4f5e213f947e8379b476 *ports/posix-qutest/qutest_port.c
|
||||
f26311a1912e214477781255c7c71834 *ports/posix-qutest/safe_std.h
|
||||
5fa44dffb653cecb1d9ea41d154ce852 *ports/win32/CMakeLists.txt
|
||||
e1be9341bd19c34eb9be9df56a2491cc *ports/win32/qf_port.c
|
||||
dddd41fe592d8832b95179820de552d2 *ports/win32/qp_port.h
|
||||
f1eb6964f5ea37db0fa4ba6ca0ff3f02 *ports/win32/qs_port.c
|
||||
68809b0a38489524f2ed461e970a136c *ports/win32/qs_port.h
|
||||
635a4a93c62e4b3501c5e3371a08cd65 *ports/win32/qwin_gui.c
|
||||
a8f227294c6673a22b050e1165a911e3 *ports/win32/qwin_gui.h
|
||||
9af4450a3685e578e1774e5b707f6692 *ports/win32/README.md
|
||||
f26311a1912e214477781255c7c71834 *ports/win32/safe_std.h
|
||||
c28c6dd7ad5899389e556c8cc61692ce *ports/win32-qv/CMakeLists.txt
|
||||
58b63f82b35e14ff2ff1c2e913e743ea *ports/win32-qv/qf_port.c
|
||||
6e8a4ca279ced37f24ac45e4ff6d4157 *ports/win32-qv/qp_port.h
|
||||
f1eb6964f5ea37db0fa4ba6ca0ff3f02 *ports/win32-qv/qs_port.c
|
||||
68809b0a38489524f2ed461e970a136c *ports/win32-qv/qs_port.h
|
||||
c935dbe9f32dd4d0584d4b47bc734d19 *ports/win32-qv/qwin_gui.c
|
||||
37499e3a99c8c38d52d9b61be19319b7 *ports/win32-qv/qwin_gui.h
|
||||
4cb22092a4b28d1c1b2efc1e58900b99 *ports/win32-qv/README.md
|
||||
f26311a1912e214477781255c7c71834 *ports/win32-qv/safe_std.h
|
||||
f62276b6a322c8fffce657cdb4998ed7 *ports/win32-qutest/CMakeLists.txt
|
||||
7b72d04255c0da489b834dbf4bfaa599 *ports/win32-qutest/qp_port.h
|
||||
68809b0a38489524f2ed461e970a136c *ports/win32-qutest/qs_port.h
|
||||
d0dc53c6e37871ccfc69fe32467c97a7 *ports/win32-qutest/qutest_port.c
|
||||
faed3388f63c9ec3dca2a5c6cf808a95 *ports/win32-qutest/README.md
|
||||
f26311a1912e214477781255c7c71834 *ports/win32-qutest/safe_std.h
|
||||
2d72fa12f8a0c05bd23c0fc4fa41838c *zephyr/CMakeLists.txt
|
||||
1c41081d80b88d187161f56605d1ea64 *zephyr/Kconfig
|
||||
2140500a5b230057a2a6ed4b613f6353 *zephyr/module.yml
|
||||
ae448b93666db2dc14bb169a7d47b321 *zephyr/qf_port.c
|
||||
0076e0da63938ff838dd5736b6a309da *zephyr/qp-zephyr.jpg
|
||||
4332e3b86722b1ccfed1dd134889fcac *zephyr/qp_port.h
|
||||
d69a97a65c94b684ef56cef35faf73f0 *zephyr/qs_port.h
|
||||
ba08c605b0c369326884f9006464666f *zephyr/README.md
|
108
qpc.qm
108
qpc.qm
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<model version="6.1.1" links="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.state-machine.com/qm/qm.xsd">
|
||||
<model version="6.2.0" links="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.state-machine.com/qm/qm.xsd">
|
||||
<documentation>QP/C Real-Time Embedded Framework (RTEF)
|
||||
This model is used to generate the whole QP/C source code.
|
||||
|
||||
@ -25,7 +25,38 @@ Contact information:
|
||||
<www.state-machine.com/licensing>
|
||||
<info@state-machine.com></documentation>
|
||||
<!--${qpc}-->
|
||||
<framework name="qpc" license="LICENSES/LicenseRef-QL-dual.qlc"/>
|
||||
<framework name="qpc">
|
||||
<license name="LicenseRef-QL-dual">Any user of the QP/C real-time embedded framework
|
||||
qpc
|
||||
2025-12-31
|
||||
|
||||
Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
||||
Q u a n t u m L e a P s
|
||||
------------------------
|
||||
Modern Embedded Software
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial
|
||||
|
||||
This software is dual-licensed under the terms of the open source GNU
|
||||
General Public License version 3 (or any later version), or alternatively,
|
||||
under the terms of one of the closed source Quantum Leaps commercial
|
||||
licenses.
|
||||
|
||||
The terms of the open source GNU General Public License version 3
|
||||
can be found at: <www.gnu.org/licenses/gpl-3.0>
|
||||
|
||||
The terms of the closed source Quantum Leaps commercial licenses
|
||||
can be found at: <www.state-machine.com/licensing>
|
||||
|
||||
Redistributions in source code must retain this top-level comment block.
|
||||
Plagiarizing this software to sidestep the license obligations is illegal.
|
||||
|
||||
Contact information:
|
||||
<www.state-machine.com/licensing>
|
||||
<info@state-machine.com>
|
||||
#BC89496843DE5343CECA990E1370BDD6F9ACDC56</license>
|
||||
</framework>
|
||||
<!--${QP-FuSa}-->
|
||||
<package name="QP-FuSa" stereotype="0x05">
|
||||
<!--${QP-FuSa::enabled}-->
|
||||
@ -529,8 +560,8 @@ QF_CRIT_EXIT();
|
||||
|
||||
// drill down into the state hierarchy with initial transitions...
|
||||
do {
|
||||
QStateHandler path[QHSM_MAX_NEST_DEPTH_]; // tran entry path array
|
||||
int_fast8_t ip = 0; // tran entry path index
|
||||
QStateHandler path[QHSM_MAX_NEST_DEPTH_]; // tran. entry path array
|
||||
int_fast8_t ip = 0; // tran. entry path index
|
||||
|
||||
path[0] = me->temp.fun;
|
||||
(void)QHSM_RESERVED_EVT_(me->temp.fun, Q_EMPTY_SIG);
|
||||
@ -1225,7 +1256,7 @@ do {
|
||||
}
|
||||
// event unhandled and passed to a submachine superstate?
|
||||
else if (r == Q_RET_SUPER_SUB) {
|
||||
t = me->temp.obj; // current host state of the submachie
|
||||
t = me->temp.obj; // current host state of the submachine
|
||||
}
|
||||
else { // event unhandled due to a guard?
|
||||
QF_CRIT_ENTRY();
|
||||
@ -1247,7 +1278,7 @@ do {
|
||||
--lbound;
|
||||
} while ((t != (QMState *)0) && (lbound > 0));
|
||||
QF_CRIT_ENTRY();
|
||||
Q_ENSURE_INCRIT(310, lbound > 0);
|
||||
Q_ENSURE_INCRIT(320, lbound > 0);
|
||||
QF_CRIT_EXIT();
|
||||
|
||||
if (r >= Q_RET_TRAN) { // any kind of tran. taken?
|
||||
@ -1256,7 +1287,7 @@ if (r >= Q_RET_TRAN) { // any kind of tran. taken?
|
||||
|
||||
QF_CRIT_ENTRY();
|
||||
// the tran. source state must not be NULL
|
||||
Q_ASSERT_INCRIT(320, ts != (QMState *)0);
|
||||
Q_ASSERT_INCRIT(330, ts != (QMState *)0);
|
||||
QF_CRIT_EXIT();
|
||||
#endif // Q_SPY
|
||||
|
||||
@ -1318,8 +1349,8 @@ if (r >= Q_RET_TRAN) { // any kind of tran. taken?
|
||||
}
|
||||
else {
|
||||
QF_CRIT_ENTRY();
|
||||
// TRAN_XP must NOT be followed by any other tran type
|
||||
Q_ASSERT_INCRIT(330, r < Q_RET_TRAN);
|
||||
// TRAN_XP must NOT be followed by any other tran. type
|
||||
Q_ASSERT_INCRIT(350, r < Q_RET_TRAN);
|
||||
QF_CRIT_EXIT();
|
||||
}
|
||||
}
|
||||
@ -1329,7 +1360,7 @@ if (r >= Q_RET_TRAN) { // any kind of tran. taken?
|
||||
} while ((r >= Q_RET_TRAN) && (lbound > 0));
|
||||
|
||||
QF_CRIT_ENTRY();
|
||||
Q_ENSURE_INCRIT(320, lbound > 0);
|
||||
Q_ENSURE_INCRIT(360, lbound > 0);
|
||||
|
||||
QS_MEM_SYS();
|
||||
QS_BEGIN_PRE_(QS_QEP_TRAN, qsId)
|
||||
@ -1349,7 +1380,7 @@ if (r >= Q_RET_TRAN) { // any kind of tran. taken?
|
||||
else if (r == Q_RET_HANDLED) {
|
||||
QF_CRIT_ENTRY();
|
||||
// internal tran. source can't be NULL
|
||||
Q_ASSERT_INCRIT(340, t != (QMState *)0);
|
||||
Q_ASSERT_INCRIT(380, t != (QMState *)0);
|
||||
|
||||
QS_MEM_SYS();
|
||||
QS_BEGIN_PRE_(QS_QEP_INTERN_TRAN, qsId)
|
||||
@ -1365,6 +1396,9 @@ else if (r == Q_RET_HANDLED) {
|
||||
// event bubbled to the 'top' state?
|
||||
else if (t == (QMState *)0) {
|
||||
QS_CRIT_ENTRY();
|
||||
// current state can't be NULL
|
||||
Q_ASSERT_INCRIT(390, s != (QMState *)0);
|
||||
|
||||
QS_MEM_SYS();
|
||||
QS_BEGIN_PRE_(QS_QEP_IGNORED, qsId)
|
||||
QS_TIME_PRE_(); // time stamp
|
||||
@ -1488,7 +1522,7 @@ for (s = me->super.state.obj;
|
||||
}
|
||||
QF_CRIT_STAT
|
||||
QF_CRIT_ENTRY();
|
||||
Q_ENSURE_INCRIT(610, lbound > 0);
|
||||
Q_ENSURE_INCRIT(680, lbound > 0);
|
||||
QF_CRIT_EXIT();
|
||||
|
||||
if (!isFound) { // still not found?
|
||||
@ -1641,7 +1675,7 @@ for (; (s != ts) && (lbound > 0); --lbound) {
|
||||
if (s == (QMState *)0) { // reached the top of a submachine?
|
||||
s = me->temp.obj; // the superstate from QM_SM_EXIT()
|
||||
QF_CRIT_ENTRY();
|
||||
Q_ASSERT_INCRIT(810, s != (QMState *)0); // must be valid
|
||||
Q_ASSERT_INCRIT(880, s != (QMState *)0); // must be valid
|
||||
QF_CRIT_EXIT();
|
||||
}
|
||||
}
|
||||
@ -2432,7 +2466,7 @@ if (margin == QF_NO_MARGIN) {
|
||||
}
|
||||
else {
|
||||
status = false; // cannot post
|
||||
Q_ERROR_INCRIT(190); // must be able to post the event
|
||||
Q_ERROR_INCRIT(110); // must be able to post the event
|
||||
}
|
||||
}
|
||||
else if (nFree > (QEQueueCtr)margin) {
|
||||
@ -7570,9 +7604,9 @@ QF_CRIT_EXIT();</code>
|
||||
QS_ENUM_DICT, //!< enumeration dictionary entry
|
||||
|
||||
// [55] Additional QEP records
|
||||
QS_QEP_TRAN_HIST, //!< a tran to history was taken
|
||||
QS_QEP_TRAN_EP, //!< a tran to entry point into a submachine
|
||||
QS_QEP_TRAN_XP, //!< a tran to exit point out of a submachine
|
||||
QS_QEP_TRAN_HIST, //!< a tran. to history was taken
|
||||
QS_QEP_TRAN_EP, //!< a tran. to entry point into a submachine
|
||||
QS_QEP_TRAN_XP, //!< a tran. to exit point out of a submachine
|
||||
|
||||
// [58] Miscellaneous QS records (not maskable)
|
||||
QS_TEST_PAUSED, //!< test has been paused
|
||||
@ -8314,7 +8348,7 @@ QS_CRIT_EXIT();</code>
|
||||
<!--${QS::QUTest-stub::QHsmDummy}-->
|
||||
<class name="QHsmDummy" superclass="QEP::QAsm">
|
||||
<documentation>//! @class QHsmDummy
|
||||
//! @extends QHsm</documentation>
|
||||
//! @extends QAsm</documentation>
|
||||
<!--${QS::QUTest-stub::QHsmDummy::ctor}-->
|
||||
<operation name="ctor" type="void" visibility="0x00" properties="0x00">
|
||||
<documentation>//! @public @memberof QHsmDummy
|
||||
@ -9018,7 +9052,7 @@ $declare1 ${QP-FuSa}
|
||||
#define QP_H_
|
||||
|
||||
//============================================================================
|
||||
#define QP_VERSION_STR "7.4.0-rc.1"
|
||||
#define QP_VERSION_STR "7.4.0-rc.3"
|
||||
#define QP_VERSION 740U
|
||||
#define QP_RELEASE 0x7092C3BBU
|
||||
|
||||
@ -9951,12 +9985,6 @@ $define ${QEP::QP_versionStr[16]}
|
||||
|
||||
$define ${QEP::QEvt::reserved_[4]}
|
||||
|
||||
enum {
|
||||
// maximum depth of state nesting in a QHsm (including the top level),
|
||||
// must be >= 3
|
||||
QHSM_MAX_NEST_DEPTH_ = 6
|
||||
};
|
||||
|
||||
// helper macro to handle reserved event in an QHsm
|
||||
#define QHSM_RESERVED_EVT_(state_, sig_) \
|
||||
((*(state_))(me, &QEvt_reserved_[(sig_)]))
|
||||
@ -9985,6 +10013,12 @@ enum {
|
||||
|
||||
//! @endcond
|
||||
|
||||
enum {
|
||||
// maximum depth of state nesting in a QHsm (including the top level),
|
||||
// must be >= 3
|
||||
QHSM_MAX_NEST_DEPTH_ = 6
|
||||
};
|
||||
|
||||
$define ${QEP::QHsm}</text>
|
||||
</file>
|
||||
<!--${src::qf::qep_msm.c}-->
|
||||
@ -10005,17 +10039,6 @@ $define ${QEP::QHsm}</text>
|
||||
|
||||
Q_DEFINE_THIS_MODULE("qep_msm")
|
||||
|
||||
enum {
|
||||
// maximum depth of state nesting in a QMsm (including the top level)
|
||||
QMSM_MAX_NEST_DEPTH_ = 6,
|
||||
|
||||
// maximum length of transition-action array
|
||||
QMSM_MAX_TRAN_LENGTH_ = 3*QMSM_MAX_NEST_DEPTH_,
|
||||
|
||||
// maximum depth of entry levels in a MSM for tran. to history.
|
||||
QMSM_MAX_ENTRY_DEPTH_ = 4
|
||||
};
|
||||
|
||||
// top-state object for QMsm-style state machines
|
||||
static struct QMState const l_msm_top_s = {
|
||||
(struct QMState *)0,
|
||||
@ -10024,8 +10047,19 @@ static struct QMState const l_msm_top_s = {
|
||||
Q_ACTION_CAST(0),
|
||||
Q_ACTION_CAST(0)
|
||||
};
|
||||
|
||||
//! @endcond
|
||||
|
||||
enum {
|
||||
// maximum depth of state nesting in a QMsm (including the top level)
|
||||
QMSM_MAX_NEST_DEPTH_ = 8,
|
||||
|
||||
// maximum length of transition-action array
|
||||
QMSM_MAX_TRAN_LENGTH_ = 2*QMSM_MAX_NEST_DEPTH_,
|
||||
|
||||
// maximum depth of entry levels in a MSM for tran. to history
|
||||
QMSM_MAX_ENTRY_DEPTH_ = 4
|
||||
};
|
||||
|
||||
//============================================================================
|
||||
|
||||
$define ${QEP::QMsm}</text>
|
||||
|
174
qpc.sha1
Normal file
174
qpc.sha1
Normal file
@ -0,0 +1,174 @@
|
||||
bdb9fd45fa87fbd718a23f61188801136f8cfc38 *qpc.qm
|
||||
4905c5e1a7afeafb9b644ca8ff0c7bd8b6d956ec *include/qequeue.h
|
||||
80349c00631173d87bf4b98fddc7ccc417561d10 *include/qk.h
|
||||
f131ada80744965bc27f5d31c43ee8a5edac63fd *include/qmpool.h
|
||||
11476265c9b27c47b762163715d76cd481540de7 *include/qp.h
|
||||
a9e58ddcc2185a56d79cad7dc5f31f7e5f5c89a3 *include/qp_pkg.h
|
||||
cf4fef7f60ee125ac654ee64816a59caec8ffad1 *include/qpc.h
|
||||
d72b80d37040e1c428e38fba5a6880f76962a4f3 *include/qs.h
|
||||
815d4314cf8ff757d2dfe160b5f4689ee22729a3 *include/qs_dummy.h
|
||||
abb43eb6d5ae56106b137a284f024bc5a03b20e0 *include/qs_pkg.h
|
||||
68f55b6ffb4192d3a37508ddef694bef7e8adb2d *include/qsafe.h
|
||||
c7e98c8ea5989ddb53af1ed87283ebed2bf50c6d *include/qstamp.h
|
||||
4c6a9b6c757448bc3d838f1c293d07bbb76617d6 *include/qv.h
|
||||
0e9cdd8d3d572d176d3e0b16e26f7a569630a999 *include/qxk.h
|
||||
7f54a0933a9dc2fcaca475919fa0067667ed99ed *src/qf/CMakeLists.txt
|
||||
125ad159841f3290be4c1a1708641099101afc46 *src/qf/qep_hsm.c
|
||||
661562d0d073d0993bdb83c1e40b005386bcca2d *src/qf/qep_msm.c
|
||||
8e366a46d0e9fd5580ec1a052b9bf54d322409fb *src/qf/qf_act.c
|
||||
b2ef0d4ea8d62bab84ff674c9037db35609c35fd *src/qf/qf_actq.c
|
||||
8f1af64278e070f94a791bee8747eb2c8f8eaf42 *src/qf/qf_defer.c
|
||||
e8c4578918a78aa80639dc74e474ebf88983497b *src/qf/qf_dyn.c
|
||||
7bfaf319d2d84144c69942da765f728f47241597 *src/qf/qf_mem.c
|
||||
eab3084e49a9ac674f898a038c1c61e17b86db34 *src/qf/qf_ps.c
|
||||
5e2687fbbc2e5a4d9ea1c15eb146aa78144042b0 *src/qf/qf_qact.c
|
||||
5abf85ddb3b120fd148bdfbd662aa3578c01f993 *src/qf/qf_qeq.c
|
||||
c0265928351e6d891277d05aab1aeac20534c5a8 *src/qf/qf_qmact.c
|
||||
390f03c5899d3657066bb7335905f9e44793236d *src/qf/qf_time.c
|
||||
878a737efe234f40dc8c9374acc351e510b4da1e *src/qk/CMakeLists.txt
|
||||
cfb544f3cd73a76ef3656641b9a825f5b6957d39 *src/qk/qk.c
|
||||
4e7914a38bc70dc9032ed7e74e3b49b13a80112c *src/qs/CMakeLists.txt
|
||||
fd621e42816352285008e72ca0b714e8d3bb5bd3 *src/qs/qs.c
|
||||
96f2c2dee49009beeea2149c1ed71c8c53b6df01 *src/qs/qs_64bit.c
|
||||
9f4e31b2ab70d6003737832bdaecedfab10ba04b *src/qs/qs_fp.c
|
||||
fd1c77d97cfd166a377139553a85b635135ad566 *src/qs/qs_rx.c
|
||||
aed0252b6ee3637bdfef31767a85e626a72a8226 *src/qs/qstamp.c
|
||||
56769d24333885de20f31ea949add6370f8165fe *src/qs/qutest.c
|
||||
b1d2def9b8f6cde464170af7682ab0f01f4f40f6 *src/qv/CMakeLists.txt
|
||||
871301303bb8027f950800f9ed6d00544f3b98df *src/qv/qv.c
|
||||
4cb0461eeec92f5a2e0c5b8ec41da409c5958193 *src/qxk/CMakeLists.txt
|
||||
b1dd543516393d3c4cc3bb89446c56b7d5c331da *src/qxk/qxk.c
|
||||
a67a1aec687cb3f692dc5d49bec6e7460a38bbd0 *src/qxk/qxk_mutex.c
|
||||
81b8a5c73f7c918fecd6e67969c9f625d9db408f *src/qxk/qxk_sema.c
|
||||
abd65424ec87f9ad930f141bffd83d6ddeb619e5 *src/qxk/qxk_xthr.c
|
||||
96494a3063233afd366fa3b0662e5206e3fe1b03 *ports/lint-plus/au-barr.lnt
|
||||
4558a0e1e95b69c7de9820bca7df5344fde67008 *ports/lint-plus/au-ds.lnt
|
||||
b2a4134f9a46ba33adea43faafa0ea0d6c2dac22 *ports/lint-plus/au-misra4.lnt
|
||||
0e2fbbc6a6a53414919daf0ec89c2812e151165f *ports/lint-plus/au-ql-c99.lnt
|
||||
e09e52aca80043e1a3365756c8ccccf708289bde *ports/lint-plus/options.lnt
|
||||
9929081c14ef7784fed31a61d2d5676f6ba46cef *ports/lint-plus/ql-style.lnt
|
||||
697518fede974485d34ddcdc1819be1304a5ce0a *ports/lint-plus/qpc.lnt
|
||||
742acb5e8187254dc321b7c1a4b973d4af34775f *ports/lint-plus/std.lnt
|
||||
ed03ed27328a0a87a9f490dea797dfd9d8c00097 *ports/arm-cm/qk/armclang/qk_port.c
|
||||
466037f0da0fdd5124bd45bc4bb7dd0cee73a8f3 *ports/arm-cm/qk/armclang/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cm/qk/armclang/qs_port.h
|
||||
6efc7ba56de01629de2a7c64e04aa7fb18680eb1 *ports/arm-cm/qk/config/qp_config.h
|
||||
11168cb0b412aeed04a1b02f2cab8cd86184df6d *ports/arm-cm/qk/gnu/qk_port.c
|
||||
01992d44f4e14a593979f13db974f42edc84287d *ports/arm-cm/qk/gnu/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cm/qk/gnu/qs_port.h
|
||||
9d0345156894db34f0dca00bbe730bad30699d89 *ports/arm-cm/qk/iar/qk_port.c
|
||||
d54bbf1d649139c4096d93e32849fecd1a29ee04 *ports/arm-cm/qk/iar/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cm/qk/iar/qs_port.h
|
||||
da4b65d3ee3b1d02b7bdf5125492d93ec2f3546c *ports/arm-cm/qv/armclang/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cm/qv/armclang/qs_port.h
|
||||
95f317c5328aafb1396740a83514ed965c0d13c4 *ports/arm-cm/qv/armclang/qv_port.c
|
||||
80d697feff43f8bebaa1143e2ea316d4d064b802 *ports/arm-cm/qv/config/qp_config.h
|
||||
215d226380da844642f5e96ed0ebc6b9f6fd2bfc *ports/arm-cm/qv/gnu/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cm/qv/gnu/qs_port.h
|
||||
10084951ab49c6a632641b82d102dc0df44c9edd *ports/arm-cm/qv/gnu/qv_port.c
|
||||
08bb668de09851a81ad6b8d101e8116be638c638 *ports/arm-cm/qv/iar/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cm/qv/iar/qs_port.h
|
||||
d2d6726cfc560f9ed301bbb6b214991997daa107 *ports/arm-cm/qv/iar/qv_port.c
|
||||
6f54f449bad8f3263a25d2885ae2310c48eaf085 *ports/arm-cm/qxk/armclang/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cm/qxk/armclang/qs_port.h
|
||||
4aee8cf7691c7e628e67f0208d33c5b9e6bebf25 *ports/arm-cm/qxk/armclang/qxk_port.c
|
||||
0ac4f86f279638431bb7a12d8b3e8fb5bfd9ad33 *ports/arm-cm/qxk/config/qp_config.h
|
||||
36bb14cd9579ee7c4b074cdd921ec99cf408ea0c *ports/arm-cm/qxk/gnu/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cm/qxk/gnu/qs_port.h
|
||||
335abfde3ed62a37e67e30d2cbe1bce29f83b88e *ports/arm-cm/qxk/gnu/qxk_port.c
|
||||
02505aae407cdbdeb079eebfb5f73b96d2f492a2 *ports/arm-cm/qxk/iar/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cm/qxk/iar/qs_port.h
|
||||
3d83983a358cf7cb813490c556fec3c63ba8e1d9 *ports/arm-cm/qxk/iar/qxk_port.c
|
||||
f9da74ed234d38423c412dd831b4dcbd9a10c978 *ports/arm-cm/qutest/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cm/qutest/qs_port.h
|
||||
791a13c3bdf0646860b2e366acace9413f29a341 *ports/arm-cr/qk/config/qp_config.h
|
||||
4d79ce35280c25da8f61c90a371b24c9770c1e39 *ports/arm-cr/qk/gnu/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cr/qk/gnu/qs_port.h
|
||||
3fe18d672bb906d5be90efe6886a6d2de5f1ebcb *ports/arm-cr/qk/iar/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cr/qk/iar/qs_port.h
|
||||
45f2b8f6565d0d98a97058489cda04e16fce3102 *ports/arm-cr/qk/ti/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cr/qk/ti/qs_port.h
|
||||
9b9723802d3d2229af7cf810d2d94145679b2428 *ports/arm-cr/qv/gnu/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cr/qv/gnu/qs_port.h
|
||||
a1b7f30c8c2fa66951e8f5518a8c4c930466db49 *ports/arm-cr/qv/iar/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cr/qv/iar/qs_port.h
|
||||
d6389431a053fd6fc8f83b1585ecd628618eb5e6 *ports/arm-cr/qv/ti/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/arm-cr/qv/ti/qs_port.h
|
||||
0a37d137f3fea038fedd602b2ea1870114295a9b *ports/msp430/qk/qp_port.h
|
||||
7c5e810cf497ef306c2160a21e12bcd2fcd26583 *ports/msp430/qk/qs_port.h
|
||||
97b7170961a9ec6bef2eff12fb3c640d392bf22c *ports/msp430/qv/qp_port.h
|
||||
7c5e810cf497ef306c2160a21e12bcd2fcd26583 *ports/msp430/qv/qs_port.h
|
||||
4af1c8f956dda650dc16ea9041c834fa72b9d42d *ports/msp430/qutest/qp_port.h
|
||||
7c5e810cf497ef306c2160a21e12bcd2fcd26583 *ports/msp430/qutest/qs_port.h
|
||||
9d2c612b3954999eda20d12e13657e9205b8c972 *ports/config/qp_config.h
|
||||
2ee7f5594f6121705bbc57145175b5c5867e0070 *ports/embos/CMakeLists.txt
|
||||
9b20ade83535acbf74a35108c8cf2df77d096d58 *ports/embos/qf_port.c
|
||||
301919d0bdfe1b9bc12639f3394f59c4e43d0b66 *ports/embos/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/embos/qs_port.h
|
||||
e65838e1764bd6b4eb73025be1e8116ac28247b2 *ports/freertos/CMakeLists.txt
|
||||
0e08ab7821106a0071f961ff7f8e7ccc37b3120f *ports/freertos/qf_port.c
|
||||
c4cdfad6a99e8c121b034f74d4d23f2d2a333331 *ports/freertos/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/freertos/qs_port.h
|
||||
a01e1f6d49ce056ac4e130d54ae4724fda2ebf32 *ports/threadx/CMakeLists.txt
|
||||
6bef3e567eed70d429faacfa606f0c3be5e83cff *ports/threadx/qf_port.c
|
||||
6792ed70d78732ad942fb99cb55194eacb23df37 *ports/threadx/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/threadx/qs_port.h
|
||||
847cd324346d1d6c9c81422e99045442edcc7f64 *ports/threadx/README.md
|
||||
d9b6e1ca7a0215a3e141ae43970781d0f4d0d08f *ports/uc-os2/CMakeLists.txt
|
||||
237186c610bd911d960c5191efbfa84c33c0bbb1 *ports/uc-os2/qf_port.c
|
||||
284ad7ebeb68aedf94e2fabba81b3787e9978ad9 *ports/uc-os2/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *ports/uc-os2/qs_port.h
|
||||
4a5da9508e2012b2ca3943b87134163e558964cc *ports/qep-only/CMakeLists.txt
|
||||
1199ebd523ea4f24e1f7c43238018f64b923ff1d *ports/qep-only/qp_port.h
|
||||
5189dfad3fea0ccb2218958dd3657f4403674b5e *ports/qep-only/safe_std.h
|
||||
5d7914dfaf44a9c2552afdd5d8de4cfc3ebbc22a *ports/posix/CMakeLists.txt
|
||||
5cb05d8b04f897257261beb6ef9dffefd096556b *ports/posix/qf_port.c
|
||||
9e6f98ae930242a4889e1a257c5c20bdbf2e6aab *ports/posix/qp_port.h
|
||||
243f5fdf73141276dc8b90ec55c09e672d54c540 *ports/posix/qs_port.c
|
||||
a06f0f49fb35c21bb2c7df9b0cb66f7cff16c530 *ports/posix/qs_port.h
|
||||
6e33b2e5092d117f58c47b632c59420f382ac39f *ports/posix/README.md
|
||||
5189dfad3fea0ccb2218958dd3657f4403674b5e *ports/posix/safe_std.h
|
||||
039b1e4066eb7eeac3233070ad6aa2cd9f6d1c69 *ports/posix-qv/CMakeLists.txt
|
||||
e927b146bc21461c96a7db4e43e063f13730713c *ports/posix-qv/qf_port.c
|
||||
dbce975f56b71518ca29f8694a3f67f146f0762c *ports/posix-qv/qp_port.h
|
||||
243f5fdf73141276dc8b90ec55c09e672d54c540 *ports/posix-qv/qs_port.c
|
||||
a06f0f49fb35c21bb2c7df9b0cb66f7cff16c530 *ports/posix-qv/qs_port.h
|
||||
ab829eb3deed2bc84b3581610f1664777afd3841 *ports/posix-qv/README.md
|
||||
5189dfad3fea0ccb2218958dd3657f4403674b5e *ports/posix-qv/safe_std.h
|
||||
1ecb2095e8de486c8111a420b5511a4ea0cb097c *ports/posix-qutest/CMakeLists.txt
|
||||
5b6b5b3f6ee635c49920b177fd3ee66813d6ba35 *ports/posix-qutest/qp_port.h
|
||||
a06f0f49fb35c21bb2c7df9b0cb66f7cff16c530 *ports/posix-qutest/qs_port.h
|
||||
5fc17dbde9691cbebd18c04a6a4cde4789ad1d71 *ports/posix-qutest/qutest_port.c
|
||||
5189dfad3fea0ccb2218958dd3657f4403674b5e *ports/posix-qutest/safe_std.h
|
||||
cfea17ea9ab718e9e4f506e90c4b2fc8c1fea858 *ports/win32/CMakeLists.txt
|
||||
85106972ea7ee49588057f661fb5c8105d20edb5 *ports/win32/qf_port.c
|
||||
92e081241e4ce102193246ebe8f95879bd853c09 *ports/win32/qp_port.h
|
||||
eea30365b6b95a429cb1f1f17136df44d32e62ba *ports/win32/qs_port.c
|
||||
ff6375dabf341a7869781f82fd7eda32497c4069 *ports/win32/qs_port.h
|
||||
8d3500b2b8700f5aa925f7020631d7d1415bd028 *ports/win32/qwin_gui.c
|
||||
04f62b5f1812de29bfb0619af1fc04ec44256802 *ports/win32/qwin_gui.h
|
||||
3781ccdce31dea9d08493a801926eb278950786f *ports/win32/README.md
|
||||
5189dfad3fea0ccb2218958dd3657f4403674b5e *ports/win32/safe_std.h
|
||||
8d589868e287ceb185b4837064c80d4eed8e1a44 *ports/win32-qv/CMakeLists.txt
|
||||
5c7448e33f794ecd8459b30b96d53ee4cd51520c *ports/win32-qv/qf_port.c
|
||||
e58272e88511fb06aa77589dd9e39c04e5f3180f *ports/win32-qv/qp_port.h
|
||||
eea30365b6b95a429cb1f1f17136df44d32e62ba *ports/win32-qv/qs_port.c
|
||||
ff6375dabf341a7869781f82fd7eda32497c4069 *ports/win32-qv/qs_port.h
|
||||
77d78e462a3ac8fac9c75fd97720500ceb449664 *ports/win32-qv/qwin_gui.c
|
||||
be15234e51b8fe3c295ff644e84fbc1cfca89257 *ports/win32-qv/qwin_gui.h
|
||||
b57cec85e2fe5c261270f68acc3ae440802a62bd *ports/win32-qv/README.md
|
||||
5189dfad3fea0ccb2218958dd3657f4403674b5e *ports/win32-qv/safe_std.h
|
||||
a04f13d2d9f24ef71d95f997d87f8a3ba9862e45 *ports/win32-qutest/CMakeLists.txt
|
||||
eefe47fcb37f794b8d0c68fc6b3331ff78f20a33 *ports/win32-qutest/qp_port.h
|
||||
ff6375dabf341a7869781f82fd7eda32497c4069 *ports/win32-qutest/qs_port.h
|
||||
9b9499b5fc28a4e418f048867af33367b9b6f2e0 *ports/win32-qutest/qutest_port.c
|
||||
7319222937ebd55cb32e1e30abcbc38547419a5c *ports/win32-qutest/README.md
|
||||
5189dfad3fea0ccb2218958dd3657f4403674b5e *ports/win32-qutest/safe_std.h
|
||||
848a30efa3274ff30fb72059f926fe7963ab2321 *zephyr/CMakeLists.txt
|
||||
10764710e545dd4d2ce0ddf032711df7f9191937 *zephyr/Kconfig
|
||||
2eb2a922e18b4760a68151ebee1b6282d20b4692 *zephyr/module.yml
|
||||
0644ecb3cfe1d05837b375c5e236a36d294459d9 *zephyr/qf_port.c
|
||||
109c291df50110f185adc17bcdf8becc0a79346c *zephyr/qp-zephyr.jpg
|
||||
ee0f1921d5994717b112b2c933f3c2cc3d690d74 *zephyr/qp_port.h
|
||||
faf4df1db0c16caa5e84a303ad9a1ecaaa135b78 *zephyr/qs_port.h
|
||||
ab487299b61fea18e2926913048a4498b3bfa4b4 *zephyr/README.md
|
@ -1,16 +1,19 @@
|
||||
@setlocal
|
||||
|
||||
:: usage
|
||||
@echo Usage: qpc_md5 [gen]
|
||||
@echo Usage: qpc_sha1 [gen]
|
||||
@echo examples:
|
||||
@echo qpc_md5 : check the md5 sums in the file qpcp.md5
|
||||
@echo qpc_md5 gen : generate the md5 file qpcp.md5
|
||||
@echo qpc_sha1 : check the sha1 sums in the file qpcp.sha1
|
||||
@echo qpc_sha1 gen : generate the sha1 file qpcp.sha1
|
||||
@echo.
|
||||
|
||||
@if NOT "%1"=="gen" goto check
|
||||
@if NOT "%1"=="gen" (
|
||||
sha1sum --check --warn qpc.sha1
|
||||
goto end
|
||||
)
|
||||
|
||||
@echo generating qpcp.md5...
|
||||
@md5sum qpc.qm ^
|
||||
@echo generating qpc.sha1...
|
||||
@sha1sum qpc.qm ^
|
||||
include/* ^
|
||||
src/qf/* src/qk/* src/qs/* src/qv/* src/qxk/* ^
|
||||
ports/lint-plus/*.lnt ^
|
||||
@ -22,22 +25,17 @@
|
||||
ports/arm-cr/qk/gnu/* ports/arm-cr/qk/iar/* ports/arm-cr/qk/ti/* ^
|
||||
ports/arm-cr/qv/gnu/* ports/arm-cr/qv/iar/* ports/arm-cr/qv/ti/* ^
|
||||
ports/msp430/qk/* ports/msp430/qv/* ports/msp430/qutest/* ^
|
||||
ports/pic32/qk/xc32/* ports/pic32/qv/xc32/* ports/pic32/qutest/xc32/* ^
|
||||
ports/config/* ^
|
||||
ports/embos/* ^
|
||||
ports/freertos/* ^
|
||||
ports/threadx/* ^
|
||||
ports/uc-os2/* ^
|
||||
ports/qep-only/* ^
|
||||
ports/posix/* ports/posix-qv/* ports/posix-qutest/* ^
|
||||
ports/win32/* ports/win32-qv/* ports/win32-qutest/* ^
|
||||
ports/qep-only/* ^
|
||||
ports/posix/* ports/posix-qv/* ports/posix-qutest/* ^
|
||||
ports/win32/* ports/win32-qv/* ports/win32-qutest/* ^
|
||||
zephyr/* ^
|
||||
> qpc.md5
|
||||
> qpc.sha1
|
||||
@echo done
|
||||
@goto end
|
||||
|
||||
:check
|
||||
md5sum --check --warn qpc.md5
|
||||
|
||||
:end
|
||||
@endlocal
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qf::qep_hsm.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -55,11 +55,10 @@ Q_DEFINE_THIS_MODULE("qep_hsm")
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QEP::QP_versionStr[16]} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QEP::QP_versionStr[16]} ..................................................
|
||||
@ -79,12 +78,6 @@ QEvt const QEvt_reserved_[4] = {
|
||||
|
||||
//$enddef${QEP::QEvt::reserved_[4]} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
enum {
|
||||
// maximum depth of state nesting in a QHsm (including the top level),
|
||||
// must be >= 3
|
||||
QHSM_MAX_NEST_DEPTH_ = 6
|
||||
};
|
||||
|
||||
// helper macro to handle reserved event in an QHsm
|
||||
#define QHSM_RESERVED_EVT_(state_, sig_) \
|
||||
((*(state_))(me, &QEvt_reserved_[(sig_)]))
|
||||
@ -113,6 +106,12 @@ enum {
|
||||
|
||||
//! @endcond
|
||||
|
||||
enum {
|
||||
// maximum depth of state nesting in a QHsm (including the top level),
|
||||
// must be >= 3
|
||||
QHSM_MAX_NEST_DEPTH_ = 6
|
||||
};
|
||||
|
||||
//$define${QEP::QHsm} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QEP::QHsm} ...............................................................
|
||||
@ -189,8 +188,8 @@ void QHsm_init_(
|
||||
|
||||
// drill down into the state hierarchy with initial transitions...
|
||||
do {
|
||||
QStateHandler path[QHSM_MAX_NEST_DEPTH_]; // tran entry path array
|
||||
int_fast8_t ip = 0; // tran entry path index
|
||||
QStateHandler path[QHSM_MAX_NEST_DEPTH_]; // tran. entry path array
|
||||
int_fast8_t ip = 0; // tran. entry path index
|
||||
|
||||
path[0] = me->temp.fun;
|
||||
(void)QHSM_RESERVED_EVT_(me->temp.fun, Q_EMPTY_SIG);
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qf::qep_msm.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -56,17 +56,6 @@
|
||||
|
||||
Q_DEFINE_THIS_MODULE("qep_msm")
|
||||
|
||||
enum {
|
||||
// maximum depth of state nesting in a QMsm (including the top level)
|
||||
QMSM_MAX_NEST_DEPTH_ = 6,
|
||||
|
||||
// maximum length of transition-action array
|
||||
QMSM_MAX_TRAN_LENGTH_ = 3*QMSM_MAX_NEST_DEPTH_,
|
||||
|
||||
// maximum depth of entry levels in a MSM for tran. to history.
|
||||
QMSM_MAX_ENTRY_DEPTH_ = 4
|
||||
};
|
||||
|
||||
// top-state object for QMsm-style state machines
|
||||
static struct QMState const l_msm_top_s = {
|
||||
(struct QMState *)0,
|
||||
@ -75,17 +64,27 @@ static struct QMState const l_msm_top_s = {
|
||||
Q_ACTION_CAST(0),
|
||||
Q_ACTION_CAST(0)
|
||||
};
|
||||
|
||||
//! @endcond
|
||||
|
||||
enum {
|
||||
// maximum depth of state nesting in a QMsm (including the top level)
|
||||
QMSM_MAX_NEST_DEPTH_ = 8,
|
||||
|
||||
// maximum length of transition-action array
|
||||
QMSM_MAX_TRAN_LENGTH_ = 2*QMSM_MAX_NEST_DEPTH_,
|
||||
|
||||
// maximum depth of entry levels in a MSM for tran. to history
|
||||
QMSM_MAX_ENTRY_DEPTH_ = 4
|
||||
};
|
||||
|
||||
//============================================================================
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QEP::QMsm} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QEP::QMsm} ...............................................................
|
||||
@ -220,7 +219,7 @@ void QMsm_dispatch_(
|
||||
}
|
||||
// event unhandled and passed to a submachine superstate?
|
||||
else if (r == Q_RET_SUPER_SUB) {
|
||||
t = me->temp.obj; // current host state of the submachie
|
||||
t = me->temp.obj; // current host state of the submachine
|
||||
}
|
||||
else { // event unhandled due to a guard?
|
||||
QF_CRIT_ENTRY();
|
||||
@ -242,7 +241,7 @@ void QMsm_dispatch_(
|
||||
--lbound;
|
||||
} while ((t != (QMState *)0) && (lbound > 0));
|
||||
QF_CRIT_ENTRY();
|
||||
Q_ENSURE_INCRIT(310, lbound > 0);
|
||||
Q_ENSURE_INCRIT(320, lbound > 0);
|
||||
QF_CRIT_EXIT();
|
||||
|
||||
if (r >= Q_RET_TRAN) { // any kind of tran. taken?
|
||||
@ -251,7 +250,7 @@ void QMsm_dispatch_(
|
||||
|
||||
QF_CRIT_ENTRY();
|
||||
// the tran. source state must not be NULL
|
||||
Q_ASSERT_INCRIT(320, ts != (QMState *)0);
|
||||
Q_ASSERT_INCRIT(330, ts != (QMState *)0);
|
||||
QF_CRIT_EXIT();
|
||||
#endif // Q_SPY
|
||||
|
||||
@ -313,8 +312,8 @@ void QMsm_dispatch_(
|
||||
}
|
||||
else {
|
||||
QF_CRIT_ENTRY();
|
||||
// TRAN_XP must NOT be followed by any other tran type
|
||||
Q_ASSERT_INCRIT(330, r < Q_RET_TRAN);
|
||||
// TRAN_XP must NOT be followed by any other tran. type
|
||||
Q_ASSERT_INCRIT(350, r < Q_RET_TRAN);
|
||||
QF_CRIT_EXIT();
|
||||
}
|
||||
}
|
||||
@ -324,7 +323,7 @@ void QMsm_dispatch_(
|
||||
} while ((r >= Q_RET_TRAN) && (lbound > 0));
|
||||
|
||||
QF_CRIT_ENTRY();
|
||||
Q_ENSURE_INCRIT(320, lbound > 0);
|
||||
Q_ENSURE_INCRIT(360, lbound > 0);
|
||||
|
||||
QS_MEM_SYS();
|
||||
QS_BEGIN_PRE_(QS_QEP_TRAN, qsId)
|
||||
@ -344,7 +343,7 @@ void QMsm_dispatch_(
|
||||
else if (r == Q_RET_HANDLED) {
|
||||
QF_CRIT_ENTRY();
|
||||
// internal tran. source can't be NULL
|
||||
Q_ASSERT_INCRIT(340, t != (QMState *)0);
|
||||
Q_ASSERT_INCRIT(380, t != (QMState *)0);
|
||||
|
||||
QS_MEM_SYS();
|
||||
QS_BEGIN_PRE_(QS_QEP_INTERN_TRAN, qsId)
|
||||
@ -360,6 +359,9 @@ void QMsm_dispatch_(
|
||||
// event bubbled to the 'top' state?
|
||||
else if (t == (QMState *)0) {
|
||||
QS_CRIT_ENTRY();
|
||||
// current state can't be NULL
|
||||
Q_ASSERT_INCRIT(390, s != (QMState *)0);
|
||||
|
||||
QS_MEM_SYS();
|
||||
QS_BEGIN_PRE_(QS_QEP_IGNORED, qsId)
|
||||
QS_TIME_PRE_(); // time stamp
|
||||
@ -460,7 +462,7 @@ QMState const * QMsm_childStateObj(QMsm const * const me,
|
||||
}
|
||||
QF_CRIT_STAT
|
||||
QF_CRIT_ENTRY();
|
||||
Q_ENSURE_INCRIT(610, lbound > 0);
|
||||
Q_ENSURE_INCRIT(680, lbound > 0);
|
||||
QF_CRIT_EXIT();
|
||||
|
||||
if (!isFound) { // still not found?
|
||||
@ -606,7 +608,7 @@ void QMsm_exitToTranSource_(
|
||||
if (s == (QMState *)0) { // reached the top of a submachine?
|
||||
s = me->temp.obj; // the superstate from QM_SM_EXIT()
|
||||
QF_CRIT_ENTRY();
|
||||
Q_ASSERT_INCRIT(810, s != (QMState *)0); // must be valid
|
||||
Q_ASSERT_INCRIT(880, s != (QMState *)0); // must be valid
|
||||
QF_CRIT_EXIT();
|
||||
}
|
||||
}
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qf::qf_act.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -55,11 +55,10 @@
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QF::QActive::registry_[QF_MAX_ACTIVE + 1U]} vvvvvvvvvvvvvvvvvvvvvvv
|
||||
//! @static @private @memberof QActive
|
||||
QActive * QActive_registry_[QF_MAX_ACTIVE + 1U];
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qf::qf_actq.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -56,11 +56,10 @@ Q_DEFINE_THIS_MODULE("qf_actq")
|
||||
//============================================================================
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QF::QActive::post_} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QF::QActive::post_} ......................................................
|
||||
@ -108,7 +107,7 @@ bool QActive_post_(QActive * const me,
|
||||
}
|
||||
else {
|
||||
status = false; // cannot post
|
||||
Q_ERROR_INCRIT(190); // must be able to post the event
|
||||
Q_ERROR_INCRIT(110); // must be able to post the event
|
||||
}
|
||||
}
|
||||
else if (nFree > (QEQueueCtr)margin) {
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qf::qf_defer.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -55,11 +55,10 @@ Q_DEFINE_THIS_MODULE("qf_defer")
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QF::QActive::defer} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QF::QActive::defer} ......................................................
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qf::qf_dyn.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -57,11 +57,10 @@ Q_DEFINE_THIS_MODULE("qf_dyn")
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QF::QF-dyn} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QF::QF-dyn::poolInit} ....................................................
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qf::qf_mem.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -55,11 +55,10 @@ Q_DEFINE_THIS_MODULE("qf_mem")
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QF::QMPool} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QF::QMPool} ..............................................................
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qf::qf_ps.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -55,11 +55,10 @@ Q_DEFINE_THIS_MODULE("qf_ps")
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QF::QActive::subscrList_} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
QSubscrList * QActive_subscrList_;
|
||||
//$enddef${QF::QActive::subscrList_} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qf::qf_qact.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -55,11 +55,10 @@ Q_DEFINE_THIS_MODULE("qf_qact")
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QF::QActive::ctor} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QF::QActive::ctor} .......................................................
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qf::qf_qeq.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -55,11 +55,10 @@ Q_DEFINE_THIS_MODULE("qf_qeq")
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QF::QEQueue} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QF::QEQueue} .............................................................
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qf::qf_qmact.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -55,11 +55,10 @@
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QF::QMActive} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QF::QMActive} ............................................................
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qf::qf_time.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -55,11 +55,10 @@ Q_DEFINE_THIS_MODULE("qf_time")
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QF::QTimeEvt} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QF::QTimeEvt} ............................................................
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qk::qk.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -60,11 +60,10 @@ Q_DEFINE_THIS_MODULE("qk")
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QK::QK-base} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QK::QK-base::priv_} ......................................................
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qs::qs.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -54,11 +54,10 @@ Q_ASSERT_STATIC((enum_t)QS_PRE_MAX <= (enum_t)QS_USER);
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QS::QS-TX} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QS::QS-TX::initBuf} ......................................................
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qs::qs_64bit.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qs::qs_fp.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qs::qs_rx.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -122,11 +122,10 @@ QS_RxAttr QS_rxPriv_;
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QS::QS-RX} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QS::QS-RX::rxInitBuf} ....................................................
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qs::qstamp.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qs::qutest.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -54,11 +54,10 @@
|
||||
// QUTest unit testing harness
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QS::QUTest} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
//$enddef${QS::QUTest} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qv::qv.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -60,11 +60,10 @@ Q_DEFINE_THIS_MODULE("qv")
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QV::QV-base} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QV::QV-base::priv_} ......................................................
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qxk::qxk.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -60,11 +60,10 @@ Q_DEFINE_THIS_MODULE("qxk")
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QXK::QXK-base} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QXK::QXK-base::priv_} ....................................................
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qxk::qxk_mutex.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -60,11 +60,10 @@ Q_DEFINE_THIS_MODULE("qxk_mutex")
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QXK::QXMutex} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QXK::QXMutex} ............................................................
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qxk::qxk_sema.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -60,11 +60,10 @@ Q_DEFINE_THIS_MODULE("qxk_sema")
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QXK::QXSemaphore} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QXK::QXSemaphore} ........................................................
|
||||
|
@ -3,14 +3,14 @@
|
||||
// Model: qpc.qm
|
||||
// File: ${src::qxk::qxk_xthr.c}
|
||||
//
|
||||
// This code has been generated by QM 6.1.1 <www.state-machine.com/qm>.
|
||||
// This code has been generated by QM 6.2.0 <www.state-machine.com/qm>.
|
||||
// DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost.
|
||||
//
|
||||
// This code is covered by the following QP license:
|
||||
// License # : LicenseRef-QL-dual
|
||||
// Issued to : Any user of the QP/C real-time embedded framework
|
||||
// Framework(s) : qpc
|
||||
// Support ends : 2024-12-31
|
||||
// Support ends : 2025-12-31
|
||||
// License scope:
|
||||
//
|
||||
// Copyright (C) 2005 Quantum Leaps, LLC <state-machine.com>.
|
||||
@ -60,11 +60,10 @@ Q_DEFINE_THIS_MODULE("qxk_xthr")
|
||||
|
||||
//$skip${QP_VERSION} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
// Check for the minimum required QP version
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
|
||||
#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
|
||||
#error qpc version 7.3.0 or higher required
|
||||
#endif
|
||||
//$endskip${QP_VERSION} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
//$define${QXK::QXThread} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
|
||||
//${QXK::QXThread} ...........................................................
|
||||
|
Loading…
x
Reference in New Issue
Block a user