|
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 safetystandards. 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 otherself monitoring features |
| 71 | +// <c3>Disable QP FuSa in production release (NOT recommended) |
| 72 | +// <i>Disable assertions and othersafety features |
73 | 73 | // <i>in the release build configurations (NDEBUG defined). |
74 | | -// <i>VIOLATES functional safetystandards. 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 | #defineQF_MAX_TICK_RATE1U |
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>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 | | - |
138 | 123 | // <o>Event size (QF_EVENT_SIZ_SIZE) |
139 | 124 | // <1U=>1 |
140 | 125 | // <2U=>2 (default) |
|
174 | 159 | // <i>Default: 2 (64K bytes maximum block size) |
175 | 160 | #defineQF_MPOOL_SIZ_SIZE2U |
176 | 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>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 | + |
177 | 199 | // </h> |
178 | 200 |
|
179 | 201 | //.......................................................................... |
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) |
181 | 228 | // <i>Target-resident component of QP/Spy software tracing system |
182 | 229 | // <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 |
186 | 231 | // <i>the macro Q_SPY is defined on the command-line to the compiler. |
187 | 232 | // <i>Typically, Q_SPY is defined only in the "spy" build configuration. |
188 | 233 |
|
|
204 | 249 |
|
205 | 250 | // </h> |
206 | 251 |
|
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 | | - |
248 | 252 | //------------- <<< end of configuration section >>> ----------------------- |
249 | 253 |
|
250 | 254 | #endif// QP_CONFIG_HPP_ |