Skip to content

Commit 12c924a

Browse files
committed
8.0.1
added missing <pthread.h> to ports/posix/qp_port.h changed ports to ARM-CM, BASEPRI critical section updated qp_config.h files updated examples fixed arm-cr ports, GNU compiler, ARM mode, QF_INT_ENABLE_ALL() macro
1 parent aaa2b24 commit 12c924a

File tree

29 files changed

+753
-1280
lines changed

29 files changed

+753
-1280
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 qpc. It performs a pre-initializa
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 Winows, Linux (Posix compatible systems)
8282
* `QPC-CFG-GUI` - BOOL: set this boolean variable to ON/TRUE, if GUI support (win32) shall be compiled in. Default: OFF

examples

Submodule examples updated 383 files

include/qp.h

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@
3636
#define QP_H_
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
@@ -434,18 +434,14 @@ QState QMsm_enterHistory_(
434434

435435
//${QEP-macros::QASM_INIT} ...................................................
436436
#ifdef Q_SPY
437-
#define QASM_INIT(me_, par_, qsId_) do { \
438-
Q_ASSERT(((QAsm *)(me_))->vptr); \
439-
(*((QAsm *)(me_))->vptr->init)((QAsm *)(me_), (par_), (qsId_)); \
440-
} while (false)
437+
#define QASM_INIT(me_, par_, qsId_) \
438+
(*((QAsm *)(me_))->vptr->init)((QAsm *)(me_), (par_), (qsId_))
441439
#endif // def Q_SPY
442440

443441
//${QEP-macros::QASM_INIT} ...................................................
444442
#ifndef Q_SPY
445-
#define QASM_INIT(me_, par_, dummy) do { \
446-
Q_ASSERT(((QAsm *)(me_))->vptr); \
447-
(*((QAsm *)(me_))->vptr->init)((QAsm *)(me_), (par_), 0); \
448-
} while (false)
443+
#define QASM_INIT(me_, par_, dummy) \
444+
(*((QAsm *)(me_))->vptr->init)((QAsm *)(me_), (par_), 0U)
449445
#endif // ndef Q_SPY
450446

451447
//${QEP-macros::QASM_DISPATCH} ...............................................

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

Lines changed: 66 additions & 63 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,16 +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>Active Object stop API (QACTIVE_CAN_STOP)
129-
// <i>Enable Active Object stop API (Not recommended)
130-
//#define QACTIVE_CAN_STOP
131-
// </c>
132-
133123
// <o>Event size (QF_EVENT_SIZ_SIZE)
134124
// <1U=>1
135125
// <2U=>2 (default)
@@ -169,15 +159,69 @@
169159
// <i>Default: 2 (64K bytes maximum block size)
170160
#define QF_MPOOL_SIZ_SIZE 2U
171161

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>Enable active object stop API (QACTIVE_CAN_STOP)
169+
// <i>NOTE: Not recommended
170+
//#define QACTIVE_CAN_STOP
171+
// </c>
172+
173+
// <c1>Enable context switch callback *without* QS (QF_ON_CONTEXT_SW)
174+
// <i>Context switch callback QF_onContextSw() when Q_SPY is undefined.
175+
//#ifndef Q_SPY
176+
//#define QF_ON_CONTEXT_SW
177+
//#endif
178+
// </c>
179+
180+
// <c1>Enable context switch callback *with* QS (QF_ON_CONTEXT_SW)
181+
// <i>Context switch callback QF_onContextSw() when Q_SPY is defined.
182+
//#ifdef Q_SPY
183+
//#define QF_ON_CONTEXT_SW
184+
//#endif
185+
// </c>
186+
187+
// <c2>Enable memory isolation (QF_MEM_ISOLATE)
188+
// <i>Memory isolation (requires MPU)
189+
// <i>NOTE: implies QF_ON_CONTEXT_SW.
190+
//#define QF_MEM_ISOLATE
191+
// </c>
192+
172193
// </h>
173194

174195
//..........................................................................
175-
// <h>QS Software Tracing
196+
// <h>QV/QK/QXK built-in kernels (ARM Cortex-M)
197+
198+
// <c2>Kernel uses critical section based on BASEPRI (QF_USE_BASEPRI)
199+
// <i>If not selected, critical section will be based on PRIMASK
200+
// <i>NOTE: The BASEPRI threshold can be adjusted in the "Text Editor" mode.
201+
//#define QF_USE_BASEPRI 0x3F
202+
// </c>
203+
204+
// <c2>QK Kernel uses IRQ for return-from-preemption
205+
// <i>NOTE: Use "editor mode" to edit QK_USE_IRQ_NUM
206+
// <i>NOTE: Use "editor mode" to edit QK_USE_IRQ_HANDLER
207+
//#define QK_USE_IRQ_NUM NNN
208+
//#define QK_USE_IRQ_HANDLER XXX_IRQHandler
209+
// </c>
210+
211+
// <c2>QXK Kernel uses IRQ for return-from-preemption
212+
// <i>NOTE: Use "editor mode" to edit QXK_USE_IRQ_NUM
213+
// <i>NOTE: Use "editor mode" to edit QXK_USE_IRQ_HANDLER
214+
//#define QXK_USE_IRQ_NUM NNN
215+
//#define QXK_USE_IRQ_HANDLER XXX_IRQHandler
216+
// </c>
217+
218+
// </h>
219+
220+
//..........................................................................
221+
// <h>QS Software Tracing (Q_SPY)
176222
// <i>Target-resident component of QP/Spy software tracing system
177223
// <i>(tracing instrumentation and command-input).
178-
179-
// <n>NOTE: Requires command-line macro: Q_SPY
180-
// <i>The QS software tracing instrumentation is activated only when
224+
// <i>NOTE: The QS software tracing instrumentation is activated only when
181225
// <i>the macro Q_SPY is defined on the command-line to the compiler.
182226
// <i>Typically, Q_SPY is defined only in the "spy" build configuration.
183227

@@ -199,47 +243,6 @@
199243

200244
// </h>
201245

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

245248
#endif // QP_CONFIG_H_

0 commit comments

Comments
 (0)