Skip to content

Commit 7ebb142

Browse files
author
QL
committed
6.9.1
1 parent 8b192d7 commit 7ebb142

File tree

277 files changed

+5316
-5134
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

277 files changed

+5316
-5134
lines changed

3rd_party/CMSIS/LICENSE.txt

Lines changed: 201 additions & 201 deletions
Large diffs are not rendered by default.

3rd_party/ucos-ii/Ports/ARM-Cortex-M/ARMv6-M/os_cpu_c.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@ void OS_CPU_SysTickInit (INT32U cnts)
543543

544544
/* Enable timer. */
545545
OS_CPU_CM0_NVIC_ST_CTRL |= OS_CPU_CM0_NVIC_ST_CTRL_CLK_SRC |
546-
OS_CPU_CM0_NVIC_ST_CTRL_ENABLE;
546+
OS_CPU_CM0_NVIC_ST_CTRL_ENABLE;
547547
/* Enable timer interrupt. */
548548
OS_CPU_CM0_NVIC_ST_CTRL |= OS_CPU_CM0_NVIC_ST_CTRL_INTEN;
549549
}

doxygen/Doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#---------------------------------------------------------------------------
66
DOXYFILE_ENCODING = UTF-8
77
PROJECT_NAME = "QP/C++"
8-
PROJECT_NUMBER = "6.9.0"
8+
PROJECT_NUMBER = "6.9.1"
99
PROJECT_BRIEF =
1010
PROJECT_LOGO = images/header_logo_ql.png
1111
OUTPUT_DIRECTORY =

doxygen/Doxyfile-CHM

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#---------------------------------------------------------------------------
66
DOXYFILE_ENCODING = UTF-8
77
PROJECT_NAME = "QP/C++"
8-
PROJECT_NUMBER = "6.9.0"
8+
PROJECT_NUMBER = "6.9.1"
99
PROJECT_BRIEF =
1010
PROJECT_LOGO = images/header_logo_ql.png
1111
OUTPUT_DIRECTORY =

doxygen/history.dox

Lines changed: 78 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,83 @@ namespace QP {
22

33
/** @page history Revision History
44

5+
@section qpcpp_6_9_1 Version 6.9.1, 2020-09-28
6+
The main purpose of this release is a redesign of the [<b>QS Local Filter</b>](https://www.state-machine.com/qtools/qs.html#qs_local) (see also [feature request #127](https://sourceforge.net/p/qpc/feature-requests/127)). This new design supports filtering on __multiple__ active objects (as well as other objects in the Target memory), as opposed to filtering just one such object at a time. The main use case for this redesign of QS Local Filter is an application, where some active objects are very "noisy", and would overwhelm your trace. The new QS Local Filter allows you to selectively silence the "noisy" active objects and let all the others through.
7+
8+
The new QS Local Filter is based on "QS-IDs" associated with various objects in the Target memory. The QS-IDs are small integer numbers, such as the unique priorities assigned to QP Active Objects, but there are more such QS-IDs, which you can assign to various other objects through the macro QS_BEGIN_ID(). Then, you can setup the QS Local Filter to trace only a specific QS-IDs or whole groups of QS-IDs by means of the macro QS_LOC_FILTER() or remotely via the QS-RX channel.
9+
10+
11+
__Source code changes:__
12+
13+
The redesign of the QS Local Filter impacts the QS trace instrumentation in QP/C++: both the [<b>pre-defined QS trace records</b>](https://www.state-machine.com/qtools/qs.html#qs_pre) and the [<b>application-specific trace records</b>](https://www.state-machine.com/qtools/qs.html#qs_app). The changes to the pre-defined records are confided to the QP/C++ source code and are transparent to the application developers. However, the changes to the application-specific trace records require adjusting existing applications as follows:
14+
15+
- use the new macro QS_LOC_FILTER() to set/clear the QS Local Filter
16+
- use the new macro QS_BEGIN_ID() to define [<b>application-specific trace records</b>](https://www.state-machine.com/qtools/qs.html#qs_app).
17+
18+
19+
@note
20+
The macro QS_BEGIN_ID() assigns the specified QS-ID number to the app-specific record, which can be subsequently filtered by the new QS Local Filter. The old macro QS_BEGIN(), with the old Local Filter interface, is still available, but is @ref deprecated "deprecated" and not recommended.
21+
22+
23+
The following macros are __deprecated__:
24+
25+
- macro QS_FILTER_SM_OBJ() does nothing in QP/C++ 6.9.1
26+
- macro QS_FILTER_AO_OBJ() does nothing in QP/C++ 6.9.1
27+
- macro QS_FILTER_MP_OBJ() does nothing in QP/C++ 6.9.1
28+
- macro QS_FILTER_EQ_OBJ() does nothing in QP/C++ 6.9.1
29+
- macro QS_FILTER_TE_OBJ() does nothing in QP/C++ 6.9.1
30+
- macro QS_FILTER_AP_OBJ() still works for QS_BEGIN()
31+
- macro QS_FILTER_ON() still works, but uses QS_GLB_FILTER() internally
32+
- macro QS_FILTER_OFF() still works, but uses QS_GLB_FILTER() internally
33+
- macro QS_BEGIN() still works, but uses the old "AP-OBJ" pointer
34+
35+
36+
The following APIs have been __changed__:
37+
38+
- QHsm::init() now takes extra `qs_id` parameter
39+
- QHSM::dispatch() now takes extra `qs_id` parameter
40+
- QMPool::get() now takes extra `qs_id` parameter
41+
- QMPool::put() now takes extra `qs_id` parameter
42+
- QEQueue::post() now takes extra `qs_id` parameter
43+
- QEQueue::postLIFO() now takes extra `qs_id` parameter
44+
- QEQueue::get() now takes extra `qs_id` parameter
45+
46+
@note
47+
The API changes are __not backwards-compatible__ and require adjusting existing QP/C++ applications.
48+
49+
50+
Additionally, this release introduces the new pre-defined QS record #QS_QF_NEW_ATTEMPT, which is generated when Q_NEW_X() fails to allocate a dynamic event. Also, this release __reverses the order__ of the pre-defined QS records #QS_QF_NEW and #QS_QF_MPOOL_GET. This was necessary if the dynamic allocation is allowed to fail, because only _after_ attempting to allocate a memory block, the QF::newX_() function can generate either #QS_QF_NEW or #QS_QF_NEW_ATTEMPT.
51+
52+
@note
53+
The reversal of #QS_QF_NEW and #QS_QF_MPOOL_GET trace records has implications for the existing [<b>QUTest test scripts</b>](https://www.state-machine.com/qtools/qutest_script.html), where the order of expectations for "QF-New" and "MP-Get" needs to be reversed as well.
54+
55+
56+
Additionally, this release modifies the @ref qxk "QXK" source code, so that the `QActive.prio` attribute is the fixed priority assigned in QActive_start(), while `QActive.dynPrio` is the "dynamic" priority that can be changed when a @ref qxk_extended "QXK extended thread" acquires a @ref QP::QXMutex "mutex".
57+
58+
59+
__Updated Ports:__
60+
61+
- all ARM Cortex-M ports (added workaround for the [<b>ARM Erratum 838869</b>](https://www.state-machine.com/doc/Cortex-M4_Software_Developers_Errata_Notice_v3.pdf))
62+
- all QK ports (because of the changed QMPool::get() / QMPool::put() interface)
63+
- all QXK ports (because of the changed QMPool::get() / QMPool::put() interface)
64+
- embOS port (because of the changed QMPool::get() / QMPool::put() interface)
65+
- FreeRTOS port (because of the changed QMPool::get() / QMPool::put() interface)
66+
- ThreadX port (because of the changed QMPool::get() / QMPool::put() interface)
67+
- uC/OS-II port (because of the changed QMPool::get() / QMPool::put() interface)
68+
- posix, posix-qv (because of the changed QMPool::get() / QMPool::put() interface)
69+
- win32, win32-qv (because of the changed QMPool::get() / QMPool::put() interface)
70+
71+
72+
__Feature Requests:__
73+
74+
- [feature#181 "Use of QS_U64()) on 32 bit machine"](https://sourceforge.net/p/qpc/feature-requests/181)
75+
76+
__Bug Fixes:__
77+
78+
- [bug#279 "Confusing documentation of QF_newX_()"](https://sourceforge.net/p/qpc/bugs/279)
79+
- [bug#280 "QXK_onContextSw() not called at the end of QXK_activate_()"](https://sourceforge.net/p/qpc/bugs/280)
80+
81+
582
@section qpcpp_6_9_0 Version 6.9.0, 2020-08-21
683
The main purpose of this release is to adjust the QP/C++ RTEF to the changes and improvements introduced in [QTools 6.9.0](https://www.state-machine.com/qtools/history.html). Specifically, QP/C++ now includes examples for the new [QView Visualization &amp; Monitoring](https://www.state-machine.com/qtools/qview.html) as well as adjustments for the new version of [QUTest Unit Testing](https://www.state-machine.com/qtools/qutest.html).
784

@@ -35,7 +112,7 @@ The #QS_QF_RUN record is now generated in [QUTest unit testing](https://www.stat
35112
+ ARM Cortex-M examples for STM32 NUCLEO-L053RE (`qpcpp\examples\arm-cm\dpp_nucleo-l053r8`) and NUCLEO-L152RE (`qpcpp\examples\arm-cm\dpp_nucleo-l152re`) have been modified to support bi-directional QSPY communication. These examples now include the QView demos.
36113
+ Added examples of new [Sequence Diagram Generation](https://www.state-machine.com/qtools/html/qspy_seq.html) in QSPY 6.9.0
37114

38-
+ The example projects for MSP430 now contain the `ccs-ti` and `ccs-gnu` directories, for the TI-MSP430 and GNU-MSP430 toolchains, respectively.
115+
+ The example projects for MSP430 now contain the `ccs-ti` and `ccs-gnu` directories, for the TI-MSP430 and GNU-MSP430 toolchains, respectively.
39116

40117

41118
__Bug Fixes:__

doxygen/macros.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,16 +131,16 @@ namespace QP {
131131
/// @note This is a specific implementation for the QK-port of QF.
132132
/// In other QF ports you need to define the macro appropriately for
133133
/// the underlying kernel/OS you're using.
134-
#define QF_EPOOL_GET_(p_, e_, m_) \
135-
((e_) = static_cast<QEvt *>((p_).get((m_))))
134+
#define QF_EPOOL_GET_(p_, e_, m_, qs_id_) \
135+
((e_) = static_cast<QEvt *>((p_).get((m_), (qs_id_))))
136136

137137
/// Platform-dependent macro defining how QF should return an event
138138
/// @a e_ to the event pool @a p_
139139
///
140140
/// @note This is a specific implementation for the QK-port of QF.
141141
/// In other QF ports you need to define the macro appropriately for
142142
/// the underlying kernel/OS you're using.
143-
#define QF_EPOOL_PUT_(p_, e_) ((p_).put(e_))
143+
#define QF_EPOOL_PUT_(p_, e_, qs_id_) ((p_).put((e_), (qs_id_)))
144144

145145
/// Macro that should be defined (typically on the compiler's command line)
146146
/// in the Win32-GUI applications that use the @ref win32 or @ref win32-qv

0 commit comments

Comments
 (0)