Skip to content

Commit 2b1661f

Browse files
committed
8.0.1
changed ports to ARM-CM, BASEPRI critical section updated qp_config.hpp files updated examples fixed arm-cr ports, GNU compiler, ARM mode, QF_INT_ENABLE_ALL() macro
1 parent c1a9c48 commit 2b1661f

29 files changed

+770
-1309
lines changed

cmakeSupport.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ This file is situated in the root directory of qpcpp. It performs a pre-initiali
7676
+ `arm-cm`, `arm-cr` - Arm CortexM or CortexR micro controllers. Tested with GNU cross compiler environments.
7777
+ `freertos`, `esp-idf`, `emb-os`, `threadx`, `uc-os2` - real time OS
7878
+ `msp430`, `pic32` - TI MSP430 or PIC32 micro controllers
79-
+ `riscv`- Risc V µC
79+
+ `riscv`- Risc V micro controllers
8080
+ `qep-only`, `qube` - test environments
8181
+ `win32`, `posix` - host environments MS Windows, Linux (Posix compatible systems)
8282
* `QPCPP-CFG-GUI` - BOOL: set this Boolean variable to ON/TRUE, if GUI support (win32) shall be compiled in. Default: OFF

examples

Submodule examples updated 211 files

include/qp.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@
3636
#define QP_HPP_
3737

3838
//============================================================================
39-
#define QP_VERSION_STR "8.0.0"
40-
#define QP_VERSION 800U
41-
#define QP_RELEASE 0x7055936FU
39+
#define QP_VERSION_STR "8.0.1"
40+
#define QP_VERSION 801U
41+
#define QP_RELEASE 0x703931CEU
4242

4343
//============================================================================
4444
//! @cond INTERNAL

ports/arm-cm/qk/config/qp_config.hpp renamed to ports/arm-cm/config/qp_config.hpp

Lines changed: 72 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//============================================================================
2-
// QP configuration file (QK on ARM Cortex-M)
2+
// QP configuration file (QV/QK/QXK on ARM Cortex-M)
33
//
44
// Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved.
55
//
@@ -59,19 +59,19 @@
5959
// <i> * Hard-limits for all loops
6060
// <i> * Memory Isolation by means of Memory Protection Unit (MPU)
6161

62-
// <c3>Disable QP FuSa in development
62+
// <c3>Disable QP FuSa in development (NOT recommended)
6363
// <i>Disable assertions and other self monitoring features
6464
// <i>in development build configurations (NDEBUG undefined).
65-
// <i>VIOLATES functional safety standards. NOT recommended !!!
65+
// <i>NOTE: Disabling safety *violates* functional safety standards.
6666
//#ifndef NDEBUG
6767
//#define Q_UNSAFE
6868
//#endif
6969
// </c>
7070

71-
// <c3>Disable QP FuSa in production release
72-
// <i>Disable assertions and other self monitoring features
71+
// <c3>Disable QP FuSa in production release (NOT recommended)
72+
// <i>Disable assertions and other safety features
7373
// <i>in the release build configurations (NDEBUG defined).
74-
// <i>VIOLATES functional safety standards. NOT recommended !!!
74+
// <i>NOTE: Disabling safety *violates* functional safety standards.
7575
//#ifdef NDEBUG
7676
//#define Q_UNSAFE
7777
//#endif
@@ -80,7 +80,7 @@
8080
// </h>
8181

8282
//..........................................................................
83-
// <h>QEP Event Processor
83+
// <h>QEP Event Processor (Events)
8484
// <i>Events and state machines.
8585

8686
// <o>Event signal size (Q_SIGNAL_SIZE)
@@ -94,7 +94,7 @@
9494
// </h>
9595

9696
//..........................................................................
97-
// <h>QF Framework
97+
// <h>QF Framework (Active Objects)
9898
// <i>Active Object framework
9999

100100
// <o>Maximum # Active Objects (QF_MAX_ACTIVE) <1-64>
@@ -120,21 +120,6 @@
120120
// <i>Default: 1
121121
#define QF_MAX_TICK_RATE 1U
122122

123-
// <c1>Event parameter initialization (QEVT_PAR_INIT)
124-
// <i>Resource Acquisition Is Initialization (RAII) for dynamic events
125-
//#define QEVT_PAR_INIT
126-
// </c>
127-
128-
// <c1>Provide destructors for QP classes
129-
// <i>Destructors for classes
130-
//#define Q_XTOR
131-
// </c>
132-
133-
// <c1>Active Object stop API (QACTIVE_CAN_STOP)
134-
// <i>Enable Active Object stop API (Not recommended)
135-
//#define QACTIVE_CAN_STOP
136-
// </c>
137-
138123
// <o>Event size (QF_EVENT_SIZ_SIZE)
139124
// <1U=>1
140125
// <2U=>2 (default)
@@ -174,15 +159,75 @@
174159
// <i>Default: 2 (64K bytes maximum block size)
175160
#define QF_MPOOL_SIZ_SIZE 2U
176161

162+
// <c2>Enable event parameter initialization (QEVT_PAR_INIT)
163+
// <i>Initialize parameters of dynamic events at allocation
164+
// <i>(Resource Acquisition Is Initialization (RAII) for dynamic events)
165+
//#define QEVT_PAR_INIT
166+
// </c>
167+
168+
// <c1>Provide destructors for QP classes
169+
// <i>Presence of destructors pulls in the C++ delete() opeator
170+
// <i>NOTE: Not recommended
171+
//#define Q_XTOR
172+
// </c>
173+
174+
// <c1>Enable active object stop API (QACTIVE_CAN_STOP)
175+
// <i>NOTE: Not recommended
176+
//#define QACTIVE_CAN_STOP
177+
// </c>
178+
179+
// <c1>Enable context switch callback *without* QS (QF_ON_CONTEXT_SW)
180+
// <i>Context switch callback QF_onContextSw() when Q_SPY is undefined.
181+
//#ifndef Q_SPY
182+
//#define QF_ON_CONTEXT_SW
183+
//#endif
184+
// </c>
185+
186+
// <c1>Enable context switch callback *with* QS (QF_ON_CONTEXT_SW)
187+
// <i>Context switch callback QF_onContextSw() when Q_SPY is defined.
188+
//#ifdef Q_SPY
189+
//#define QF_ON_CONTEXT_SW
190+
//#endif
191+
// </c>
192+
193+
// <c2>Enable memory isolation (QF_MEM_ISOLATE)
194+
// <i>Memory isolation (requires MPU)
195+
// <i>NOTE: implies QF_ON_CONTEXT_SW.
196+
//#define QF_MEM_ISOLATE
197+
// </c>
198+
177199
// </h>
178200

179201
//..........................................................................
180-
// <h>QS Software Tracing
202+
// <h>QV/QK/QXK built-in kernels (ARM Cortex-M)
203+
204+
// <c2>Kernel uses critical section based on BASEPRI (QF_USE_BASEPRI)
205+
// <i>If not selected, critical section will be based on PRIMASK
206+
// <i>NOTE: The BASEPRI threshold can be adjusted in the "Text Editor" mode.
207+
//#define QF_USE_BASEPRI 0x3F
208+
// </c>
209+
210+
// <c2>QK Kernel uses IRQ for return-from-preemption
211+
// <i>NOTE: Use "editor mode" to edit QK_USE_IRQ_NUM
212+
// <i>NOTE: Use "editor mode" to edit QK_USE_IRQ_HANDLER
213+
//#define QK_USE_IRQ_NUM NNN
214+
//#define QK_USE_IRQ_HANDLER XXX_IRQHandler
215+
// </c>
216+
217+
// <c2>QXK Kernel uses IRQ for return-from-preemption
218+
// <i>NOTE: Use "editor mode" to edit QXK_USE_IRQ_NUM
219+
// <i>NOTE: Use "editor mode" to edit QXK_USE_IRQ_HANDLER
220+
//#define QXK_USE_IRQ_NUM NNN
221+
//#define QXK_USE_IRQ_HANDLER XXX_IRQHandler
222+
// </c>
223+
224+
// </h>
225+
226+
//..........................................................................
227+
// <h>QS Software Tracing (Q_SPY)
181228
// <i>Target-resident component of QP/Spy software tracing system
182229
// <i>(tracing instrumentation and command-input).
183-
184-
// <n>NOTE: Requires command-line macro: Q_SPY
185-
// <i>The QS software tracing instrumentation is activated only when
230+
// <i>NOTE: The QS software tracing instrumentation is activated only when
186231
// <i>the macro Q_SPY is defined on the command-line to the compiler.
187232
// <i>Typically, Q_SPY is defined only in the "spy" build configuration.
188233

@@ -204,47 +249,6 @@
204249

205250
// </h>
206251

207-
//..........................................................................
208-
// <h>QK Preemptive Non-Blocking Kernel
209-
// <i>Preemptive non-blocking/blocking RTOS kernel.
210-
211-
// <h>Context switch callback (QF_ON_CONTEXT_SW)
212-
213-
// <c2>Context switch callback WITHOUT QS
214-
// <i>Enable context switch callback QF_onContextSw()
215-
// <i>When Q_SPY is undefined.
216-
//#ifndef Q_SPY
217-
//#define QF_ON_CONTEXT_SW
218-
//#endif
219-
// </c>
220-
221-
// <c2>Context switch callback WITH QS
222-
// <i>Enable context switch callback QF_onContextSw()
223-
// <i>When Q_SPY is defined.
224-
//#ifdef Q_SPY
225-
//#define QF_ON_CONTEXT_SW
226-
//#endif
227-
// </c>
228-
229-
// </h>
230-
231-
// <c2>MPU memory isolation (QF_MEM_ISOLATE)
232-
// <i>Enable memory isolation (requires MPU)
233-
// <i>NOTE: implies QF_ON_CONTEXT_SW.
234-
//#define QF_MEM_ISOLATE
235-
// </c>
236-
237-
// <c4>Use IRQ handler for QK return-from-preemption
238-
// <i>Enable this option only if the NMI handler is used in the project.
239-
// <i>If enabled, provide the otherwise unused IRQ number (QK_USE_IRQ_NUM)
240-
// <i>and the corresponding IRQ handler name (QK_USE_IRQ_HANDLER)
241-
// <i>in the "Text Editor" mode.
242-
//#define QK_USE_IRQ_NUM <adjust to your MCU>
243-
//#define QK_USE_IRQ_HANDLER <adjust to your MCU>
244-
// </c>
245-
246-
// </h>
247-
248252
//------------- <<< end of configuration section >>> -----------------------
249253

250254
#endif // QP_CONFIG_HPP_

0 commit comments

Comments
 (0)