This commit is contained in:
QL 2018-06-01 13:55:37 -04:00
parent b7f3e809c3
commit 7983ea3ca1
5 changed files with 3279 additions and 3281 deletions

View File

@ -3,8 +3,8 @@ namespace QP {
/** @page history Revision History
@section qpcpp_6_3_1 Version 6.3.1, 2018-05-24
This release migrates the [QUTest](https://www.state-machine.com/qtools/qutest.html) examples to [QM 4.2.1](https://www.state-machine.com/qm/history.html#qm_4_2_1), which now can generate QS_FUN_DICTIONARY() records automatically. This release also adds a generic, simple blinky example for QUTest located in `examples/qutest/blinky`. Also, this release fixes the QF_INT_DISABLE() / QF_INT_ENABLE() macros in the QUTest ports to use the QP namespace. Without this fix, the code fails to compile when the directive "using namespace QP" is not used.
This release migrates the [QUTest](https://www.state-machine.com/qtools/qutest.html) examples to [QM 4.2.1](https://www.state-machine.com/qm/history.html#qm_4_2_1), which now can generate QS_FUN_DICTIONARY() records automatically. This release also adds a generic, simple blinky example for QUTest located in `examples/qutest/blinky`. Also, this release fixes the QF_INT_DISABLE() / QF_INT_ENABLE() macros in the QUTest ports to use the QP namespace. Without this fix, the code fails to compile when the directive "using namespace QP" is not used.
Also, this release adds the missing QS macro QS_SIG() to produce symbolic signal output from [application specific QS records](https://www.state-machine.com/qtools/qs.html#qs_app).
Finally, this release adjusts the code in qs_rx.cpp to use QF_EVT_REF_CTR_INC_() instead of accessing the event's reference counter directly. This direct access fails in case, when event constructors are configured (Q_EVT_CTOR is defined). In that case, the QP::QEvt class protects the reference counter, so it cannot be accessed directly. This option is currently used only in the QP/C++ port to Qt.

File diff suppressed because it is too large Load Diff

View File

@ -206,6 +206,7 @@ void BSP::init(void) {
}
QS_OBJ_DICTIONARY(&l_tickHook);
QS_OBJ_DICTIONARY(&l_GPIOPortA_IRQHandler);
QS_USR_DICTIONARY(PHILO_STAT);
}
//............................................................................
void BSP::displayPhilStat(uint8_t n, char const *stat) {
@ -250,7 +251,7 @@ void BSP::randomSeed(uint32_t seed) {
INT8U err;
l_rnd = seed;
l_rndMutex = OSMutexCreate(N_PHILO, &err);
l_rndMutex = OSMutexCreate(N_PHILO, &err);
}
//............................................................................
void BSP::terminate(int16_t result) {
@ -334,17 +335,8 @@ bool QS::onStartup(void const *arg) {
DPP::QS_tickTime_ = DPP::QS_tickPeriod_; // to start the timestamp at zero
// setup the QS filters...
QS_FILTER_ON(QS_QEP_STATE_ENTRY);
QS_FILTER_ON(QS_QEP_STATE_EXIT);
QS_FILTER_ON(QS_QEP_STATE_INIT);
QS_FILTER_ON(QS_QEP_INIT_TRAN);
QS_FILTER_ON(QS_QEP_INTERN_TRAN);
QS_FILTER_ON(QS_QEP_TRAN);
QS_FILTER_ON(QS_QEP_IGNORED);
QS_FILTER_ON(QS_QEP_DISPATCH);
QS_FILTER_ON(QS_QEP_UNHANDLED);
QS_FILTER_ON(DPP::PHILO_STAT);
QS_FILTER_ON(QS_SM_RECORDS);
QS_FILTER_ON(QS_UA_RECORDS);
return true; // return success
}

View File

@ -1,7 +1,7 @@
##############################################################################
# Product: Makefile for DPP on EK-TM4C123GXL, uC/OS-II kernel, GNU-ARM
# Last Updated for Version: 6.1.0
# Date of the Last Update: 2018-02-07
# Last Updated for Version: 6.3.1
# Date of the Last Update: 2018-05-31
#
# Q u a n t u m L e a P s
# ---------------------------
@ -94,7 +94,7 @@ INCLUDES = \
#
# assembler source files
ASM_SRCS := \
ASM_SRCS := \
os_cpu_a.s
# C source files
@ -125,7 +125,7 @@ QP_SRCS := \
qf_time.cpp \
qf_port.cpp
RTOS_SRC = \
RTOS_SRCS := \
os_core.c \
os_flag.c \
os_mbox.c \
@ -147,7 +147,7 @@ LIB_DIRS :=
LIBS :=
# defines
DEFINES := -DTARGET_IS_TM4C123_RB1
DEFINES := -DTARGET_IS_TM4C123_RB1 -D__FPU_PRESENT
# ARM CPU, ARCH, FPU, and Float-ABI types...
# ARM_CPU: [cortex-m0 | cortex-m0plus | cortex-m1 | cortex-m3 | cortex-m4]
@ -159,6 +159,7 @@ ARM_CPU := -mcpu=cortex-m4
ARM_ARCH := 7 # NOTE: must match the ARM_CPU!
ARM_FPU := -mfpu=vfp
FLOAT_ABI := -mfloat-abi=softfp
ASM_FPU := -defsym=__FPU_PRESENT=1
#-----------------------------------------------------------------------------
# GNU-ARM toolset (NOTE: You need to adjust to your machine)
@ -195,7 +196,7 @@ RM := rm
# combine all the soruces...
VPATH += $(QPCPP)/3rd_party/gnu_cpp
CPP_SRCS += $(QP_SRCS) mini_cpp.cpp
C_SRCS += $(RTOS_SRC)
C_SRCS += $(RTOS_SRCS)
ifeq (rel, $(CONF)) # Release configuration ..................................

View File

@ -68,6 +68,10 @@ int main() {
sizeof(smlPoolSto), sizeof(smlPoolSto[0]));
// start the active objects...
// CAUTION:
// Make sure to configure **SUFFICIENT** number of uC/OS-II tasks and
// message queues in "os_cfg.h" for all your active objects!!!
//
for (uint8_t n = 0U; n < N_PHILO; ++n) {
// NOTE: provide uC/OS-II task attributes for the AO's task
DPP::AO_Philo[n]->setAttr(OS_TASK_OPT_STK_CLR | OS_TASK_OPT_STK_CHK, 0);
@ -90,3 +94,4 @@ int main() {
return QP::QF::run(); // run the QF application
}