|
1 | 1 | //============================================================================ |
2 | | -// QP configuration file (QK on ARM Cortex-M) |
| 2 | +// QP configuration file (QV/QK/QXK on ARM Cortex-M) |
3 | 3 | // |
4 | 4 | // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. |
5 | 5 | // |
|
59 | 59 | // <i> * Hard-limits for all loops |
60 | 60 | // <i> * Memory Isolation by means of Memory Protection Unit (MPU) |
61 | 61 |
|
62 | | -// <c3>Disable QP FuSa in development |
| 62 | +// <c3>Disable QP FuSa in development (NOT recommended) |
63 | 63 | // <i>Disable assertions and other self monitoring features |
64 | 64 | // <i>in development build configurations (NDEBUG undefined). |
65 | | -// <i>VIOLATES functional safety standards. NOT recommended !!! |
| 65 | +// <i>NOTE: Disabling safety *violates* functional safety standards. |
66 | 66 | //#ifndef NDEBUG |
67 | 67 | //#define Q_UNSAFE |
68 | 68 | //#endif |
69 | 69 | // </c> |
70 | 70 |
|
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 |
73 | 73 | // <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. |
75 | 75 | //#ifdef NDEBUG |
76 | 76 | //#define Q_UNSAFE |
77 | 77 | //#endif |
|
80 | 80 | // </h> |
81 | 81 |
|
82 | 82 | //.......................................................................... |
83 | | -// <h>QEP Event Processor |
| 83 | +// <h>QEP Event Processor (Events) |
84 | 84 | // <i>Events and state machines. |
85 | 85 |
|
86 | 86 | // <o>Event signal size (Q_SIGNAL_SIZE) |
|
94 | 94 | // </h> |
95 | 95 |
|
96 | 96 | //.......................................................................... |
97 | | -// <h>QF Framework |
| 97 | +// <h>QF Framework (Active Objects) |
98 | 98 | // <i>Active Object framework |
99 | 99 |
|
100 | 100 | // <o>Maximum # Active Objects (QF_MAX_ACTIVE) <1-64> |
|
120 | 120 | // <i>Default: 1 |
121 | 121 | #define QF_MAX_TICK_RATE 1U |
122 | 122 |
|
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 | | - |
133 | 123 | // <o>Event size (QF_EVENT_SIZ_SIZE) |
134 | 124 | // <1U=>1 |
135 | 125 | // <2U=>2 (default) |
|
169 | 159 | // <i>Default: 2 (64K bytes maximum block size) |
170 | 160 | #define QF_MPOOL_SIZ_SIZE 2U |
171 | 161 |
|
| 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 | + |
172 | 193 | // </h> |
173 | 194 |
|
174 | 195 | //.......................................................................... |
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) |
176 | 222 | // <i>Target-resident component of QP/Spy software tracing system |
177 | 223 | // <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 |
181 | 225 | // <i>the macro Q_SPY is defined on the command-line to the compiler. |
182 | 226 | // <i>Typically, Q_SPY is defined only in the "spy" build configuration. |
183 | 227 |
|
|
199 | 243 |
|
200 | 244 | // </h> |
201 | 245 |
|
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 | | - |
243 | 246 | //------------- <<< end of configuration section >>> ----------------------- |
244 | 247 |
|
245 | 248 | #endif // QP_CONFIG_H_ |
0 commit comments