RKH
Loading...
Searching...
No Matches
rkhitl.h
Go to the documentation of this file.
1/*
2 * --------------------------------------------------------------------------
3 *
4 * Framework RKH
5 * -------------
6 *
7 * State-machine framework for reactive embedded systems
8 *
9 * Copyright (C) 2010 Leandro Francucci.
10 * All rights reserved. Protected by international copyright laws.
11 *
12 *
13 * RKH is free software: you can redistribute it and/or modify it under the
14 * terms of the GNU General Public License as published by the Free Software
15 * Foundation, either version 3 of the License, or (at your option) any
16 * later version.
17 *
18 * RKH is distributed in the hope that it will be useful, but WITHOUT ANY
19 * WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
21 * more details.
22 *
23 * You should have received a copy of the GNU General Public License along
24 * with RKH, see copying.txt file.
25 *
26 * Contact information:
27 * RKH site: http://vortexmakes.com/que-es/
28 * RKH GitHub: https://github.com/vortexmakes/RKH
29 * RKH Sourceforge: https://sourceforge.net/projects/rkh-reactivesys/
30 * e-mail: lf@vortexmakes.com
31 * ---------------------------------------------------------------------------
32 */
33
40/* -------------------------- Development history -------------------------- */
41/*
42 * 2015.10.24 LeFr v2.4.05 Initial version
43 */
44
45/* -------------------------------- Authors -------------------------------- */
46/*
47 * LeFr Leandro Francucci lf@vortexmakes.com
48 */
49
50/* --------------------------------- Notes --------------------------------- */
51/* --------------------------------- Module -------------------------------- */
52#ifndef __RKHITL_H__
53#define __RKHITL_H__
54
55/* ----------------------------- Include files ----------------------------- */
59#include "rkhplat.h"
60
66#include "rkhevt.h"
67
68/* ---------------------- External C language linkage ---------------------- */
69#ifdef __cplusplus
70extern "C" {
71#endif
72
73/* --------------------------------- Macros -------------------------------- */
74#if (((RKH_CFG_TRC_EN == 1) && (RKH_CFG_SMA_TRC_SNDR_EN == 1)) || \
75 (defined(RKH_EN_DOXYGEN) && RKH_EN_DOXYGEN == 1))
92 #define RKH_USE_TRC_SENDER
93#endif
94
100#define RKH_RELEASE rkh_version
101
124#define RKH_VERSION(a, b, c) \
125 (((((a) << 12) & 0xF000) | \
126 (((b) << 8) & 0x0F00) | \
127 (((c) & 0xFF) & 0x00FF)) & 0xFFFF)
128
133#define RKH_ANY ((RKH_SIG_T)(-1))
134
144#define RKH_COMPLETION_EVENT (RKH_ANY - 1)
145
156#define RKH_SM_CREATION_EVENT (RKH_ANY - 2)
157
167#define RKH_LOWEST_PRIO (RKH_CFG_FWK_MAX_SMA - 1)
168
169/*
170 * Verifies port file from rkhport.h included in rkhplat.h.
171 */
172
173#ifndef RKHROM
174#error "rkhport.h, Missing RKHROM: Qualifier for ROM data storage. \
175 See Porting chapter in readme file for more information"
176#endif
177
178#define FOREVER for (;; )
179
180/*
181 * Macros for casting
182 */
183#define CB(p) ((RKH_BASE_T *)(p))
184#define CST(p) ((RKH_ST_T *)(p))
185#define CCMP(p) ((RKH_SCMP_T *)(p))
186#define CBSC(p) ((RKH_SBSC_T *)(p))
187#define CCD(p) ((RKH_SCOND_T *)(p))
188#define CCH(p) ((RKH_SCHOICE_T *)(p))
189#define CH(p) ((RKH_SHIST_T *)(p))
190#define CSBM(p) ((RKH_SSBM_T *)(p))
191#define CRSM(p) ((RKH_RSM_T *)(p))
192#define CM(p) ((RKHROM RKH_SM_T *)(p))
193#define CT(p) ((RKHROM RKH_TR_T *)(p))
194#define CPT(p) ((RKHROM RKH_SCMP_T *)(p))
195#define CPP(p) ((RKH_PPRO_T)(p))
196#define CG(p) ((RKH_GUARD_T)(p))
197#define CA(p) ((RKH_TRN_ACT_T)(p))
198#define CENP(p) ((RKH_SENP_T *)(p))
199#define CEXP(p) ((RKH_SEXP_T *)(p))
200#define CENPCN(p) ((RKH_ENPCN_T *)(p))
201#define CEXPCN(p) ((RKH_EXPCN_T *)(p))
202#define CE(p) ((RKH_EVT_T *)(p))
203#define CCE(p) ((const RKH_EVT_T *)(p))
204#define CV(p) ((void *)(p))
205#define CSMA(p) ((const RKH_SMA_T *)(p))
206#define CQ(p) ((RKH_QUEUE_T *)(p))
207#define CTA(ta) ((RKH_TRN_ACT_T)(ta))
208
220#define RKH_DCLR_PTR_TYPE(type_, me_) \
221 extern type_ * const me_
222
223/* ------------------------- Configuration errors -------------------------- */
224
225/*
226 * LOOK FOR MISSING #define CONSTANTS
227 *
228 * This section is used to generate ERROR messages at compile time if
229 * certain #define constants are MISSING in rkhcfg.h. This allows you to
230 * quickly determine the source of the error.
231 *
232 * You SHOULD NOT change this section UNLESS you would like to add more
233 * comments as to the source of the compile time error.
234 */
235
236/* MEMORY POOL --------------------------------------------------------- */
237#ifndef RKH_CFG_MP_EN
238 #error "RKH_CFG_MP_EN not #define'd in 'rkhcfg.h'"
239 #error " [MUST be RKH_ENABLED ] "
240 #error " [ || RKH_DISABLED] "
241
242#elif ((RKH_CFG_MP_EN != RKH_ENABLED) && \
243 (RKH_CFG_MP_EN != RKH_DISABLED))
244 #error "RKH_CFG_MP_EN illegally #define'd in 'rkhcfg.h'"
245 #error " [MUST be RKH_ENABLED ] "
246 #error " [ || RKH_DISABLED] "
247
248#elif (RKH_CFG_MP_EN == RKH_ENABLED)
249
250 #ifndef RKH_CFG_MP_REDUCED_EN
251 #error "RKH_CFG_MP_REDUCED_EN not #define'd in 'rkhcfg.h'"
252 #error " [MUST be RKH_ENABLED ] "
253 #error " [ || RKH_DISABLED] "
254
255 #elif ((RKH_CFG_MP_REDUCED_EN != RKH_ENABLED) && \
256 (RKH_CFG_MP_REDUCED_EN != RKH_DISABLED))
257 #error "RKH_CFG_MP_REDUCED_EN illegally #define'd in 'rkhcfg.h'"
258 #error " [MUST be RKH_ENABLED ] "
259 #error " [ || RKH_DISABLED] "
260 #endif
261
262 #ifndef RKH_CFG_MP_SIZEOF_BSIZE
263 #error "RKH_CFG_MP_SIZEOF_BSIZE not #define'd in 'rkhcfg.h'"
264 #error " [MUST be 8 ( 8-bit size)] "
265 #error " [ || 16 (16-bit size)] "
266 #error " [ || 32 (32-bit size)] "
267
268 #elif ((RKH_CFG_MP_SIZEOF_BSIZE != 8) && \
269 (RKH_CFG_MP_SIZEOF_BSIZE != 16) && \
270 (RKH_CFG_MP_SIZEOF_BSIZE != 32))
271 #error "RKH_CFG_MP_SIZEOF_BSIZE illegally #define'd in 'rkhcfg.h'"
272 #error " [MUST be 8 ( 8-bit size)] "
273 #error " [ || 16 (16-bit size)] "
274 #error " [ || 32 (32-bit size)] "
275 #endif
276
277 #ifndef RKH_CFG_MP_SIZEOF_NBLOCK
278 #error "RKH_CFG_MP_SIZEOF_NBLOCK not #define'd in 'rkhcfg.h'"
279 #error " [MUST be 8 ( 8-bit size)] "
280 #error " [ || 16 (16-bit size)] "
281 #error " [ || 32 (32-bit size)] "
282
283 #elif ((RKH_CFG_MP_SIZEOF_NBLOCK != 8) && \
284 (RKH_CFG_MP_SIZEOF_NBLOCK != 16) && \
285 (RKH_CFG_MP_SIZEOF_NBLOCK != 32))
286 #error "RKH_CFG_MP_SIZEOF_NBLOCK illegally #define'd in 'rkhcfg.h'"
287 #error " [MUST be 8 ( 8-bit size)] "
288 #error " [ || 16 (16-bit size)] "
289 #error " [ || 32 (32-bit size)] "
290 #endif
291
292 #ifndef RKH_CFG_MP_GET_BSIZE_EN
293 #error "RKH_CFG_MP_GET_BSIZE_EN not #define'd in 'rkhcfg.h'"
294 #error " [MUST be RKH_ENABLED ] "
295 #error " [ || RKH_DISABLED] "
296
297 #elif ((RKH_CFG_MP_GET_BSIZE_EN != RKH_ENABLED) && \
298 (RKH_CFG_MP_GET_BSIZE_EN != RKH_DISABLED))
299 #error "RKH_CFG_MP_GET_BSIZE_EN illegally #define'd in 'rkhcfg.h'"
300 #error " [MUST be RKH_ENABLED ] "
301 #error " [ || RKH_DISABLED] "
302 #endif
303
304 #ifndef RKH_CFG_MP_GET_NFREE_EN
305 #error "RKH_CFG_MP_GET_NFREE_EN not #define'd in 'rkhcfg.h'"
306 #error " [MUST be RKH_ENABLED ] "
307 #error " [ || RKH_DISABLED] "
308
309 #elif ((RKH_CFG_MP_GET_NFREE_EN != RKH_ENABLED) && \
310 (RKH_CFG_MP_GET_NFREE_EN != RKH_DISABLED))
311 #error "RKH_CFG_MP_GET_NFREE_EN illegally #define'd in 'rkhcfg.h'"
312 #error " [MUST be RKH_ENABLED ] "
313 #error " [ || RKH_DISABLED] "
314 #endif
315
316 #ifndef RKH_CFG_MP_GET_LWM_EN
317 #error "RKH_CFG_MP_GET_LWM_EN not #define'd in 'rkhcfg.h'"
318 #error " [MUST be RKH_ENABLED ] "
319 #error " [ || RKH_DISABLED] "
320
321 #elif ((RKH_CFG_MP_GET_LWM_EN != RKH_ENABLED) && \
322 (RKH_CFG_MP_GET_LWM_EN != RKH_DISABLED))
323 #error "RKH_CFG_MP_GET_LWM_EN illegally #define'd in 'rkhcfg.h'"
324 #error " [MUST be RKH_ENABLED ] "
325 #error " [ || RKH_DISABLED] "
326 #endif
327
328 #ifndef RKH_CFG_MP_GET_INFO_EN
329 #error "RKH_CFG_MP_GET_INFO_EN not #define'd in 'rkhcfg.h'"
330 #error " [MUST be RKH_ENABLED ] "
331 #error " [ || RKH_DISABLED] "
332
333 #elif ((RKH_CFG_MP_GET_INFO_EN != RKH_ENABLED) && \
334 (RKH_CFG_MP_GET_INFO_EN != RKH_DISABLED))
335 #error "RKH_CFG_MP_GET_INFO_EN illegally #define'd in 'rkhcfg.h'"
336 #error " [MUST be RKH_ENABLED ] "
337 #error " [ || RKH_DISABLED] "
338 #endif
339
340#endif
341
342/* QUEUE --------------------------------------------------------- */
343#ifndef RKH_CFG_QUE_EN
344 #error "RKH_CFG_QUE_EN not #define'd in 'rkhcfg.h'"
345 #error " [MUST be RKH_ENABLED ] "
346 #error " [ || RKH_DISABLED] "
347
348#elif ((RKH_CFG_QUE_EN != RKH_ENABLED) && \
349 (RKH_CFG_QUE_EN != RKH_DISABLED))
350 #error "RKH_CFG_QUE_EN illegally #define'd in 'rkhcfg.h'"
351 #error " [MUST be RKH_ENABLED ] "
352 #error " [ || RKH_DISABLED] "
353
354#endif
355
356#ifndef RKH_CFG_QUE_SIZEOF_NELEM
357 #error "RKH_CFG_QUE_SIZEOF_NELEM not #define'd in 'rkhcfg.h'"
358 #error " [MUST be 8 ( 8-bit size)] "
359 #error " [ || 16 (16-bit size)] "
360 #error " [ || 32 (32-bit size)] "
361
362#elif ((RKH_CFG_QUE_SIZEOF_NELEM != 8) && \
363 (RKH_CFG_QUE_SIZEOF_NELEM != 16) && \
364 (RKH_CFG_QUE_SIZEOF_NELEM != 32))
365 #error "RKH_CFG_QUE_SIZEOF_NELEM illegally #define'd in 'rkhcfg.h'"
366 #error " [MUST be 8 ( 8-bit size)] "
367 #error " [ || 16 (16-bit size)] "
368 #error " [ || 32 (32-bit size)] "
369
370#endif
371
372#ifndef RKH_CFG_QUE_GET_LWMARK_EN
373 #error "RKH_CFG_QUE_GET_LWMARK_EN not #define'd in 'rkhcfg.h'"
374 #error " [MUST be RKH_ENABLED ] "
375 #error " [ || RKH_DISABLED] "
376
377#elif ((RKH_CFG_QUE_GET_LWMARK_EN != RKH_ENABLED) && \
378 (RKH_CFG_QUE_GET_LWMARK_EN != RKH_DISABLED))
379 #error "RKH_CFG_QUE_GET_LWMARK_EN illegally #define'd in 'rkhcfg.h'"
380 #error " [MUST be RKH_ENABLED ] "
381 #error " [ || RKH_DISABLED] "
382
383#endif
384
385#ifndef RKH_CFG_QUE_READ_EN
386 #error "RKH_CFG_QUE_READ_EN not #define'd in 'rkhcfg.h'"
387 #error " [MUST be RKH_ENABLED ] "
388 #error " [ || RKH_DISABLED] "
389
390#elif ((RKH_CFG_QUE_READ_EN != RKH_ENABLED) && \
391 (RKH_CFG_QUE_READ_EN != RKH_DISABLED))
392 #error "RKH_CFG_QUE_READ_EN illegally #define'd in 'rkhcfg.h'"
393 #error " [MUST be RKH_ENABLED ] "
394 #error " [ || RKH_DISABLED] "
395
396#endif
397
398#ifndef RKH_CFG_QUE_DEPLETE_EN
399 #error "RKH_CFG_QUE_DEPLETE_EN not #define'd in 'rkhcfg.h'"
400 #error " [MUST be RKH_ENABLED ] "
401 #error " [ || RKH_DISABLED] "
402
403#elif ((RKH_CFG_QUE_DEPLETE_EN != RKH_ENABLED) && \
404 (RKH_CFG_QUE_DEPLETE_EN != RKH_DISABLED))
405 #error "RKH_CFG_QUE_DEPLETE_EN illegally #define'd in 'rkhcfg.h'"
406 #error " [MUST be RKH_ENABLED ] "
407 #error " [ || RKH_DISABLED] "
408
409#endif
410
411#ifndef RKH_CFG_QUE_IS_FULL_EN
412 #error "RKH_CFG_QUE_IS_FULL_EN not #define'd in 'rkhcfg.h'"
413 #error " [MUST be RKH_ENABLED ] "
414 #error " [ || RKH_DISABLED] "
415
416#elif ((RKH_CFG_QUE_IS_FULL_EN != RKH_ENABLED) && \
417 (RKH_CFG_QUE_IS_FULL_EN != RKH_DISABLED))
418 #error "RKH_CFG_QUE_IS_FULL_EN illegally #define'd in 'rkhcfg.h'"
419 #error " [MUST be RKH_ENABLED ] "
420 #error " [ || RKH_DISABLED] "
421
422#endif
423
424#ifndef RKH_CFG_QUE_GET_NELEMS_EN
425 #error "RKH_CFG_QUE_GET_NELEMS_EN not #define'd in 'rkhcfg.h'"
426 #error " [MUST be RKH_ENABLED ] "
427 #error " [ || RKH_DISABLED] "
428
429#elif ((RKH_CFG_QUE_GET_NELEMS_EN != RKH_ENABLED) && \
430 (RKH_CFG_QUE_GET_NELEMS_EN != RKH_DISABLED))
431 #error "RKH_CFG_QUE_GET_NELEMS_EN illegally #define'd in 'rkhcfg.h'"
432 #error " [MUST be RKH_ENABLED ] "
433 #error " [ || RKH_DISABLED] "
434
435#endif
436
437#ifndef RKH_CFG_QUE_PUT_LIFO_EN
438 #error "RKH_CFG_QUE_PUT_LIFO_EN not #define'd in 'rkhcfg.h'"
439 #error " [MUST be RKH_ENABLED ] "
440 #error " [ || RKH_DISABLED] "
441
442#elif ((RKH_CFG_QUE_PUT_LIFO_EN != RKH_ENABLED) && \
443 (RKH_CFG_QUE_PUT_LIFO_EN != RKH_DISABLED))
444 #error "RKH_CFG_QUE_PUT_LIFO_EN illegally #define'd in 'rkhcfg.h'"
445 #error " [MUST be RKH_ENABLED ] "
446 #error " [ || RKH_DISABLED] "
447
448#endif
449
450#ifndef RKH_CFG_QUE_PRIORITY_EN
451 #warning "RKH_CFG_QUE_PRIORITY_EN not #define'd in 'rkhcfg.h'"
452 #warning " [MUST be RKH_ENABLED ] "
453 #warning " [ || RKH_DISABLED] "
454
455#elif ((RKH_CFG_QUE_PRIORITY_EN != RKH_ENABLED) && \
456 (RKH_CFG_QUE_PRIORITY_EN != RKH_DISABLED))
457 #warning "RKH_CFG_QUE_PRIORITY_EN illegally #define'd in 'rkhcfg.h'"
458 #warning " [MUST be RKH_ENABLED ] "
459 #warning " [ || RKH_DISABLED] "
460
461#endif
462
463#ifndef RKH_CFG_QUE_GET_INFO_EN
464 #error "RKH_CFG_QUE_GET_INFO_EN not #define'd in 'rkhcfg.h'"
465 #error " [MUST be RKH_ENABLED ] "
466 #error " [ || RKH_DISABLED] "
467
468#elif ((RKH_CFG_QUE_GET_INFO_EN != RKH_ENABLED) && \
469 (RKH_CFG_QUE_GET_INFO_EN != RKH_DISABLED))
470 #error "RKH_CFG_QUE_GET_INFO_EN illegally #define'd in 'rkhcfg.h'"
471 #error " [MUST be RKH_ENABLED ] "
472 #error " [ || RKH_DISABLED] "
473
474#endif
475
476/* TIMER --------------------------------------------------------- */
477#ifndef RKH_CFG_TMR_EN
478 #error "RKH_CFG_TMR_EN not #define'd in 'rkhcfg.h'"
479 #error " [MUST be RKH_ENABLED ] "
480 #error " [ || RKH_DISABLED] "
481
482#elif ((RKH_CFG_TMR_EN != RKH_ENABLED) && \
483 (RKH_CFG_TMR_EN != RKH_DISABLED))
484 #error "RKH_CFG_TMR_EN illegally #define'd in 'rkhcfg.h'"
485 #error " [MUST be RKH_ENABLED ] "
486 #error " [ || RKH_DISABLED] "
487
488#elif (RKH_CFG_TMR_EN == RKH_ENABLED)
489 #ifndef RKH_CFG_FWK_TICK_RATE_HZ
490 #error "RKH_CFG_FWK_TICK_RATE_HZ not #define'd in 'rkhcfg.h'"
491 #error " [MUST be RKH_ENABLED ] "
492 #error " [ || RKH_DISABLED] "
493 #elif (RKH_CFG_FWK_TICK_RATE_HZ <= 0u)
494 #error "RKH_CFG_FWK_TICK_RATE_HZ illegally #define'd in 'rkhcfg.h'"
495 #error " [MUST be > 0] "
496 #endif
497
498 #ifndef RKH_CFG_TMR_SIZEOF_NTIMER
499 #error "RKH_CFG_TMR_SIZEOF_NTIMER not #define'd in 'rkhcfg.h'"
500 #error " [MUST be 8 ( 8-bit size)] "
501 #error " [ || 16 (16-bit size)] "
502 #error " [ || 32 (32-bit size)] "
503
504 #elif ((RKH_CFG_TMR_SIZEOF_NTIMER != 8) && \
505 (RKH_CFG_TMR_SIZEOF_NTIMER != 16) && \
506 (RKH_CFG_TMR_SIZEOF_NTIMER != 32))
507 #error "RKH_CFG_TMR_SIZEOF_NTIMER illegally #define'd in 'rkhcfg.h'"
508 #error " [MUST be 8 ( 8-bit size)] "
509 #error " [ || 16 (16-bit size)] "
510 #error " [ || 32 (32-bit size)] "
511 #endif
512
513 #ifndef RKH_CFG_TMR_HOOK_EN
514 #error "RKH_CFG_TMR_HOOK_EN not #define'd in 'rkhcfg.h'"
515 #error " [MUST be RKH_ENABLED ] "
516 #error " [ || RKH_DISABLED] "
517
518 #elif ((RKH_CFG_TMR_HOOK_EN != RKH_ENABLED) && \
519 (RKH_CFG_TMR_HOOK_EN != RKH_DISABLED))
520 #error "RKH_CFG_TMR_HOOK_EN illegally #define'd in 'rkhcfg.h'"
521 #error " [MUST be RKH_ENABLED ] "
522 #error " [ || RKH_DISABLED] "
523 #endif
524
525 #ifndef RKH_CFG_TMR_GET_INFO_EN
526 #error "RKH_CFG_TMR_GET_INFO_EN not #define'd in 'rkhcfg.h'"
527 #error " [MUST be RKH_ENABLED ] "
528 #error " [ || RKH_DISABLED] "
529
530 #elif ((RKH_CFG_TMR_GET_INFO_EN != RKH_ENABLED) && \
531 (RKH_CFG_TMR_GET_INFO_EN != RKH_DISABLED))
532 #error "RKH_CFG_TMR_GET_INFO_EN illegally #define'd in 'rkhcfg.h'"
533 #error " [MUST be RKH_ENABLED ] "
534 #error " [ || RKH_DISABLED] "
535 #endif
536
537#endif
538
539/* STATE MACHINE APPLICATIONS -------------------------------------------- */
540#ifndef RKH_CFG_SMA_GET_INFO_EN
541 #error "RKH_CFG_SMA_GET_INFO_EN not #define'd in 'rkhcfg.h'"
542 #error " [MUST be RKH_ENABLED ] "
543 #error " [ || RKH_DISABLED] "
544
545#elif ((RKH_CFG_SMA_GET_INFO_EN != RKH_ENABLED) && \
546 (RKH_CFG_SMA_GET_INFO_EN != RKH_DISABLED))
547 #error "RKH_CFG_SMA_GET_INFO_EN illegally #define'd in 'rkhcfg.h'"
548 #error " [MUST be RKH_ENABLED ] "
549 #error " [ || RKH_DISABLED] "
550
551#endif
552
553#ifndef RKH_CFG_SMA_PPRO_EN
554 #error "RKH_CFG_SMA_PPRO_EN not #define'd in 'rkhcfg.h'"
555 #error " [MUST be RKH_ENABLED ] "
556 #error " [ || RKH_DISABLED] "
557
558#elif ((RKH_CFG_SMA_PPRO_EN != RKH_ENABLED) && \
559 (RKH_CFG_SMA_PPRO_EN != RKH_DISABLED))
560 #error "RKH_CFG_SMA_PPRO_EN illegally #define'd in 'rkhcfg.h'"
561 #error " [MUST be RKH_ENABLED ] "
562 #error " [ || RKH_DISABLED] "
563
564#endif
565
566#ifndef RKH_CFG_SMA_HCAL_EN
567 #error "RKH_CFG_SMA_HCAL_EN not #define'd in 'rkhcfg.h'"
568 #error " [MUST be RKH_ENABLED ] "
569 #error " [ || RKH_DISABLED] "
570
571#elif ((RKH_CFG_SMA_HCAL_EN != RKH_ENABLED) && \
572 (RKH_CFG_SMA_HCAL_EN != RKH_DISABLED))
573 #error "RKH_CFG_SMA_HCAL_EN illegally #define'd in 'rkhcfg.h'"
574 #error " [MUST be RKH_ENABLED ] "
575 #error " [ || RKH_DISABLED] "
576
577#endif
578
579#ifndef RKH_CFG_SMA_MAX_HCAL_DEPTH
580 #error "RKH_CFG_SMA_MAX_HCAL_DEPTH not #define'd in 'rkhcfg.h'"
581 #error " [MUST be > 0] "
582 #error " [ && <= 8] "
583
584#elif ((RKH_CFG_SMA_MAX_HCAL_DEPTH == 0) || \
585 (RKH_CFG_SMA_MAX_HCAL_DEPTH > 8))
586 #error "RKH_CFG_SMA_MAX_HCAL_DEPTH illegally #define'd in 'rkhcfg.h'"
587 #error " [MUST be >= 0] "
588 #error " [ && <= 8] "
589
590#endif
591
592#ifndef RKH_CFG_SMA_MAX_TRC_SEGS
593 #error "RKH_CFG_SMA_MAX_TRC_SEGS not #define'd in 'rkhcfg.h'"
594 #error " [MUST be > 0] "
595 #error " [ && <= 8] "
596
597#elif ((RKH_CFG_SMA_MAX_TRC_SEGS == 0) || \
598 (RKH_CFG_SMA_MAX_TRC_SEGS > 8))
599 #error "RKH_CFG_SMA_MAX_TRC_SEGS illegally #define'd in 'rkhcfg.h'"
600 #error " [MUST be >= 0] "
601 #error " [ && <= 8] "
602
603#endif
604
605#ifndef RKH_CFG_SMA_PSEUDOSTATE_EN
606 #error "RKH_CFG_SMA_PSEUDOSTATE_EN not #define'd in 'rkhcfg.h'"
607 #error " [MUST be RKH_ENABLED ] "
608 #error " [ || RKH_DISABLED] "
609
610#elif ((RKH_CFG_SMA_PSEUDOSTATE_EN != RKH_ENABLED) && \
611 (RKH_CFG_SMA_PSEUDOSTATE_EN != RKH_DISABLED))
612 #error "RKH_CFG_SMA_PSEUDOSTATE_EN illegally #define'd in 'rkhcfg.h'"
613 #error " [MUST be RKH_ENABLED ] "
614 #error " [ || RKH_DISABLED] "
615
616#endif
617
618#ifndef RKH_CFG_SMA_DEEP_HIST_EN
619 #error "RKH_CFG_SMA_DEEP_HIST_EN not #define'd in 'rkhcfg.h'"
620 #error " [MUST be RKH_ENABLED ] "
621 #error " [ || RKH_DISABLED] "
622
623#elif ((RKH_CFG_SMA_DEEP_HIST_EN != RKH_ENABLED) && \
624 (RKH_CFG_SMA_DEEP_HIST_EN != RKH_DISABLED))
625 #error "RKH_CFG_SMA_DEEP_HIST_EN illegally #define'd in 'rkhcfg.h'"
626 #error " [MUST be RKH_ENABLED ] "
627 #error " [ || RKH_DISABLED] "
628
629#endif
630
631#ifndef RKH_CFG_SMA_SHALLOW_HIST_EN
632 #error "RKH_CFG_SMA_SHALLOW_HIST_EN not #define'd in 'rkhcfg.h'"
633 #error " [MUST be RKH_ENABLED ] "
634 #error " [ || RKH_DISABLED] "
635
636#elif ((RKH_CFG_SMA_SHALLOW_HIST_EN != RKH_ENABLED) && \
637 (RKH_CFG_SMA_SHALLOW_HIST_EN != RKH_DISABLED))
638 #error "RKH_CFG_SMA_SHALLOW_HIST_EN illegally #define'd in 'rkhcfg.h'"
639 #error " [MUST be RKH_ENABLED ] "
640 #error " [ || RKH_DISABLED] "
641
642#endif
643
644#ifndef RKH_CFG_SMA_CHOICE_EN
645 #error "RKH_CFG_SMA_CHOICE_EN not #define'd in 'rkhcfg.h'"
646 #error " [MUST be RKH_ENABLED ] "
647 #error " [ || RKH_DISABLED] "
648
649#elif ((RKH_CFG_SMA_CHOICE_EN != RKH_ENABLED) && \
650 (RKH_CFG_SMA_CHOICE_EN != RKH_DISABLED))
651 #error "RKH_CFG_SMA_CHOICE_EN illegally #define'd in 'rkhcfg.h'"
652 #error " [MUST be RKH_ENABLED ] "
653 #error " [ || RKH_DISABLED] "
654
655#endif
656
657#ifndef RKH_CFG_SMA_CONDITIONAL_EN
658 #error "RKH_CFG_SMA_CONDITIONAL_EN not #define'd in 'rkhcfg.h'"
659 #error " [MUST be RKH_ENABLED ] "
660 #error " [ || RKH_DISABLED] "
661
662#elif ((RKH_CFG_SMA_CONDITIONAL_EN != RKH_ENABLED) && \
663 (RKH_CFG_SMA_CONDITIONAL_EN != RKH_DISABLED))
664 #error "RKH_CFG_SMA_CONDITIONAL_EN illegally #define'd in 'rkhcfg.h'"
665 #error " [MUST be RKH_ENABLED ] "
666 #error " [ || RKH_DISABLED] "
667
668#endif
669
670#ifndef RKH_CFG_SMA_SUBMACHINE_EN
671 #error "RKH_CFG_SMA_SUBMACHINE_EN not #define'd in 'rkhcfg.h'"
672 #error " [MUST be RKH_ENABLED ] "
673 #error " [ || RKH_DISABLED] "
674
675#elif ((RKH_CFG_SMA_SUBMACHINE_EN != RKH_ENABLED) && \
676 (RKH_CFG_SMA_SUBMACHINE_EN != RKH_DISABLED))
677 #error "RKH_CFG_SMA_SUBMACHINE_EN illegally #define'd in 'rkhcfg.h'"
678 #error " [MUST be RKH_ENABLED ] "
679 #error " [ || RKH_DISABLED] "
680
681#endif
682
683#ifndef RKH_CFG_SMA_TRC_SNDR_EN
684 #error "RKH_CFG_SMA_TRC_SNDR_EN not #define'd in 'rkhcfg.h'"
685 #error " [MUST be RKH_ENABLED ] "
686 #error " [ || RKH_DISABLED] "
687
688#elif ((RKH_CFG_SMA_TRC_SNDR_EN != RKH_ENABLED) && \
689 (RKH_CFG_SMA_TRC_SNDR_EN != RKH_DISABLED))
690 #error "RKH_CFG_SMA_TRC_SNDR_EN illegally #define'd in 'rkhcfg.h'"
691 #error " [MUST be RKH_ENABLED ] "
692 #error " [ || RKH_DISABLED] "
693
694#endif
695
696#ifndef RKH_CFG_SMA_ENT_ARG_SMA_EN
697 #error "RKH_CFG_SMA_ENT_ARG_SMA_EN not #define'd in 'rkhcfg.h'"
698 #error " [MUST be RKH_ENABLED ] "
699 #error " [ || RKH_DISABLED] "
700
701#elif ((RKH_CFG_SMA_ENT_ARG_SMA_EN != RKH_ENABLED) && \
702 (RKH_CFG_SMA_ENT_ARG_SMA_EN != RKH_DISABLED))
703 #error "RKH_CFG_SMA_ENT_ARG_SMA_EN illegally #define'd in 'rkhcfg.h'"
704 #error " [MUST be RKH_ENABLED ] "
705 #error " [ || RKH_DISABLED] "
706
707#endif
708
709#ifndef RKH_CFG_SMA_ENT_ARG_STATE_EN
710 #error "RKH_CFG_SMA_ENT_ARG_STATE_EN not #define'd in 'rkhcfg.h'"
711 #error " [MUST be RKH_ENABLED ] "
712 #error " [ || RKH_DISABLED] "
713
714#elif ((RKH_CFG_SMA_ENT_ARG_STATE_EN != RKH_ENABLED) && \
715 (RKH_CFG_SMA_ENT_ARG_STATE_EN != RKH_DISABLED))
716 #error "RKH_CFG_SMA_ENT_ARG_STATE_EN illegally #define'd in 'rkhcfg.h'"
717 #error " [MUST be RKH_ENABLED ] "
718 #error " [ || RKH_DISABLED] "
719
720#endif
721
722#ifndef RKH_CFG_SMA_EXT_ARG_SMA_EN
723 #error "RKH_CFG_SMA_EXT_ARG_SMA_EN not #define'd in 'rkhcfg.h'"
724 #error " [MUST be RKH_ENABLED ] "
725 #error " [ || RKH_DISABLED] "
726
727#elif ((RKH_CFG_SMA_EXT_ARG_SMA_EN != RKH_ENABLED) && \
728 (RKH_CFG_SMA_EXT_ARG_SMA_EN != RKH_DISABLED))
729 #error "RKH_CFG_SMA_EXT_ARG_SMA_EN illegally #define'd in 'rkhcfg.h'"
730 #error " [MUST be RKH_ENABLED ] "
731 #error " [ || RKH_DISABLED] "
732
733#endif
734
735#ifndef RKH_CFG_SMA_EXT_ARG_STATE_EN
736 #error "RKH_CFG_SMA_EXT_ARG_STATE_EN not #define'd in 'rkhcfg.h'"
737 #error " [MUST be RKH_ENABLED ] "
738 #error " [ || RKH_DISABLED] "
739
740#elif ((RKH_CFG_SMA_EXT_ARG_STATE_EN != RKH_ENABLED) && \
741 (RKH_CFG_SMA_EXT_ARG_STATE_EN != RKH_DISABLED))
742 #error "RKH_CFG_SMA_EXT_ARG_STATE_EN illegally #define'd in 'rkhcfg.h'"
743 #error " [MUST be RKH_ENABLED ] "
744 #error " [ || RKH_DISABLED] "
745
746#endif
747
748#ifndef RKH_CFG_SMA_ACT_ARG_SMA_EN
749 #error "RKH_CFG_SMA_ACT_ARG_SMA_EN not #define'd in 'rkhcfg.h'"
750 #error " [MUST be RKH_ENABLED ] "
751 #error " [ || RKH_DISABLED] "
752
753#elif ((RKH_CFG_SMA_ACT_ARG_SMA_EN != RKH_ENABLED) && \
754 (RKH_CFG_SMA_ACT_ARG_SMA_EN != RKH_DISABLED))
755 #error "RKH_CFG_SMA_ACT_ARG_SMA_EN illegally #define'd in 'rkhcfg.h'"
756 #error " [MUST be RKH_ENABLED ] "
757 #error " [ || RKH_DISABLED] "
758
759#endif
760
761#ifndef RKH_CFG_SMA_ACT_ARG_EVT_EN
762 #error "RKH_CFG_SMA_ACT_ARG_EVT_EN not #define'd in 'rkhcfg.h'"
763 #error " [MUST be RKH_ENABLED ] "
764 #error " [ || RKH_DISABLED] "
765
766#elif ((RKH_CFG_SMA_ACT_ARG_EVT_EN != RKH_ENABLED) && \
767 (RKH_CFG_SMA_ACT_ARG_EVT_EN != RKH_DISABLED))
768 #error "RKH_CFG_SMA_ACT_ARG_EVT_EN illegally #define'd in 'rkhcfg.h'"
769 #error " [MUST be RKH_ENABLED ] "
770 #error " [ || RKH_DISABLED] "
771
772#endif
773
774#ifndef RKH_CFG_SMA_GRD_ARG_EVT_EN
775 #error "RKH_CFG_SMA_GRD_ARG_EVT_EN not #define'd in 'rkhcfg.h'"
776 #error " [MUST be RKH_ENABLED ] "
777 #error " [ || RKH_DISABLED] "
778
779#elif ((RKH_CFG_SMA_GRD_ARG_EVT_EN != RKH_ENABLED) && \
780 (RKH_CFG_SMA_GRD_ARG_EVT_EN != RKH_DISABLED))
781 #error "RKH_CFG_SMA_GRD_ARG_EVT_EN illegally #define'd in 'rkhcfg.h'"
782 #error " [MUST be RKH_ENABLED ] "
783 #error " [ || RKH_DISABLED] "
784
785#endif
786
787#ifndef RKH_CFG_SMA_GRD_ARG_SMA_EN
788 #error "RKH_CFG_SMA_GRD_ARG_SMA_EN not #define'd in 'rkhcfg.h'"
789 #error " [MUST be RKH_ENABLED ] "
790 #error " [ || RKH_DISABLED] "
791
792#elif ((RKH_CFG_SMA_GRD_ARG_SMA_EN != RKH_ENABLED) && \
793 (RKH_CFG_SMA_GRD_ARG_SMA_EN != RKH_DISABLED))
794 #error "RKH_CFG_SMA_GRD_ARG_SMA_EN illegally #define'd in 'rkhcfg.h'"
795 #error " [MUST be RKH_ENABLED ] "
796 #error " [ || RKH_DISABLED] "
797
798#endif
799
800#ifndef RKH_CFG_SMA_PPRO_ARG_SMA_EN
801 #error "RKH_CFG_SMA_PPRO_ARG_SMA_EN not #define'd in 'rkhcfg.h'"
802 #error " [MUST be RKH_ENABLED ] "
803 #error " [ || RKH_DISABLED] "
804
805#elif ((RKH_CFG_SMA_PPRO_ARG_SMA_EN != RKH_ENABLED) && \
806 (RKH_CFG_SMA_PPRO_ARG_SMA_EN != RKH_DISABLED))
807 #error "RKH_CFG_SMA_PPRO_ARG_SMA_EN illegally #define'd in 'rkhcfg.h'"
808 #error " [MUST be RKH_ENABLED ] "
809 #error " [ || RKH_DISABLED] "
810
811#endif
812
813#ifndef RKH_CFG_SMA_SM_CONST_EN
814 #error "RKH_CFG_SMA_SM_CONST_EN not #define'd in 'rkhcfg.h'"
815 #error " [MUST be RKH_ENABLED ] "
816 #error " [ || RKH_DISABLED] "
817
818#elif ((RKH_CFG_SMA_SM_CONST_EN != RKH_ENABLED) && \
819 (RKH_CFG_SMA_SM_CONST_EN != RKH_DISABLED))
820 #error "RKH_CFG_SMA_SM_CONST_EN illegally #define'd in 'rkhcfg.h'"
821 #error " [MUST be RKH_ENABLED ] "
822 #error " [ || RKH_DISABLED] "
823
824#endif
825
826#ifndef RKH_CFG_SMA_RT_CTOR_EN
827 #error "RKH_CFG_SMA_RT_CTOR_EN not #define'd in 'rkhcfg.h'"
828 #error " [MUST be RKH_ENABLED ] "
829 #error " [ || RKH_DISABLED] "
830
831#elif ((RKH_CFG_SMA_RT_CTOR_EN != RKH_ENABLED) && \
832 (RKH_CFG_SMA_RT_CTOR_EN != RKH_DISABLED))
833 #error "RKH_CFG_SMA_RT_CTOR_EN illegally #define'd in 'rkhcfg.h'"
834 #error " [MUST be RKH_ENABLED ] "
835 #error " [ || RKH_DISABLED] "
836
837#endif
838
839#ifndef RKH_CFG_SMA_VFUNCT_EN
840 #error "RKH_CFG_SMA_VFUNCT_EN not #define'd in 'rkhcfg.h'"
841 #error " [MUST be RKH_ENABLED ] "
842 #error " [ || RKH_DISABLED] "
843
844#elif ((RKH_CFG_SMA_VFUNCT_EN != RKH_ENABLED) && \
845 (RKH_CFG_SMA_VFUNCT_EN != RKH_DISABLED))
846 #error "RKH_CFG_SMA_VFUNCT_EN illegally #define'd in 'rkhcfg.h'"
847 #error " [MUST be RKH_ENABLED ] "
848 #error " [ || RKH_DISABLED] "
849
850#endif
851
852#ifndef RKH_CFG_SMA_ORTHREG_EN
853 #error "RKH_CFG_SMA_ORTHREG_EN not #define'd in 'rkhcfg.h'"
854 #error " [MUST be RKH_ENABLED ] "
855 #error " [ || RKH_DISABLED] "
856
857#elif ((RKH_CFG_SMA_ORTHREG_EN != RKH_ENABLED) && \
858 (RKH_CFG_SMA_ORTHREG_EN != RKH_DISABLED))
859 #error "RKH_CFG_SMA_ORTHREG_EN illegally #define'd in 'rkhcfg.h'"
860 #error " [MUST be RKH_ENABLED ] "
861 #error " [ || RKH_DISABLED] "
862
863#endif
864
865/* TRACE --------------------------------------------------------- */
866#ifndef RKH_CFG_TRC_EN
867 #error "RKH_CFG_TRC_EN not #define'd in 'rkhcfg.h'"
868 #error " [MUST be RKH_ENABLED ] "
869 #error " [ || RKH_DISABLED] "
870
871#elif ((RKH_CFG_TRC_EN != RKH_ENABLED) && \
872 (RKH_CFG_TRC_EN != RKH_DISABLED))
873 #error "RKH_CFG_TRC_EN illegally #define'd in 'rkhcfg.h'"
874 #error " [MUST be RKH_ENABLED ] "
875 #error " [ || RKH_DISABLED] "
876
877#elif (RKH_CFG_TRC_EN == RKH_ENABLED)
878
879 #ifndef RKH_CFG_TRC_RTFIL_EN
880 #error "RKH_CFG_TRC_RTFIL_EN not #define'd in 'rkhcfg.h'"
881 #error " [MUST be RKH_ENABLED ] "
882 #error " [ || RKH_DISABLED] "
883
884 #elif ((RKH_CFG_TRC_RTFIL_EN != RKH_ENABLED) && \
885 (RKH_CFG_TRC_RTFIL_EN != RKH_DISABLED))
886 #error "RKH_CFG_TRC_RTFIL_EN illegally #define'd in 'rkhcfg.h'"
887 #error " [MUST be RKH_ENABLED ] "
888 #error " [ || RKH_DISABLED] "
889 #endif
890
891 #ifndef RKH_CFG_TRC_RTFIL_SMA_EN
892 #error "RKH_CFG_TRC_RTFIL_SMA_EN not #define'd in 'rkhcfg.h'"
893 #error " [MUST be RKH_ENABLED ] "
894 #error " [ || RKH_DISABLED] "
895
896 #elif ((RKH_CFG_TRC_RTFIL_SMA_EN != RKH_ENABLED) && \
897 (RKH_CFG_TRC_RTFIL_SMA_EN != RKH_DISABLED))
898 #error "RKH_CFG_TRC_RTFIL_SMA_EN illegally #define'd in 'rkhcfg.h'"
899 #error " [MUST be RKH_ENABLED ] "
900 #error " [ || RKH_DISABLED] "
901 #endif
902
903 #ifndef RKH_CFG_TRC_RTFIL_SIGNAL_EN
904 #error "RKH_CFG_TRC_RTFIL_SIGNAL_EN not #define'd in 'rkhcfg.h'"
905 #error " [MUST be RKH_ENABLED ] "
906 #error " [ || RKH_DISABLED] "
907
908 #elif ((RKH_CFG_TRC_RTFIL_SIGNAL_EN != RKH_ENABLED) && \
909 (RKH_CFG_TRC_RTFIL_SIGNAL_EN != RKH_DISABLED))
910 #error "RKH_CFG_TRC_RTFIL_SIGNAL_EN illegally #define'd in 'rkhcfg.h'"
911 #error " [MUST be RKH_ENABLED ] "
912 #error " [ || RKH_DISABLED] "
913 #endif
914
915 #ifndef RKH_CFG_TRC_USER_TRACE_EN
916 #error "RKH_CFG_TRC_USER_TRACE_EN not #define'd in 'rkhcfg.h'"
917 #error " [MUST be RKH_ENABLED ] "
918 #error " [ || RKH_DISABLED] "
919
920 #elif ((RKH_CFG_TRC_USER_TRACE_EN != RKH_ENABLED) && \
921 (RKH_CFG_TRC_USER_TRACE_EN != RKH_DISABLED))
922 #error "RKH_CFG_TRC_USER_TRACE_EN illegally #define'd in 'rkhcfg.h'"
923 #error " [MUST be RKH_ENABLED ] "
924 #error " [ || RKH_DISABLED] "
925 #endif
926
927 #ifndef RKH_CFG_TRC_ALL_EN
928 #error "RKH_CFG_TRC_ALL_EN not #define'd in 'rkhcfg.h'"
929 #error " [MUST be RKH_ENABLED ] "
930 #error " [ || RKH_DISABLED] "
931
932 #elif ((RKH_CFG_TRC_ALL_EN != RKH_ENABLED) && \
933 (RKH_CFG_TRC_ALL_EN != RKH_DISABLED))
934 #error "RKH_CFG_TRC_ALL_EN illegally #define'd in 'rkhcfg.h'"
935 #error " [MUST be RKH_ENABLED ] "
936 #error " [ || RKH_DISABLED] "
937 #endif
938
939 #ifndef RKH_CFG_TRC_MP_EN
940 #error "RKH_CFG_TRC_MP_EN not #define'd in 'rkhcfg.h'"
941 #error " [MUST be RKH_ENABLED ] "
942 #error " [ || RKH_DISABLED] "
943
944 #elif ((RKH_CFG_TRC_MP_EN != RKH_ENABLED) && \
945 (RKH_CFG_TRC_MP_EN != RKH_DISABLED))
946 #error "RKH_CFG_TRC_MP_EN illegally #define'd in 'rkhcfg.h'"
947 #error " [MUST be RKH_ENABLED ] "
948 #error " [ || RKH_DISABLED] "
949 #endif
950
951 #ifndef RKH_CFG_TRC_QUE_EN
952 #error "RKH_CFG_TRC_QUE_EN not #define'd in 'rkhcfg.h'"
953 #error " [MUST be RKH_ENABLED ] "
954 #error " [ || RKH_DISABLED] "
955
956 #elif ((RKH_CFG_TRC_QUE_EN != RKH_ENABLED) && \
957 (RKH_CFG_TRC_QUE_EN != RKH_DISABLED))
958 #error "RKH_CFG_TRC_QUE_EN illegally #define'd in 'rkhcfg.h'"
959 #error " [MUST be RKH_ENABLED ] "
960 #error " [ || RKH_DISABLED] "
961 #endif
962
963 #ifndef RKH_CFG_TRC_SMA_EN
964 #error "RKH_CFG_TRC_SMA_EN not #define'd in 'rkhcfg.h'"
965 #error " [MUST be RKH_ENABLED ] "
966 #error " [ || RKH_DISABLED] "
967
968 #elif ((RKH_CFG_TRC_SMA_EN != RKH_ENABLED) && \
969 (RKH_CFG_TRC_SMA_EN != RKH_DISABLED))
970 #error "RKH_CFG_TRC_SMA_EN illegally #define'd in 'rkhcfg.h'"
971 #error " [MUST be RKH_ENABLED ] "
972 #error " [ || RKH_DISABLED] "
973 #endif
974
975 #ifndef RKH_CFG_TRC_TMR_EN
976 #error "RKH_CFG_TRC_TMR_EN not #define'd in 'rkhcfg.h'"
977 #error " [MUST be RKH_ENABLED ] "
978 #error " [ || RKH_DISABLED] "
979
980 #elif ((RKH_CFG_TRC_TMR_EN != RKH_ENABLED) && \
981 (RKH_CFG_TRC_TMR_EN != RKH_DISABLED))
982 #error "RKH_CFG_TRC_TMR_EN illegally #define'd in 'rkhcfg.h'"
983 #error " [MUST be RKH_ENABLED ] "
984 #error " [ || RKH_DISABLED] "
985 #endif
986
987 #ifndef RKH_CFG_TRC_SM_EN
988 #error "RKH_CFG_TRC_SM_EN not #define'd in 'rkhcfg.h'"
989 #error " [MUST be RKH_ENABLED ] "
990 #error " [ || RKH_DISABLED] "
991
992 #elif ((RKH_CFG_TRC_SM_EN != RKH_ENABLED) && \
993 (RKH_CFG_TRC_SM_EN != RKH_DISABLED))
994 #error "RKH_CFG_TRC_SM_EN illegally #define'd in 'rkhcfg.h'"
995 #error " [MUST be RKH_ENABLED ] "
996 #error " [ || RKH_DISABLED] "
997 #endif
998
999 #ifndef RKH_CFG_TRC_FWK_EN
1000 #error "RKH_CFG_TRC_FWK_EN not #define'd in 'rkhcfg.h'"
1001 #error " [MUST be RKH_ENABLED ] "
1002 #error " [ || RKH_DISABLED] "
1003
1004 #elif ((RKH_CFG_TRC_FWK_EN != RKH_ENABLED) && \
1005 (RKH_CFG_TRC_FWK_EN != RKH_DISABLED))
1006 #error "RKH_CFG_TRC_FWK_EN illegally #define'd in 'rkhcfg.h'"
1007 #error " [MUST be RKH_ENABLED ] "
1008 #error " [ || RKH_DISABLED] "
1009 #endif
1010
1011 #ifndef RKH_CFG_TRC_ASSERT_EN
1012 #error "RKH_CFG_TRC_ASSERT_EN not #define'd in 'rkhcfg.h'"
1013 #error " [MUST be RKH_ENABLED ] "
1014 #error " [ || RKH_DISABLED] "
1015
1016 #elif ((RKH_CFG_TRC_ASSERT_EN != RKH_ENABLED) && \
1017 (RKH_CFG_TRC_ASSERT_EN != RKH_DISABLED))
1018 #error "RKH_CFG_TRC_ASSERT_EN illegally #define'd in 'rkhcfg.h'"
1019 #error " [MUST be RKH_ENABLED ] "
1020 #error " [ || RKH_DISABLED] "
1021 #endif
1022
1023 #ifndef RKH_CFG_TRC_SM_INIT_EN
1024 #error "RKH_CFG_TRC_SM_INIT_EN not #define'd in 'rkhcfg.h'"
1025 #error " [MUST be RKH_ENABLED ] "
1026 #error " [ || RKH_DISABLED] "
1027
1028 #elif ((RKH_CFG_TRC_SM_INIT_EN != RKH_ENABLED) && \
1029 (RKH_CFG_TRC_SM_INIT_EN != RKH_DISABLED))
1030 #error "RKH_CFG_TRC_SM_INIT_EN illegally #define'd in 'rkhcfg.h'"
1031 #error " [MUST be RKH_ENABLED ] "
1032 #error " [ || RKH_DISABLED] "
1033 #endif
1034
1035 #ifndef RKH_CFG_TRC_SM_DCH_EN
1036 #error "RKH_CFG_TRC_SM_DCH_EN not #define'd in 'rkhcfg.h'"
1037 #error " [MUST be RKH_ENABLED ] "
1038 #error " [ || RKH_DISABLED] "
1039
1040 #elif ((RKH_CFG_TRC_SM_DCH_EN != RKH_ENABLED) && \
1041 (RKH_CFG_TRC_SM_DCH_EN != RKH_DISABLED))
1042 #error "RKH_CFG_TRC_SM_DCH_EN illegally #define'd in 'rkhcfg.h'"
1043 #error " [MUST be RKH_ENABLED ] "
1044 #error " [ || RKH_DISABLED] "
1045 #endif
1046
1047 #ifndef RKH_CFG_TRC_SM_CLRH_EN
1048 #error "RKH_CFG_TRC_SM_CLRH_EN not #define'd in 'rkhcfg.h'"
1049 #error " [MUST be RKH_ENABLED ] "
1050 #error " [ || RKH_DISABLED] "
1051
1052 #elif ((RKH_CFG_TRC_SM_CLRH_EN != RKH_ENABLED) && \
1053 (RKH_CFG_TRC_SM_CLRH_EN != RKH_DISABLED))
1054 #error "RKH_CFG_TRC_SM_CLRH_EN illegally #define'd in 'rkhcfg.h'"
1055 #error " [MUST be RKH_ENABLED ] "
1056 #error " [ || RKH_DISABLED] "
1057 #endif
1058
1059 #ifndef RKH_CFG_TRC_SM_TRN_EN
1060 #error "RKH_CFG_TRC_SM_TRN_EN not #define'd in 'rkhcfg.h'"
1061 #error " [MUST be RKH_ENABLED ] "
1062 #error " [ || RKH_DISABLED] "
1063
1064 #elif ((RKH_CFG_TRC_SM_TRN_EN != RKH_ENABLED) && \
1065 (RKH_CFG_TRC_SM_TRN_EN != RKH_DISABLED))
1066 #error "RKH_CFG_TRC_SM_TRN_EN illegally #define'd in 'rkhcfg.h'"
1067 #error " [MUST be RKH_ENABLED ] "
1068 #error " [ || RKH_DISABLED] "
1069 #endif
1070
1071 #ifndef RKH_CFG_TRC_SM_STATE_EN
1072 #error "RKH_CFG_TRC_SM_STATE_EN not #define'd in 'rkhcfg.h'"
1073 #error " [MUST be RKH_ENABLED ] "
1074 #error " [ || RKH_DISABLED] "
1075
1076 #elif ((RKH_CFG_TRC_SM_STATE_EN != RKH_ENABLED) && \
1077 (RKH_CFG_TRC_SM_STATE_EN != RKH_DISABLED))
1078 #error "RKH_CFG_TRC_SM_STATE_EN illegally #define'd in 'rkhcfg.h'"
1079 #error " [MUST be RKH_ENABLED ] "
1080 #error " [ || RKH_DISABLED] "
1081 #endif
1082
1083 #ifndef RKH_CFG_TRC_SM_ENSTATE_EN
1084 #error "RKH_CFG_TRC_SM_ENSTATE_EN not #define'd in 'rkhcfg.h'"
1085 #error " [MUST be RKH_ENABLED ] "
1086 #error " [ || RKH_DISABLED] "
1087
1088 #elif ((RKH_CFG_TRC_SM_ENSTATE_EN != RKH_ENABLED) && \
1089 (RKH_CFG_TRC_SM_ENSTATE_EN != RKH_DISABLED))
1090 #error "RKH_CFG_TRC_SM_ENSTATE_EN illegally #define'd in 'rkhcfg.h'"
1091 #error " [MUST be RKH_ENABLED ] "
1092 #error " [ || RKH_DISABLED] "
1093 #endif
1094
1095 #ifndef RKH_CFG_TRC_SM_EXSTATE_EN
1096 #error "RKH_CFG_TRC_SM_EXSTATE_EN not #define'd in 'rkhcfg.h'"
1097 #error " [MUST be RKH_ENABLED ] "
1098 #error " [ || RKH_DISABLED] "
1099
1100 #elif ((RKH_CFG_TRC_SM_EXSTATE_EN != RKH_ENABLED) && \
1101 (RKH_CFG_TRC_SM_EXSTATE_EN != RKH_DISABLED))
1102 #error "RKH_CFG_TRC_SM_EXSTATE_EN illegally #define'd in 'rkhcfg.h'"
1103 #error " [MUST be RKH_ENABLED ] "
1104 #error " [ || RKH_DISABLED] "
1105 #endif
1106
1107 #ifndef RKH_CFG_TRC_SM_NENEX_EN
1108 #error "RKH_CFG_TRC_SM_NENEX_EN not #define'd in 'rkhcfg.h'"
1109 #error " [MUST be RKH_ENABLED ] "
1110 #error " [ || RKH_DISABLED] "
1111
1112 #elif ((RKH_CFG_TRC_SM_NENEX_EN != RKH_ENABLED) && \
1113 (RKH_CFG_TRC_SM_NENEX_EN != RKH_DISABLED))
1114 #error "RKH_CFG_TRC_SM_NENEX_EN illegally #define'd in 'rkhcfg.h'"
1115 #error " [MUST be RKH_ENABLED ] "
1116 #error " [ || RKH_DISABLED] "
1117 #endif
1118
1119 #ifndef RKH_CFG_TRC_SM_NTRNACT_EN
1120 #error "RKH_CFG_TRC_SM_NTRNACT_EN not #define'd in 'rkhcfg.h'"
1121 #error " [MUST be RKH_ENABLED ] "
1122 #error " [ || RKH_DISABLED] "
1123
1124 #elif ((RKH_CFG_TRC_SM_NTRNACT_EN != RKH_ENABLED) && \
1125 (RKH_CFG_TRC_SM_NTRNACT_EN != RKH_DISABLED))
1126 #error "RKH_CFG_TRC_SM_NTRNACT_EN illegally #define'd in 'rkhcfg.h'"
1127 #error " [MUST be RKH_ENABLED ] "
1128 #error " [ || RKH_DISABLED] "
1129 #endif
1130
1131 #ifndef RKH_CFG_TRC_SM_TS_STATE_EN
1132 #error "RKH_CFG_TRC_SM_TS_STATE_EN not #define'd in 'rkhcfg.h'"
1133 #error " [MUST be RKH_ENABLED ] "
1134 #error " [ || RKH_DISABLED] "
1135
1136 #elif ((RKH_CFG_TRC_SM_TS_STATE_EN != RKH_ENABLED) && \
1137 (RKH_CFG_TRC_SM_TS_STATE_EN != RKH_DISABLED))
1138 #error "RKH_CFG_TRC_SM_TS_STATE_EN illegally #define'd in 'rkhcfg.h'"
1139 #error " [MUST be RKH_ENABLED ] "
1140 #error " [ || RKH_DISABLED] "
1141 #endif
1142
1143 #ifndef RKH_CFG_TRC_SM_PROCESS_EN
1144 #error "RKH_CFG_TRC_SM_PROCESS_EN not #define'd in 'rkhcfg.h'"
1145 #error " [MUST be RKH_ENABLED ] "
1146 #error " [ || RKH_DISABLED] "
1147
1148 #elif ((RKH_CFG_TRC_SM_PROCESS_EN != RKH_ENABLED) && \
1149 (RKH_CFG_TRC_SM_PROCESS_EN != RKH_DISABLED))
1150 #error "RKH_CFG_TRC_SM_PROCESS_EN illegally #define'd in 'rkhcfg.h'"
1151 #error " [MUST be RKH_ENABLED ] "
1152 #error " [ || RKH_DISABLED] "
1153 #endif
1154
1155 #ifndef RKH_CFG_TRC_SM_EXE_ACT_EN
1156 #error "RKH_CFG_TRC_SM_EXE_ACT_EN not #define'd in 'rkhcfg.h'"
1157 #error " [MUST be RKH_ENABLED ] "
1158 #error " [ || RKH_DISABLED] "
1159
1160 #elif ((RKH_CFG_TRC_SM_EXE_ACT_EN != RKH_ENABLED) && \
1161 (RKH_CFG_TRC_SM_EXE_ACT_EN != RKH_DISABLED))
1162 #error "RKH_CFG_TRC_SM_EXE_ACT_EN illegally #define'd in 'rkhcfg.h'"
1163 #error " [MUST be RKH_ENABLED ] "
1164 #error " [ || RKH_DISABLED] "
1165 #endif
1166
1167 #ifndef RKH_CFG_TRC_NSEQ_EN
1168 #error "RKH_CFG_TRC_NSEQ_EN not #define'd in 'rkhcfg.h'"
1169 #error " [MUST be RKH_ENABLED ] "
1170 #error " [ || RKH_DISABLED] "
1171
1172 #elif ((RKH_CFG_TRC_NSEQ_EN != RKH_ENABLED) && \
1173 (RKH_CFG_TRC_NSEQ_EN != RKH_DISABLED))
1174 #error "RKH_CFG_TRC_NSEQ_EN illegally #define'd in 'rkhcfg.h'"
1175 #error " [MUST be RKH_ENABLED ] "
1176 #error " [ || RKH_DISABLED] "
1177 #endif
1178
1179 #ifndef RKH_CFG_TRC_CHK_EN
1180 #error "RKH_CFG_TRC_CHK_EN not #define'd in 'rkhcfg.h'"
1181 #error " [MUST be RKH_ENABLED ] "
1182 #error " [ || RKH_DISABLED] "
1183
1184 #elif ((RKH_CFG_TRC_CHK_EN != RKH_ENABLED) && \
1185 (RKH_CFG_TRC_CHK_EN != RKH_DISABLED))
1186 #error "RKH_CFG_TRC_CHK_EN illegally #define'd in 'rkhcfg.h'"
1187 #error " MUST be RKH_ENABLED ] "
1188 #error " || RKH_DISABLED] "
1189 #endif
1190
1191 #ifndef RKH_CFG_TRC_TSTAMP_EN
1192 #error "RKH_CFG_TRC_TSTAMP_EN not #define'd in 'rkhcfg.h'"
1193 #error " MUST be RKH_ENABLED ] "
1194 #error " [ || RKH_DISABLED] "
1195
1196 #elif ((RKH_CFG_TRC_TSTAMP_EN != RKH_ENABLED) && \
1197 (RKH_CFG_TRC_TSTAMP_EN != RKH_DISABLED))
1198 #error "RKH_CFG_TRC_TSTAMP_EN illegally #define'd in 'rkhcfg.h'"
1199 #error " [MUST be RKH_ENABLED ] "
1200 #error " [ || RKH_DISABLED] "
1201 #endif
1202
1203 #ifndef RKH_CFGPORT_TRC_SIZEOF_TSTAMP
1204 #error "RKH_CFGPORT_TRC_SIZEOF_TSTAMP not #define'd in 'rkhcfg.h'"
1205 #error " [MUST be 8 ( 8-bit size)] "
1206 #error " [ || 16 (16-bit size)] "
1207 #error " [ || 32 (32-bit size)] "
1208
1209 #elif ((RKH_CFGPORT_TRC_SIZEOF_TSTAMP != 8) && \
1210 (RKH_CFGPORT_TRC_SIZEOF_TSTAMP != 16) && \
1211 (RKH_CFGPORT_TRC_SIZEOF_TSTAMP != 32))
1212 #error "RKH_CFGPORT_TRC_SIZEOF_TSTAMP illegally #define'd in 'rkhcfg.h'"
1213 #error " [MUST be 8 ( 8-bit size)] "
1214 #error " [ || 16 (16-bit size)] "
1215 #error " [ || 32 (32-bit size)] "
1216 #endif
1217
1218 #ifndef RKH_CFGPORT_SMA_QSTO_EN
1219 #error "RKH_CFGPORT_SMA_QSTO_EN not #define'd in 'rkhcfg.h'"
1220 #error " [MUST be RKH_ENABLED ] "
1221 #error " [ || RKH_DISABLED] "
1222
1223 #elif ((RKH_CFGPORT_SMA_QSTO_EN != RKH_ENABLED) && \
1224 (RKH_CFGPORT_SMA_QSTO_EN != RKH_DISABLED))
1225 #error "RKH_CFGPORT_SMA_QSTO_EN illegally #define'd in 'rkhcfg.h'"
1226 #error " [MUST be RKH_ENABLED ] "
1227 #error " [ || RKH_DISABLED] "
1228 #endif
1229
1230 #ifndef RKH_CFGPORT_SMA_STK_EN
1231 #error "RKH_CFGPORT_SMA_STK_EN not #define'd in 'rkhcfg.h'"
1232 #error " [MUST be RKH_ENABLED ] "
1233 #error " [ || RKH_DISABLED] "
1234
1235 #elif ((RKH_CFGPORT_SMA_STK_EN != RKH_ENABLED) && \
1236 (RKH_CFGPORT_SMA_STK_EN != RKH_DISABLED))
1237 #error "RKH_CFGPORT_SMA_STK_EN illegally #define'd in 'rkhcfg.h'"
1238 #error " [MUST be RKH_ENABLED ] "
1239 #error " [ || RKH_DISABLED] "
1240 #endif
1241
1242 #ifndef RKH_CFG_TRC_SIZEOF_STREAM
1243 #error "RKH_CFG_TRC_SIZEOF_STREAM not #define'd in 'rkhcfg.h'"
1244 #error " [MUST be > 0] "
1245 #error " [ && <= 2048] "
1246
1247 #elif ((RKH_CFG_TRC_SIZEOF_STREAM == 0) || \
1248 (RKH_CFG_TRC_SIZEOF_STREAM > 2048))
1249 #error "RKH_CFG_TRC_SIZEOF_STREAM illegally #define'd in 'rkhcfg.h'"
1250 #error " [MUST be > 0] "
1251 #error " [ && <= 2048] "
1252 #endif
1253
1254#endif
1255
1256/* FRAMEWORK --------------------------------------------------------- */
1257#ifndef RKH_CFG_FWK_MAX_SMA
1258 #error "RKH_CFG_FWK_MAX_SMA not #define'd in 'rkhcfg.h'"
1259 #error " [MUST be >= 1] "
1260 #error " [ && <= 64] "
1261
1262#elif ((RKH_CFG_FWK_MAX_SMA == 0) || (RKH_CFG_FWK_MAX_SMA > 64))
1263 #error "RKH_CFG_FWK_MAX_SMA illegally #define'd in 'rkhcfg.h'"
1264 #error " [MUST be >= 1] "
1265 #error " [ && <= 64] "
1266
1267#endif
1268
1269#ifndef RKH_CFG_FWK_DYN_EVT_EN
1270 #error "RKH_CFG_FWK_DYN_EVT_EN not #define'd in 'rkhcfg.h'"
1271 #error " [MUST be RKH_ENABLED ] "
1272 #error " [ || RKH_DISABLED] "
1273
1274#elif (RKH_CFG_FWK_DYN_EVT_EN == RKH_DISABLED)
1275
1276 /*
1277 * If the dynamic event support is disabled, RKH not allows to use
1278 * events with parameters, defer/recall mechanism, allocating and
1279 * recycling dynamic events, among other features.
1280 */
1281 #undef RKH_CFGPORT_NATIVE_DYN_EVT_EN
1282 #define RKH_CFGPORT_NATIVE_DYN_EVT_EN RKH_DISABLED
1283
1284#endif
1285
1286#ifndef RKH_CFG_FWK_MAX_EVT_POOL
1287 #error "RKH_CFG_FWK_MAX_EVT_POOL not #define'd in 'rkhcfg.h'"
1288 #error " [MUST be > 0] "
1289 #error " [ && < 256] "
1290
1291#elif (RKH_CFG_FWK_DYN_EVT_EN == RKH_ENABLED)
1292 #if ((RKH_CFG_FWK_MAX_EVT_POOL == 0) || (RKH_CFG_FWK_MAX_EVT_POOL > 255))
1293 #error "RKH_CFG_FWK_MAX_EVT_POOL illegally #define'd in 'rkhcfg.h'"
1294 #error " [MUST be > 0] "
1295 #error " [ && < 256] "
1296 #endif
1297
1298#endif
1299
1300#ifndef RKH_CFG_FWK_SIZEOF_EVT
1301 #error "RKH_CFG_FWK_SIZEOF_EVT not #define'd in 'rkhcfg.h'"
1302 #error " [MUST be 8 ( 8-bit size)] "
1303 #error " [ || 16 (16-bit size)] "
1304 #error " [ || 32 (32-bit size)] "
1305
1306#elif ((RKH_CFG_FWK_SIZEOF_EVT != 8) && \
1307 (RKH_CFG_FWK_SIZEOF_EVT != 16) && \
1308 (RKH_CFG_FWK_SIZEOF_EVT != 32))
1309 #error "RKH_CFG_FWK_SIZEOF_EVT illegally #define'd in 'rkhcfg.h'"
1310 #error " [MUST be 8 ( 8-bit size)] "
1311 #error " [ || 16 (16-bit size)] "
1312 #error " [ || 32 (32-bit size)] "
1313
1314#endif
1315
1316#ifndef RKH_CFG_FWK_MAX_SIGNALS
1317 #error "RKH_CFG_FWK_MAX_SIGNALS not #define'd in 'rkhcfg.h'"
1318 #error " [MUST be > 0] "
1319 #error " [MUST be < 2^RKH_CFG_FWK_SIZEOF_EVT "
1320
1321#elif ((RKH_CFG_FWK_MAX_SIGNALS == 0u) || \
1322 (RKH_CFG_FWK_MAX_SIGNALS > (1u << RKH_CFG_FWK_SIZEOF_EVT)))
1323 #error "RKH_CFG_FWK_MAX_SIGNALS illegally #define'd in 'rkhcfg.h'"
1324 #error " [MUST be > 0] "
1325 #error " [MUST be < 2^RKH_CFG_FWK_SIZEOF_EVT "
1326
1327#endif
1328
1329#ifndef RKH_CFG_FWK_SIZEOF_EVT_SIZE
1330 #error "RKH_CFG_FWK_SIZEOF_EVT_SIZE not #define'd in 'rkhcfg.h'"
1331 #error " [MUST be 8 ( 8-bit size)] "
1332 #error " [ || 16 (16-bit size)] "
1333 #error " [ || 32 (32-bit size)] "
1334
1335#elif ((RKH_CFG_FWK_SIZEOF_EVT_SIZE != 8) && \
1336 (RKH_CFG_FWK_SIZEOF_EVT_SIZE != 16) && \
1337 (RKH_CFG_FWK_SIZEOF_EVT_SIZE != 32))
1338 #error "RKH_CFG_FWK_SIZEOF_EVT_SIZE illegally #define'd in 'rkhcfg.h'"
1339 #error " [MUST be 8 ( 8-bit size)] "
1340 #error " [ || 16 (16-bit size)] "
1341 #error " [ || 32 (32-bit size)] "
1342
1343#endif
1344
1345#ifndef RKH_CFG_FWK_DEFER_EVT_EN
1346 #error "RKH_CFG_FWK_DEFER_EVT_EN not #define'd in 'rkhcfg.h'"
1347 #error " [MUST be RKH_ENABLED ] "
1348 #error " [ || RKH_DISABLED] "
1349
1350#elif ((RKH_CFG_FWK_DEFER_EVT_EN == RKH_ENABLED) && \
1351 (RKH_CFG_QUE_EN == RKH_DISABLED))
1352 #error "RKH_CFG_QUE_EN illegally #define'd in 'rkhcfg.h'"
1353 #error " [MUST be RKH_ENABLED ] "
1354
1355#endif
1356
1357#ifndef RKH_CFG_FWK_ASSERT_EN
1358 #error "RKH_CFG_FWK_ASSERT_EN not #define'd in 'rkhport.h'"
1359 #error " [MUST be RKH_ENABLED ] "
1360 #error " [ || RKH_DISABLED] "
1361
1362#elif ((RKH_CFG_FWK_ASSERT_EN != RKH_ENABLED) && \
1363 (RKH_CFG_FWK_ASSERT_EN != RKH_DISABLED))
1364 #error "RKH_CFG_FWK_ASSERT_EN illegally #define'd in 'rkhport.h'"
1365 #error " [MUST be RKH_ENABLED ] "
1366 #error " [ || RKH_DISABLED] "
1367
1368#endif
1369
1370#ifndef RKH_CFG_HOOK_DISPATCH_EN
1371 #error "RKH_CFG_HOOK_DISPATCH_EN not #define'd in 'rkhcfg.h'"
1372 #error " [MUST be RKH_ENABLED ] "
1373 #error " [ || RKH_DISABLED] "
1374
1375#elif ((RKH_CFG_HOOK_DISPATCH_EN != RKH_ENABLED) && \
1376 (RKH_CFG_HOOK_DISPATCH_EN != RKH_DISABLED))
1377 #error "RKH_CFG_HOOK_DISPATCH_EN illegally #define'd in 'rkhcfg.h'"
1378 #error " [MUST be RKH_ENABLED ] "
1379 #error " [ || RKH_DISABLED] "
1380
1381#endif
1382
1383#ifndef RKH_CFG_HOOK_SIGNAL_EN
1384 #error "RKH_CFG_HOOK_SIGNAL_EN not #define'd in 'rkhcfg.h'"
1385 #error " [MUST be RKH_ENABLED ] "
1386 #error " [ || RKH_DISABLED] "
1387
1388#elif ((RKH_CFG_HOOK_SIGNAL_EN != RKH_ENABLED) && \
1389 (RKH_CFG_HOOK_SIGNAL_EN != RKH_DISABLED))
1390 #error "RKH_CFG_HOOK_SIGNAL_EN illegally #define'd in 'rkhcfg.h'"
1391 #error " [MUST be RKH_ENABLED ] "
1392 #error " [ || RKH_DISABLED] "
1393
1394#endif
1395
1396#ifndef RKH_CFG_HOOK_TIMEOUT_EN
1397 #error "RKH_CFG_HOOK_TIMEOUT_EN not #define'd in 'rkhcfg.h'"
1398 #error " [MUST be RKH_ENABLED ] "
1399 #error " [ || RKH_DISABLED] "
1400
1401#elif ((RKH_CFG_HOOK_TIMEOUT_EN != RKH_ENABLED) && \
1402 (RKH_CFG_HOOK_TIMEOUT_EN != RKH_DISABLED))
1403 #error "RKH_CFG_HOOK_TIMEOUT_EN illegally #define'd in 'rkhcfg.h'"
1404 #error " [MUST be RKH_ENABLED ] "
1405 #error " [ || RKH_DISABLED] "
1406
1407#endif
1408
1409#ifndef RKH_CFG_HOOK_START_EN
1410 #error "RKH_CFG_HOOK_START_EN not #define'd in 'rkhcfg.h'"
1411 #error " [MUST be RKH_ENABLED ] "
1412 #error " [ || RKH_DISABLED] "
1413
1414#elif ((RKH_CFG_HOOK_START_EN != RKH_ENABLED) && \
1415 (RKH_CFG_HOOK_START_EN != RKH_DISABLED))
1416 #error "RKH_CFG_HOOK_START_EN illegally #define'd in 'rkhcfg.h'"
1417 #error " [MUST be RKH_ENABLED ] "
1418 #error " [ || RKH_DISABLED] "
1419
1420#endif
1421
1422#ifndef RKH_CFG_HOOK_EXIT_EN
1423 #error "RKH_CFG_HOOK_EXIT_EN not #define'd in 'rkhcfg.h'"
1424 #error " [MUST be RKH_ENABLED ] "
1425 #error " [ || RKH_DISABLED] "
1426
1427#elif ((RKH_CFG_HOOK_EXIT_EN != RKH_ENABLED) && \
1428 (RKH_CFG_HOOK_EXIT_EN != RKH_DISABLED))
1429 #error "RKH_CFG_HOOK_EXIT_EN illegally #define'd in 'rkhcfg.h'"
1430 #error " [MUST be RKH_ENABLED ] "
1431 #error " [ || RKH_DISABLED] "
1432
1433#endif
1434
1435#ifndef RKH_CFG_HOOK_TIMETICK_EN
1436 #error "RKH_CFG_HOOK_TIMETICK_EN not #define'd in 'rkhcfg.h'"
1437 #error " [MUST be RKH_ENABLED ] "
1438 #error " [ || RKH_DISABLED] "
1439
1440#elif ((RKH_CFG_HOOK_TIMETICK_EN != RKH_ENABLED) && \
1441 (RKH_CFG_HOOK_TIMETICK_EN != RKH_DISABLED))
1442 #error "RKH_CFG_HOOK_TIMETICK_EN illegally #define'd in 'rkhcfg.h'"
1443 #error " [MUST be RKH_ENABLED ] "
1444 #error " [ || RKH_DISABLED] "
1445
1446#endif
1447
1448#ifndef RKH_CFG_HOOK_PUT_TRCEVT_EN
1449 #error "RKH_CFG_HOOK_PUT_TRCEVT_EN not #define'd in 'rkhcfg.h'"
1450 #error " [MUST be RKH_ENABLED ] "
1451 #error " [ || RKH_DISABLED] "
1452
1453#elif ((RKH_CFG_HOOK_PUT_TRCEVT_EN != RKH_ENABLED) && \
1454 (RKH_CFG_HOOK_PUT_TRCEVT_EN != RKH_DISABLED))
1455 #error "RKH_CFG_HOOK_PUT_TRCEVT_EN illegally #define'd in 'rkhcfg.h'"
1456 #error " [MUST be RKH_ENABLED ] "
1457 #error " [ || RKH_DISABLED] "
1458
1459#endif
1460
1461#ifndef RKH_CFG_SMA_INIT_EVT_EN
1462 #error "RKH_CFG_SMA_INIT_EVT_EN not #define'd in 'rkhcfg.h'"
1463 #error " [MUST be RKH_ENABLED ] "
1464 #error " [ || RKH_DISABLED] "
1465
1466#elif ((RKH_CFG_SMA_INIT_EVT_EN != RKH_ENABLED) && \
1467 (RKH_CFG_SMA_INIT_EVT_EN != RKH_DISABLED))
1468 #error "RKH_CFG_SMA_INIT_EVT_EN illegally #define'd in 'rkhcfg.h'"
1469 #error " [MUST be RKH_ENABLED ] "
1470 #error " [ || RKH_DISABLED] "
1471
1472#endif
1473
1474#ifdef RKH_CFG_FWK_AWARE_ISR_PRIO
1475#if ((RKH_CFG_FWK_AWARE_ISR_PRIO < 0) || \
1476 (RKH_CFG_FWK_AWARE_ISR_PRIO > 255))
1477 #error "RKH_CFG_FWK_AWARE_ISR_PRIO illegally #define'd in 'rkhcfg.h'"
1478 #error " [MUST be >= 0] "
1479 #error " [ && <= 255] "
1480#endif
1481#endif
1482
1483/* PORT --------------------------------------------------------- */
1484#ifndef RKH_CFGPORT_SMA_THREAD_EN
1485 #error "RKH_CFGPORT_SMA_THREAD_EN not #define'd in 'rkhport.h'"
1486 #error " [MUST be RKH_ENABLED ] "
1487 #error " [ || RKH_DISABLED] "
1488
1489#elif ((RKH_CFGPORT_SMA_THREAD_EN != RKH_ENABLED) && \
1490 (RKH_CFGPORT_SMA_THREAD_EN != RKH_DISABLED))
1491 #error "RKH_CFGPORT_SMA_THREAD_EN illegally #define'd in 'rkhport.h'"
1492 #error " [MUST be RKH_ENABLED ] "
1493 #error " [ || RKH_DISABLED] "
1494
1495#endif
1496
1497#ifndef RKH_CFGPORT_SMA_THREAD_DATA_EN
1498 #error "RKH_CFGPORT_SMA_THREAD_DATA_EN not #define'd in 'rkhport.h'"
1499 #error " [MUST be RKH_ENABLED ] "
1500 #error " [ || RKH_DISABLED] "
1501
1502#elif ((RKH_CFGPORT_SMA_THREAD_DATA_EN != RKH_ENABLED) && \
1503 (RKH_CFGPORT_SMA_THREAD_DATA_EN != RKH_DISABLED))
1504 #error "RKH_CFGPORT_SMA_THREAD_DATA_EN illegally #define'd in 'rkhport.h'"
1505 #error " [MUST be RKH_ENABLED ] "
1506 #error " [ || RKH_DISABLED] "
1507
1508#endif
1509
1510#ifndef RKH_CFGPORT_NATIVE_SCHEDULER_EN
1511 #error "RKH_CFGPORT_NATIVE_SCHEDULER_EN not #define'd in 'rkhport.h'"
1512 #error " [MUST be RKH_ENABLED ] "
1513 #error " [ || RKH_DISABLED] "
1514
1515#elif ((RKH_CFGPORT_NATIVE_SCHEDULER_EN != RKH_ENABLED) && \
1516 (RKH_CFGPORT_NATIVE_SCHEDULER_EN != RKH_DISABLED))
1517 #error "RKH_CFGPORT_NATIVE_SCHEDULER_EN illegally #define'd in 'rkhport.h'"
1518 #error " [MUST be RKH_ENABLED ] "
1519 #error " [ || RKH_DISABLED] "
1520
1521#endif
1522
1523#ifndef RKH_CFGPORT_NATIVE_EQUEUE_EN
1524 #error "RKH_CFGPORT_NATIVE_EQUEUE_EN not #define'd in 'rkhport.h'"
1525 #error " [MUST be RKH_ENABLED ] "
1526 #error " [ || RKH_DISABLED] "
1527
1528#elif ((RKH_CFGPORT_NATIVE_EQUEUE_EN != RKH_ENABLED) && \
1529 (RKH_CFGPORT_NATIVE_EQUEUE_EN != RKH_DISABLED))
1530 #error "RKH_CFGPORT_NATIVE_EQUEUE_EN illegally #define'd in 'rkhport.h'"
1531 #error " [MUST be RKH_ENABLED ] "
1532 #error " [ || RKH_DISABLED] "
1533
1534#elif ((RKH_CFGPORT_NATIVE_EQUEUE_EN == RKH_ENABLED) && \
1535 (RKH_CFG_QUE_EN != RKH_ENABLED))
1536 #error "RKH_CFG_QUE_EN illegally #define'd in 'rkhcfg.h'"
1537 #error " [MUST be RKH_ENABLED ] "
1538 #error " [ || RKH_DISABLED] "
1539
1540#endif
1541
1542#ifndef RKH_CFGPORT_NATIVE_DYN_EVT_EN
1543 #error "RKH_CFGPORT_NATIVE_DYN_EVT_EN not #define'd in 'rkhport.h'"
1544 #error " [MUST be RKH_ENABLED ] "
1545 #error " [ || RKH_DISABLED] "
1546
1547#elif ((RKH_CFGPORT_NATIVE_DYN_EVT_EN != RKH_ENABLED) && \
1548 (RKH_CFGPORT_NATIVE_DYN_EVT_EN != RKH_DISABLED))
1549 #error "RKH_CFGPORT_NATIVE_DYN_EVT_EN illegally #define'd in 'rkhport.h'"
1550 #error " [MUST be RKH_ENABLED ] "
1551 #error " [ || RKH_DISABLED] "
1552
1553#elif (RKH_CFGPORT_NATIVE_DYN_EVT_EN == RKH_ENABLED)
1554 #if ((RKH_CFG_FWK_DYN_EVT_EN == RKH_ENABLED) && \
1555 (RKH_CFG_MP_EN == RKH_DISABLED))
1556 #error "RKH_CFG_FWK_DYN_EVT_EN illegally #define'd in 'rkhcfg.h'"
1557 #error " [MUST be RKH_ENABLED ] "
1558 #error "RKH_CFG_MP_EN illegally #define'd in 'rkhcfg.h'"
1559 #error " [MUST be RKH_ENABLED ] "
1560 #endif
1561
1562#endif
1563
1564#ifndef RKH_CFGPORT_REENTRANT_EN
1565 #error "RKH_CFGPORT_REENTRANT_EN not #define'd in 'rkhport.h'"
1566 #error " [MUST be RKH_ENABLED ] "
1567 #error " [ || RKH_DISABLED] "
1568
1569#elif ((RKH_CFGPORT_REENTRANT_EN != RKH_ENABLED) && \
1570 (RKH_CFGPORT_REENTRANT_EN != RKH_DISABLED))
1571 #error "RKH_CFGPORT_REENTRANT_EN illegally #define'd in 'rkhport.h'"
1572 #error " [MUST be RKH_ENABLED ] "
1573 #error " [ || RKH_DISABLED] "
1574
1575#endif
1576
1577#ifndef RKH_CFGPORT_TRC_SIZEOF_PTR
1578 #error "RKH_CFGPORT_TRC_SIZEOF_PTR not #define'd in 'rkhport.h'"
1579 #error " [MUST be 8 ( 8-bit pointer)] "
1580 #error " [ || 16 (16-bit pointer)] "
1581 #error " [ || 32 (32-bit pointer)] "
1582
1583#elif ((RKH_CFGPORT_TRC_SIZEOF_PTR != 8) && \
1584 (RKH_CFGPORT_TRC_SIZEOF_PTR != 16) && \
1585 (RKH_CFGPORT_TRC_SIZEOF_PTR != 32))
1586 #error "RKH_CFGPORT_TRC_SIZEOF_PTR illegally #define'd in 'rkhport.h'"
1587 #error " [MUST be 8 ( 8-bit pointer)] "
1588 #error " [ || 16 (16-bit pointer)] "
1589 #error " [ || 32 (32-bit pointer)] "
1590
1591#endif
1592
1593#ifndef RKH_CFGPORT_TRC_SIZEOF_FUN_PTR
1594 #error "RKH_CFGPORT_TRC_SIZEOF_FUN_PTR not #define'd in 'rkhport.h'"
1595 #error " [MUST be 8 ( 8-bit pointer)] "
1596 #error " [ || 16 (16-bit pointer)] "
1597 #error " [ || 32 (32-bit pointer)] "
1598
1599#elif ((RKH_CFGPORT_TRC_SIZEOF_FUN_PTR != 8) && \
1600 (RKH_CFGPORT_TRC_SIZEOF_FUN_PTR != 16) && \
1601 (RKH_CFGPORT_TRC_SIZEOF_FUN_PTR != 32))
1602 #error "RKH_CFGPORT_TRC_SIZEOF_FUN_PTR illegally #define'd in 'rkhport.h'"
1603 #error " [MUST be 8 ( 8-bit pointer)] "
1604 #error " [ || 16 (16-bit pointer)] "
1605 #error " [ || 32 (32-bit pointer)] "
1606
1607#endif
1608
1619#define RKH_TICK_RATE_MS \
1620 ((RKH_TNT_T)(1000 / RKH_CFG_FWK_TICK_RATE_HZ))
1621
1631#define RKH_TIME_MS(ms_) ((ms_) / RKH_TICK_RATE_MS)
1632#define RKH_TIME_SEC(s_) ((s_) * 1000u / RKH_TICK_RATE_MS)
1633#define RKH_TIME_MIN(m_) ((m_) * 60 * 1000u / RKH_TICK_RATE_MS)
1636/*
1637 * The following macros and constants are INTERNAL to RKH and
1638 * the user application should NOT call it.
1639 */
1640
1641#define RKH_REGULAR 0x80
1642#define RKH_PSEUDO 0
1643#define RKH_TYPE(t,i) (t | i)
1644
1645#define RKH_UNKNOWN_VERTEX RKH_TYPE(0, 0)
1646#define RKH_BASIC RKH_TYPE(RKH_REGULAR, 0)
1647#define RKH_COMPOSITE RKH_TYPE(RKH_REGULAR, 0x01)
1648#define RKH_SUBMACHINE RKH_TYPE(RKH_REGULAR, 0x02)
1649#define RKH_REF_SUBMACHINE RKH_TYPE(RKH_REGULAR, 0x04)
1650#define RKH_FINAL RKH_TYPE(RKH_REGULAR, 0x08)
1651
1652#define RKH_CONDITIONAL RKH_TYPE(RKH_PSEUDO, 0x02)
1653#define RKH_CHOICE RKH_TYPE(RKH_PSEUDO, 0x04)
1654#define RKH_SHISTORY RKH_TYPE(RKH_PSEUDO, 0x08)
1655#define RKH_DHISTORY RKH_TYPE(RKH_PSEUDO, 0x10)
1656#define RKH_ENPOINT RKH_TYPE(RKH_PSEUDO, 0x20)
1657#define RKH_EXPOINT RKH_TYPE(RKH_PSEUDO, 0x40)
1658
1659#define RKH_NO_HISTORY RKH_UNKNOWN_VERTEX
1660
1661#if (RKH_CFG_SMA_PSEUDOSTATE_EN == RKH_DISABLED || \
1662 (RKH_CFG_SMA_DEEP_HIST_EN == RKH_DISABLED && \
1663 RKH_CFG_SMA_SHALLOW_HIST_EN == RKH_DISABLED && \
1664 RKH_CFG_SMA_SUBMACHINE_EN == RKH_DISABLED && \
1665 RKH_CFG_SMA_CONDITIONAL_EN == RKH_DISABLED && \
1666 RKH_CFG_SMA_CHOICE_EN == RKH_DISABLED))
1667 #define RKH_PSEUDOSTATE RKH_DISABLED
1668#else
1669 #define RKH_PSEUDOSTATE RKH_ENABLED
1670#endif
1671
1672#if (RKH_CFG_SMA_HCAL_EN == RKH_ENABLED && \
1673 RKH_CFG_SMA_PSEUDOSTATE_EN == RKH_ENABLED && \
1674 (RKH_CFG_SMA_SHALLOW_HIST_EN == RKH_ENABLED || \
1675 RKH_CFG_SMA_DEEP_HIST_EN == RKH_ENABLED))
1676 #define RKH_HISTORY_ENABLED
1677#endif
1678
1679#if (RKH_CFG_SMA_HCAL_EN == RKH_ENABLED && \
1680 RKH_CFG_SMA_PSEUDOSTATE_EN == RKH_ENABLED && \
1681 RKH_CFG_SMA_DEEP_HIST_EN == RKH_ENABLED)
1682 #define RKH_DEEP_ENABLED
1683#endif
1684
1685#if (RKH_CFG_SMA_HCAL_EN == RKH_ENABLED && \
1686 RKH_CFG_SMA_PSEUDOSTATE_EN == RKH_ENABLED && \
1687 RKH_CFG_SMA_SHALLOW_HIST_EN == RKH_ENABLED)
1688 #define RKH_SHALLOW_ENABLED
1689#endif
1690
1691#if (RKH_CFG_SMA_PSEUDOSTATE_EN == RKH_ENABLED && \
1692 RKH_CFG_SMA_SUBMACHINE_EN == RKH_ENABLED)
1693 #define RKH_SUBMACHINE_ENABLED
1694#endif
1695
1696#if (RKH_CFG_SMA_PSEUDOSTATE_EN == RKH_ENABLED && \
1697 RKH_CFG_SMA_CHOICE_EN == RKH_ENABLED)
1698 #define RKH_CHOICE_ENABLED
1699#endif
1700
1701#if (RKH_CFG_SMA_PSEUDOSTATE_EN == RKH_ENABLED && \
1702 (RKH_CFG_SMA_CONDITIONAL_EN == RKH_ENABLED || \
1703 RKH_CFG_SMA_CHOICE_EN == RKH_ENABLED))
1704 #define RKH_CHOICE_OR_CONDITIONAL_ENABLED
1705#endif
1706
1707#if (RKH_CFG_TRC_EN == RKH_ENABLED && \
1708 (RKH_CFG_TRC_ALL_EN == RKH_ENABLED || \
1709 RKH_CFG_TRC_SMA_EN == RKH_ENABLED || \
1710 RKH_CFG_TRC_SM_EN == RKH_ENABLED || \
1711 RKH_CFG_TRC_FWK_EN == RKH_ENABLED))
1712 #define R_TRC_AO_NAME_EN RKH_ENABLED
1713#else
1714 #define R_TRC_AO_NAME_EN RKH_DISABLED
1715#endif
1716
1717#if (RKH_CFG_TRC_EN == RKH_ENABLED && \
1718 (RKH_CFG_TRC_ALL_EN == RKH_ENABLED || \
1719 RKH_CFG_TRC_MP_EN == RKH_ENABLED))
1720 #define RKH_MEMPOOL_EN RKH_ENABLED
1721#else
1722 #define RKH_MEMPOOL_EN RKH_DISABLED
1723#endif
1724
1725#define MKTRN(evt_, guard_, effect_, target_) \
1726 { \
1727 evt_, (RKH_GUARD_T)guard_, \
1728 (RKH_TRN_ACT_T)effect_, (RKHROM RKH_ST_T *)target_ \
1729 }
1730
1731#if RKH_CFG_SMA_SM_CONST_EN == RKH_ENABLED
1732 #define MKSM(constSM, initialState) \
1733 (RKHROM RKH_ROM_T *)(constSM), \
1734 (RKHROM RKH_ST_T *)(initialState), \
1735 (RKH_EVT_T *)(0)
1737 #if RKH_CFG_SMA_VFUNCT_EN == RKH_ENABLED
1738 #define MKSMA(constSM, initialState) \
1739 { \
1740 MKSM(constSM, initialState), \
1741 &rkhSmaVtbl \
1742 }
1743 #else
1744 #define MKSMA(constSM, initialState) \
1745 { \
1746 MKSM(constSM, initialState) \
1747 }
1748 #endif
1749#else
1750 #if (RKH_CFG_SMA_INIT_EVT_EN == RKH_ENABLED)
1751 #if R_TRC_AO_NAME_EN == RKH_ENABLED
1752 #define MKSM(name, prio, ppty, initialState, initialAction, \
1753 initialEvt) \
1754 (prio), (ppty), #name, (RKHROM RKH_ST_T*)initialState, \
1755 ((RKH_TRN_ACT_T)initialAction), (initialEvt), \
1756 (RKHROM RKH_ST_T*)initialState, (RKH_EVT_T*)0
1757 #else
1758 #define MKSM(name, prio, ppty, initialState, initialAction, \
1759 initialEvt) \
1760 (prio), (ppty), (RKHROM RKH_ST_T*)initialState, \
1761 ((RKH_TRN_ACT_T)initialAction), (initialEvt), \
1762 (RKHROM RKH_ST_T*)initialState, (RKH_EVT_T*)0
1763 #endif
1764 #else
1765 #if R_TRC_AO_NAME_EN == RKH_ENABLED
1766 #define MKSM(name, prio, ppty, initialState, initialAction, \
1767 initialEvt) \
1768 (prio), (ppty), #name, (RKHROM RKH_ST_T*)initialState, \
1769 ((RKH_TRN_ACT_T)initialAction), \
1770 (RKHROM RKH_ST_T*)initialState, (RKH_EVT_T*)0
1771 #else
1772 #define MKSM(name, prio, ppty, initialState, initialAction, \
1773 initialEvt) \
1774 (prio), (ppty), (RKHROM RKH_ST_T*)initialState, \
1775 ((RKH_TRN_ACT_T)initialAction), \
1776 (RKHROM RKH_ST_T*)initialState, (RKH_EVT_T*)0
1777 #endif
1778 #endif
1779 #if RKH_CFG_SMA_VFUNCT_EN == RKH_ENABLED
1780 #define MKSMA(name, prio, ppty, \
1781 initialState, initialAction, initialEvt) \
1782 { \
1783 MKSM(name, prio, ppty, initialState, \
1784 initialAction, initialEvt), /* RKH_SM_T members */ \
1785 &rkhSmaVtbl \
1786 }
1787 #else
1788 #define MKSMA(name, prio, ppty, \
1789 initialState, initialAction, initialEvt) \
1790 { \
1791 MKSM(name, prio, ppty, initialState, \
1792 initialAction, initialEvt) /* RKH_SM_T members */ \
1793 }
1794 #endif
1795
1796 #define MKRT_SM(sm_, name_, prio_, ppty_, initialState_, initialAction_, \
1797 initialEvt_) \
1798 ((RKH_SM_T *)(sm_))->prio = prio_; \
1799 ((RKH_SM_T *)(sm_))->ppty = ppty_; \
1800 MKSM_NAME(sm_, name_); \
1801 ((RKH_SM_T *)(sm_))->istate = (RKHROM RKH_ST_T*)initialState_; \
1802 ((RKH_SM_T *)(sm_))->iaction = (RKH_TRN_ACT_T)initialAction_; \
1803 MKSM_IEVENT(sm_, initialEvt_); \
1804 ((RKH_SM_T *)(sm_))->state = (RKHROM RKH_ST_T*)initialState_; \
1805 ((RKH_SM_T *)(sm_))->propagatedEvent = (RKH_EVT_T*)0;
1806
1807 #if R_TRC_AO_NAME_EN == RKH_ENABLED
1808 #if RKH_CFG_SMA_INIT_EVT_EN == RKH_ENABLED
1809 #define MKSM_NAME(sm_, name_) \
1810 ((RKH_SM_T *)sm_)->name = #name_
1811 #define MKSM_IEVENT(sm_, ievent_) \
1812 ((RKH_SM_T *)sm_)->ievent = ievent_
1813 #else
1814 #define MKSM_NAME(sm_, name_) \
1815 ((RKH_SM_T *)sm_)->name = #name_
1816 #define MKSM_IEVENT(sm_, ievent_)
1817 #endif
1818 #else
1819 #if RKH_CFG_SMA_INIT_EVT_EN == RKH_ENABLED
1820 #define MKSM_NAME(sm_, name_) \
1821 #define MKSM_IEVENT(sm_, ievent_) \
1822 ((RKH_SM_T *)sm_)->ievent = ievent_
1823 #else
1824 #define MKSM_NAME(sm_, name_) \
1825 #define MKSM_IEVENT(sm_, ievent_)
1826 #endif
1827 #endif
1828#endif
1829
1830#if (RKH_CFG_SMA_INIT_EVT_EN == RKH_ENABLED)
1831 #if R_TRC_AO_NAME_EN == RKH_ENABLED
1832 #define MKRRKH(name, prio, ppty, is, ia, ie) \
1833 { \
1834 (prio), (ppty), # name, (RKHROM RKH_ST_T *)is, \
1835 (RKH_TRN_ACT_T)(ia), (ie) \
1836 }
1837 #else
1838 #define MKRRKH(name, prio, ppty, is, ia, ie) \
1839 { \
1840 (prio), (ppty), (RKHROM RKH_ST_T *)is, \
1841 (RKH_TRN_ACT_T)(ia), (ie) \
1842 }
1843 #endif
1844#else
1845 #if R_TRC_AO_NAME_EN == RKH_ENABLED
1846 #define MKRRKH(name, prio, ppty, is, ia, ie) \
1847 { \
1848 (prio), (ppty), # name, (RKHROM RKH_ST_T *)is, \
1849 (RKH_TRN_ACT_T)(ia) \
1850 }
1851 #else
1852 #define MKRRKH(name, prio, ppty, is, ia, ie) \
1853 { \
1854 (prio), (ppty), (RKHROM RKH_ST_T *)is, \
1855 (RKH_TRN_ACT_T)(ia) \
1856 }
1857 #endif
1858#endif
1859
1860#if R_TRC_AO_NAME_EN == RKH_ENABLED
1861 #define MKBASE(t, n) {t, # n}
1862#else
1863 #define MKBASE(t, n) {t}
1864#endif
1865
1866#if (RKH_CFG_SMA_HCAL_EN == RKH_ENABLED)
1867 #if (RKH_CFG_SMA_PPRO_EN == RKH_ENABLED)
1868 #if defined(RKH_HISTORY_ENABLED)
1869 #define MKBASIC(n,pp) n##_trtbl, (RKH_PPRO_T)pp
1870 #define MKCOMP(n, d, dftTrn_, h) n##_trtbl, NULL, d, \
1871 (RKH_TRN_ACT_T)dftTrn_, h
1872 #define MKHIST_INCOMP(name, kOfH, dTG, dTA, dTT, ramMem) \
1873 RKHROM RKH_SHIST_T name##Hist = \
1874 { \
1875 MKBASE(kOfH, name##Hist), \
1876 (RKHROM RKH_ST_T *)&name, ramMem, \
1877 RKH_TRREG(0, dTG, dTA, dTT) \
1878 }
1879 #define MKHISTORY(name, parent, kOfH, dTG, dTA, dTT, ramMem) \
1880 RKHROM RKH_SHIST_T name = \
1881 { \
1882 MKBASE(kOfH, name), \
1883 (RKHROM RKH_ST_T *)parent, ramMem, \
1884 RKH_TRREG(0, dTG, dTA, dTT) \
1885 }
1886 #define MKFINAL(name_) \
1887 name_##_trtbl, NULL
1888 #define MKFINAL_INCOMP(name_) \
1889 RKH_CREATE_FINAL_STATE(name_##Final, &name_)
1890 #else
1891 #define MKBASIC(n,pp) n##_trtbl, (RKH_PPRO_T)pp
1892 #define MKCOMP(n, d, dftTrn_, h) n##_trtbl, NULL, d, \
1893 (RKH_TRN_ACT_T)dftTrn_
1894 #define MKHIST_INCOMP(name, kOfH, dTG, dTA, dTT, ramMem)
1895 #define MKHISTORY(name, parent, kOfH, dTG, dTA, dTT, ramMem)
1896 #define MKFINAL(name_) \
1897 name_##_trtbl, NULL
1898 #define MKFINAL_INCOMP(name_) \
1899 RKH_CREATE_FINAL_STATE(name_##Final, &name_)
1900 #endif
1901 #else
1902 #if defined(RKH_HISTORY_ENABLED)
1903 #define MKBASIC(n,pp) n##_trtbl
1904 #define MKCOMP(n, d, dftTrn_, h) n##_trtbl, d, \
1905 (RKH_TRN_ACT_T)dftTrn_, h
1906 #define MKHIST_INCOMP(name, kOfH, dTG, dTA, dTT, ramMem) \
1907 RKHROM RKH_SHIST_T name##Hist = \
1908 { \
1909 MKBASE(kOfH, name##Hist), \
1910 (RKHROM RKH_ST_T *)&name, ramMem, \
1911 RKH_TRREG(0, dTG, dTA, dTT) \
1912 }
1913 #define MKHISTORY(name, parent, kOfH, dTG, dTA, dTT, ramMem) \
1914 RKHROM RKH_SHIST_T name = \
1915 { \
1916 MKBASE(kOfH, name), \
1917 (RKHROM RKH_ST_T *)parent, ramMem, \
1918 RKH_TRREG(0, dTG, dTA, dTT) \
1919 }
1920 #define MKFINAL(name_) \
1921 name_##_trtbl
1922 #define MKFINAL_INCOMP(name_) \
1923 RKH_CREATE_FINAL_STATE(name_##Final, &name_)
1924 #else
1925 #define MKBASIC(n,pp) n##_trtbl
1926 #define MKCOMP(n, d, dftTrn_, h) n##_trtbl, d, \
1927 (RKH_TRN_ACT_T)dftTrn_
1928 #define MKHIST_INCOMP(name, kOfH, dTG, dTA, dTT, ramMem)
1929 #define MKHISTORY(name, parent, kOfH, dTG, dTA, dTT, ramMem)
1930 #define MKFINAL(name_) \
1931 name_##_trtbl
1932 #define MKFINAL_INCOMP(name_) \
1933 RKH_CREATE_FINAL_STATE(name_##Final, &name_)
1934 #endif
1935 #endif
1936 #define MKST(en,ex,p) (RKH_ENT_ACT_T)en, \
1937 (RKH_EXT_ACT_T)ex, \
1938 (RKHROM RKH_ST_T *)p
1939 #define MKSBM(n,sbm) n##_trtbl,n##_exptbl,sbm
1940 #define MKMCH(d,i,n) d, (RKH_TRN_ACT_T)i, \
1941 (RKHROM RKH_ST_T * *)&rdyp_##n
1942 #define MKENP(e,s) e,(RKHROM RKH_ST_T *)s
1943#else
1944 #if (RKH_CFG_SMA_PPRO_EN == RKH_ENABLED)
1945 #define MKBASIC(n,pp) n##_trtbl, (RKH_PPRO_T)pp
1946 #define MKCOMP(n, d, dftTrn_, h) n##_trtbl, NULL
1947 #define MKFINAL(name_)
1948 #define MKFINAL_INCOMP(name_)
1949 #else
1950 #define MKBASIC(n,pp) n##_trtbl
1951 #define MKCOMP(n, d, dftTrn_, h) n##_trtbl
1952 #define MKFINAL(name_)
1953 #define MKFINAL_INCOMP(name_)
1954 #endif
1955 #define MKST(en,ex,p)
1956 #define MKSBM(n,sbm) n##_trtbl,n##_exptbl,sbm
1957 #define MKMCH(d,i,n) d, (RKH_TRN_ACT_T)i, \
1958 (RKHROM RKH_ST_T *)&rdyp_##n
1959 #define MKENP(e,s) e,(RKHROM RKH_ST_T *)s
1960#endif
1961
1962#if (RKH_CFG_QUE_PRIORITY_EN == RKH_DISABLED)
1963#define MK_SET_EVT(ev_obj, ev_sig) \
1964 ((RKH_EVT_T *)(ev_obj))->e = (RKH_SIG_T)ev_sig; \
1965 ((RKH_EVT_T *)(ev_obj))->nref = 0; \
1966 ((RKH_EVT_T *)(ev_obj))->pool = 0
1967
1968#define MK_EVT_STRUCT(ev_sig) \
1969 {ev_sig, 0, 0}
1970#else
1971#define MK_SET_EVT(ev_obj, ev_sig) \
1972 ((RKH_EVT_T *)(ev_obj))->e = (RKH_SIG_T)ev_sig; \
1973 ((RKH_EVT_T *)(ev_obj))->nref = 0; \
1974 ((RKH_EVT_T *)(ev_obj))->pool = 0; \
1975 ((RKH_EVT_T *)(ev_obj))->priority = 0
1976
1977#define MK_EVT_STRUCT(ev_sig) \
1978 {ev_sig, 0, 0, 0}
1979#endif
1980
1981#define MK_EVT(ev_obj, ev_sig) \
1982 RKH_EVT_T ev_obj = MK_EVT_STRUCT(ev_sig)
1983
1984#define MK_ROM_EVT(ev_obj, ev_sig) \
1985 RKHROM RKH_EVT_T ev_obj = MK_EVT_STRUCT(ev_sig)
1986
1987#ifndef RKH_DIS_INTERRUPT
1988 #error \
1989 "rkhport.h, Must be defined the platform-dependent macro RKH_DIS_INTERRUPT"
1990#endif
1991
1992#ifndef RKH_ENA_INTERRUPT
1993 #error \
1994 "rkhport.h, Must be defined the platform-dependent macro RKH_ENA_INTERRUPT"
1995#endif
1996
1997#ifndef RKH_EN_DOXYGEN
1998 #define RKH_EN_DOXYGEN 0
1999#endif
2000
2001#if RKH_EN_DOXYGEN == RKH_ENABLED
2024 #define RKH_DIS_INTERRUPT()
2025 #define RKH_ENA_INTERRUPT()
2076 #define RKH_CPUSR_TYPE
2077 #define RKH_SR_ALLOC() \
2078 RKH_CPUSR_TYPE sr = (RKH_CPUSR_TYPE)0
2079 #define RKH_ENTER_CRITICAL(dummy)
2080 #define RKH_EXIT_CRITICAL(dummy)
2100 #define RKH_CFGPORT_SMA_THREAD_EN RKH_ENABLED
2101
2115 #define RKH_CFGPORT_SMA_THREAD_DATA_EN RKH_ENABLED
2116
2130 #define RKH_CFGPORT_NATIVE_SCHEDULER_EN RKH_ENABLED
2131
2143 #define RKH_CFGPORT_NATIVE_EQUEUE_EN RKH_ENABLED
2144
2158 #define RKH_CFGPORT_NATIVE_DYN_EVT_EN RKH_ENABLED
2159
2170 #define RKH_CFGPORT_REENTRANT_EN RKH_ENABLED
2171
2181 #define RKH_CFGPORT_TRC_SIZEOF_PTR 32u
2182
2192 #define RKH_CFGPORT_TRC_SIZEOF_FUN_PTR 32u
2193
2203 #define RKH_CFGPORT_TRC_SIZEOF_TSTAMP 32u
2204
2215 #define RKH_CFGPORT_SMA_QSTO_EN RKH_ENABLED
2216
2227 #define RKH_CFGPORT_SMA_STK_EN RKH_ENABLED
2228
2250 #define RKH_EQ_TYPE
2251
2276 #define RKH_THREAD_TYPE
2277
2300 #define RKH_OSSIGNAL_TYPE
2301
2319 #define RKH_THREAD_STK_TYPE
2320
2321#endif
2322
2323#ifdef RKH_CPUSR_TYPE
2324 #if RKH_EN_DOXYGEN == RKH_DISABLED
2325 #define RKH_SR_ALLOC() RKH_CPUSR_TYPE sr = (RKH_CPUSR_TYPE)0
2326 #define RKH_ENTER_CRITICAL_() RKH_ENTER_CRITICAL(sr)
2327 #define RKH_EXIT_CRITICAL_() RKH_EXIT_CRITICAL(sr)
2328 #endif
2329#else
2330 #define RKH_SR_ALLOC()
2331 #define RKH_ENTER_CRITICAL_() RKH_ENTER_CRITICAL(dummy)
2332 #define RKH_EXIT_CRITICAL_() RKH_EXIT_CRITICAL(dummy)
2333#endif
2334
2335#if RKH_CFG_SMA_ENT_ARG_SMA_EN == RKH_ENABLED
2336 #if RKH_CFG_SMA_ENT_ARG_STATE_EN == RKH_ENABLED
2337 #define RKH_EXEC_ENTRY(state_, me_) \
2338 if ((state_)->enter) \
2339 { \
2340 (*(state_)->enter)(me_, state_); \
2341 RKH_TR_SM_EXE_ACT(RKH_SUBTE_SM_EXE_ACT_EN, \
2342 (me_), \
2343 (state_), \
2344 (state_)->enter); \
2345 }
2346 #else
2347 #define RKH_EXEC_ENTRY(state_, me_) \
2348 if ((state_)->enter) \
2349 { \
2350 (*(state_)->enter)(me_); \
2351 RKH_TR_SM_EXE_ACT(RKH_SUBTE_SM_EXE_ACT_EN, \
2352 (me_), \
2353 (state_), \
2354 (state_)->enter); \
2355 }
2356 #endif
2357#else
2358 #if RKH_CFG_SMA_ENT_ARG_STATE_EN == RKH_ENABLED
2359 #define RKH_EXEC_ENTRY(state_, me_) \
2360 if ((state_)->enter) \
2361 { \
2362 (*(state_)->enter)(state_); \
2363 RKH_TR_SM_EXE_ACT(RKH_SUBTE_SM_EXE_ACT_EN, \
2364 (me_), \
2365 (state_), \
2366 (state_)->enter); \
2367 }
2368 #else
2369 #define RKH_EXEC_ENTRY(state_, me_) \
2370 if ((state_)->enter) \
2371 { \
2372 (*(state_)->enter)(); \
2373 RKH_TR_SM_EXE_ACT(RKH_SUBTE_SM_EXE_ACT_EN, \
2374 (me_), \
2375 (state_), \
2376 (state_)->enter); \
2377 }
2378 #endif
2379#endif
2380
2381#if RKH_CFG_SMA_EXT_ARG_SMA_EN == RKH_ENABLED
2382 #if RKH_CFG_SMA_ENT_ARG_STATE_EN == RKH_ENABLED
2383 #define RKH_EXEC_EXIT(state_, me_) \
2384 if ((state_)->exit) \
2385 { \
2386 (*(state_)->exit)(me_, state_); \
2387 RKH_TR_SM_EXE_ACT(RKH_SUBTE_SM_EXE_ACT_EX, \
2388 (me_), \
2389 (state_), \
2390 (state_)->exit); \
2391 }
2392 #else
2393 #define RKH_EXEC_EXIT(state_, me_) \
2394 if ((state_)->exit) \
2395 { \
2396 (*(state_)->exit)(me_); \
2397 RKH_TR_SM_EXE_ACT(RKH_SUBTE_SM_EXE_ACT_EX, \
2398 (me_), \
2399 (state_), \
2400 (state_)->exit); \
2401 }
2402 #endif
2403#else
2404 #if RKH_CFG_SMA_ENT_ARG_STATE_EN == RKH_ENABLED
2405 #define RKH_EXEC_EXIT(state_, me_) \
2406 if ((state_)->exit) \
2407 { \
2408 (*(state_)->exit)(state_); \
2409 RKH_TR_SM_EXE_ACT(RKH_SUBTE_SM_EXE_ACT_EX, \
2410 (me_), \
2411 (state_), \
2412 (state_)->exit); \
2413 }
2414 #else
2415 #define RKH_EXEC_EXIT(state_, me_) \
2416 if ((state_)->exit) \
2417 { \
2418 (*(state_)->exit)(); \
2419 RKH_TR_SM_EXE_ACT(RKH_SUBTE_SM_EXE_ACT_EX, \
2420 (me_), \
2421 (state_), \
2422 (state_)->exit); \
2423 }
2424 #endif
2425#endif
2426
2427#if RKH_CFG_SMA_PPRO_ARG_SMA_EN == RKH_ENABLED
2428 #define RKH_EXEC_PREPRO(state_, me_, evt_) \
2429 (*(state_)->prepro)(me_, evt_); \
2430 RKH_TR_SM_EXE_ACT(RKH_SUBTE_SM_EXE_ACT_PP, \
2431 (me_), \
2432 (((RKH_SM_T *)me_))->state, \
2433 (state_)->prepro)
2434#else
2435 #define RKH_EXEC_PREPRO(state_, me_, evt_) \
2436 (*(state_)->prepro)(evt_); \
2437 RKH_TR_SM_EXE_ACT(RKH_SUBTE_SM_EXE_ACT_PP, \
2438 (me_), \
2439 (((RKH_SM_T *)me_))->state, \
2440 (state_)->prepro)
2441#endif
2442
2443#if (RKH_CFG_SMA_ACT_ARG_EVT_EN == RKH_ENABLED && \
2444 RKH_CFG_SMA_ACT_ARG_SMA_EN == RKH_ENABLED)
2445 #define RKH_EXEC_EFF(action_, me_, evt_) \
2446 (*CTA(action_))((me_), (evt_)); \
2447 RKH_TR_SM_EXE_ACT(RKH_SUBTE_SM_EXE_ACT_EFF, \
2448 (me_), \
2449 (((RKH_SM_T *)me_))->state, \
2450 (action_))
2451#elif (RKH_CFG_SMA_ACT_ARG_EVT_EN == RKH_ENABLED && \
2452 RKH_CFG_SMA_ACT_ARG_SMA_EN == RKH_DISABLED)
2453 #define RKH_EXEC_EFF(action_, me_, evt_) \
2454 (*CTA(action_))((evt_)); \
2455 RKH_TR_SM_EXE_ACT(RKH_SUBTE_SM_EXE_ACT_EFF, \
2456 (me_), \
2457 (((RKH_SM_T *)me_))->state, \
2458 (action_))
2459#elif (RKH_CFG_SMA_ACT_ARG_EVT_EN == RKH_DISABLED && \
2460 RKH_CFG_SMA_ACT_ARG_SMA_EN == RKH_ENABLED)
2461 #define RKH_EXEC_EFF(action_, me_, evt_) \
2462 (*CTA(action_))((me_)); \
2463 RKH_TR_SM_EXE_ACT(RKH_SUBTE_SM_EXE_ACT_EFF, \
2464 (me_), \
2465 (((RKH_SM_T *)me_))->state, \
2466 (action_))
2467#else
2468 #define RKH_EXEC_EFF(action_, me_, evt_) \
2469 (*CTA(action_))(); \
2470 RKH_TR_SM_EXE_ACT(RKH_SUBTE_SM_EXE_ACT_EFF, \
2471 (me_), \
2472 (((RKH_SM_T *)me_))->state, \
2473 (action_))
2474#endif
2475
2476#if (RKH_CFG_SMA_GRD_ARG_EVT_EN == RKH_ENABLED && \
2477 RKH_CFG_SMA_GRD_ARG_SMA_EN == RKH_ENABLED)
2478 #define RKH_EXEC_GUARD(trn_, me_, evt_) \
2479 (*(trn_)->guard)(me_, evt_)
2480#elif (RKH_CFG_SMA_GRD_ARG_EVT_EN == RKH_ENABLED && \
2481 RKH_CFG_SMA_GRD_ARG_SMA_EN == RKH_DISABLED)
2482 #define RKH_EXEC_GUARD(trn_, me_, evt_) \
2483 (*(trn_)->guard)(evt_)
2484#elif (RKH_CFG_SMA_GRD_ARG_EVT_EN == RKH_DISABLED && \
2485 RKH_CFG_SMA_GRD_ARG_SMA_EN == RKH_ENABLED)
2486 #define RKH_EXEC_GUARD(trn_, me_, evt_) \
2487 (*(trn_)->guard)(me_)
2488#else
2489 #define RKH_EXEC_GUARD(trn_, me_, evt_) \
2490 (*(trn_)->guard)()
2491#endif
2492
2493/* -------------------------------- Constants ------------------------------ */
2494#ifndef NULL
2495#define NULL (void *)0
2496#endif
2497
2498/* ------------------------------- Data types ------------------------------ */
2499typedef struct RKH_ROM_T RKH_ROM_T;
2500typedef struct RKHSmaVtbl RKHSmaVtbl;
2501typedef struct RKH_SM_T RKH_SM_T;
2502typedef struct RKH_SMA_T RKH_SMA_T;
2503typedef struct RKH_TR_T RKH_TR_T;
2504typedef struct RKH_BASE_T RKH_BASE_T;
2505typedef struct RKH_ST_T RKH_ST_T;
2506typedef struct RKH_SHIST_T RKH_SHIST_T;
2507typedef struct RKH_SBSC_T RKH_SBSC_T;
2508typedef struct RKH_SCMP_T RKH_SCMP_T;
2509typedef struct RKH_FINAL_T RKH_FINAL_T;
2510typedef struct RKH_EXPCN_T RKH_EXPCN_T;
2511typedef struct RKH_ENPCN_T RKH_ENPCN_T;
2512typedef struct RKH_SSBM_T RKH_SSBM_T;
2513typedef struct RKH_RSM_T RKH_RSM_T;
2514typedef struct RKH_SENP_T RKH_SENP_T;
2515typedef struct RKH_SEXP_T RKH_SEXP_T;
2516typedef struct RKH_SCOND_T RKH_SCOND_T;
2517typedef struct RKH_SCHOICE_T RKH_SCHOICE_T;
2518
2519/* -------------------------- External variables --------------------------- */
2524extern RKHROM char noname[];
2525
2526/* -------------------------- Function prototypes -------------------------- */
2527/* -------------------- External C language linkage end -------------------- */
2528#ifdef __cplusplus
2529}
2530#endif
2531
2532/* ------------------------------ Module end ------------------------------- */
2533#endif
2534
2535/* ------------------------------ End of file ------------------------------ */
Defines event data type and other related macros.
RKHROM char noname[]
String representing the name of undefined object name.
RKH platform abstraction layer.
Maintains the basic information of a state.
Definition rkhsm.h:2007
Describes a final state.
Definition rkhsm.h:2247
Describes a basic state.
Definition rkhsm.h:2111
Describes a composite state.
Definition rkhsm.h:2168
Describes the exit point connection.
Definition rkhsm.h:2537
Describes the state machine.
Definition rkhsm.h:1927
Describes the SMA (active object in UML).
Definition rkhsma.h:772
Describes the common properties of regular states (basic, composite, and submachine).
Definition rkhsm.h:2078
Describes the state transition.
Definition rkhsm.h:2046
Virtual table for the RKH_SMA_T structure.
Definition rkhsma.h:884