R_RTOS  0.1
DistributedRealTimeOperatingSystemfortheARMCortexMArchitecture
R_RTOS_inc.h
Go to the documentation of this file.
1 
9 #ifndef HEADERS_R_RTOS_INC_H_
10 #define HEADERS_R_RTOS_INC_H_
11 
12 /*
13  * ##################################################
14  * INCLUDES
15  * ##################################################
16  */
17 
18 #include <stdint.h>
19 #include "R_RTOS_UsrDevs.h"
20 
21 /*
22  * ##################################################
23  * END INCLUDES
24  * ##################################################
25  */
26 
27 /*
28  * ##################################################
29  * DEFINES
30  * ##################################################
31  */
32 
33 /* HELPER */
34 #undef NULL
35 
40 #define NULL ((void *)0x0u)
41 
47 #define ABS(x) (((x)<0) ? (-1*(x)) : (x))
48 
52 #define OFFSETOF(type, field) ((uint8_t) &(((type *) 0)->field))
53 /* END HELPER */
54 
64 #define MAX_TASKS NR_OF_TSKS
65 
67 /* STACK */
71 #define MIN_STACK_SIZE ((StackSize)0x40u) // 64 Byte
72 
76 #define MY_STACK_SIZE ((StackSize)0x80u) // 128 byte ??
77 
81 #define IDLE_TSK_STACK_SIZE ((StackSize)0x60u) // 96 byte
82 
85 #define STACK_BLOCK_SIZE ((uint8_t)0x4u) // 4 byte blocksize
86 
87 /* END STACK */
88 
89 /* MESSAGE QUEUE */
90 
97 #define MSGQ_TSK_ID_POS (uint8_t)0x0u
98 
101 #define MSGQ_SYS_ID_POS (uint8_t)0x1u
102 
106 #define SYS_ID_MSK (uint16_t)0xFF00u
107 
110 #define TSK_ID_MSK (uint16_t)0x00FFu
111 
114 /* END MESSAGE QUEUE */
115 
116 /* SEMAPHORES */
117 
118 /* END SEMAPHORES */
119 
120 /* EVENTS */
121 
122 /* END EVENTS */
123 
124 /* SYSTICKTMR */
125 
126 /* END SYSTICKTMR */
127 
128 /* TIMER */
129 
130 /* END TIMER */
131 
132 /* TASK */
142 #define TSK_ID_IDLE ((TskID)0x0u)
143 
149 #define TSK_ID_NO_TSK TSK_ID_IDLE//((TskID)0xfu)
150 
151 
153 /* END TASK */
154 
155 /* FKT */
161 #define AMOUNT_SYS_FKT (uint8_t)0x8u
162 
167 #define SYSFKT_INVALID_SYSFKT_ID (SysFktID)0xFFu
168 /* END FKT */
169 
170 /* SYNC */
171 
172 /* END SYNC */
173 /*
174  * ##################################################
175  * END DEFINES
176  * ##################################################
177  */
178 
179 /*
180  * ##################################################
181  * MAKROS
182  * ##################################################
183  */
184 /* HELPER */
185 /* END HELPER */
186 /* STACK */
187 /* END STACK */
188 
189 /* MESSAGE QUEUE */
193 //ToDO
194 #define DATATYPE_IS_PTR( dataType ) (uint8_t)( dataType & (uint8_t)0x4u)
195 
199 #define MAKE_SYS_ID( id ) (uint16_t)((uint16_t)((uint8_t)id & (uint8_t)0xFFu) << (uint8_t)0x8u)
200 
204 #define MAKE_TSK_ID( id ) (uint16_t)(uint16_t)((uint8_t)id & (uint8_t)0xFFu)
205 
208 #define MQ_IS_TSK_ID( id ) (uint8_t)((uint16_t)id & (uint16_t)0xFFu)
209 
210 /* END MESSAGE QUEUE */
211 
212 /* SEMAPHORES */
213 
214 /* END SEMAPHORES */
215 
216 /* EVENTS */
226 #define CREATE_EVT_MSK(evtNr) (EVTQSlots)((EVTQSlots)0x1u << evtNr)
227 
228 /* END EVENTS */
229 
230 /* TIMER */
231 
232 /* END TIMER */
233 
234 /* TASK */
242 #define TSK_GETSTATE(pTsk) (TskState)(pTsk->tskState)
243 
247 #define TSK_STATE_IS_ERROR(pTsk) (TskState)(TSK_GETSTATE(pTsk) == TSK_STATE_ERROR)
248 
252 #define TSK_STATE_IS_ACTIVE(pTsk) (TskState)(TSK_GETSTATE(pTsk) & TSK_STATE_ACTIVE)
253 
257 #define TSK_STATE_IS_ACTIVE_RUNNING(pTsk) (TskState)(TSK_GETSTATE(pTsk) == TSK_STATE_ACTIVE_RUNNING )
258 
261 #define TSK_STATE_IS_ACTIVE_SUSPENDED(pTsk) (TskState)(TSK_GETSTATE(pTsk) == TSK_STATE_ACTIVE_SUSPENDED )
262 
265 #define TSK_STATE_IS_ACTIVE_READY(pTsk) (TskState)(TSK_GETSTATE(pTsk) == TSK_STATE_ACTIVE_READY )
266 
271 #define TSK_STATE_IS_ACTIVE_CRITSEC(pTsk) (TskState)(TSK_GETSTATE(pTsk) == TSK_STATE_ACTIVE_CRITSEC )
272 
276 #define TSK_STATE_IS_WAITING(pTsk) (TskState)(TSK_GETSTATE(pTsk) & TSK_STATE_WAITING)
277 
280 #define TSK_STATE_IS_WAITING_TMR(pTsk) (TskState)(TSK_GETSTATE(pTsk) == TSK_STATE_WAITING_TMR)
281 
284 #define TSK_STATE_IS_WAITING_MSGRCV(pTsk) (TskState)(TSK_GETSTATE(pTsk) == TSK_STATE_WAITING_MSGRCV)
285 
288 #define TSK_STATE_IS_WAITING_MSGSND(pTsk) (TskState)(TSK_GETSTATE(pTsk) == TSK_STATE_WAITING_MSGSND)
289 
292 #define TSK_STATE_IS_WAITING_EVT(pTsk) (TskState)(TSK_GETSTATE(pTsk) == TSK_STATE_WAITING_EVT)
293 
296 #define TSK_STATE_IS_WAITING_SEM(pTsk) (TskState)(TSK_GETSTATE(pTsk) == TSK_STATE_WAITING_SEM)
297 
300 #define TSK_STATE_IS_WAITING_MNTR(pTsk) (TskState)(TSK_GETSTATE(pTsk) == TSK_STATE_WAITING_MNTR)
301 
307 #define TSK_STATE_IS_UNINIT(pTsk) (TskState)(TSK_GETSTATE(pTsk) & TSK_STATE_UNINIT)
308 
311 #define TSK_STATE_IS_UNINIT_UNINIT(pTsk) (TskState)(TSK_GETSTATE(pTsk) == TSK_STATE_UNINIT_UNINIT)
312 
315 #define TSK_STATE_IS_UNINIT_FAILED(pTsk) (TskState)(TSK_GETSTATE(pTsk) == TSK_STATE_UNINIT_FAILED)
316 
319 #define TSK_STATE_IS_UNINIT_ENDED(pTsk) (TskState)(TSK_GETSTATE(pTsk) == TSK_STATE_UNINIT_ENDED)
320 
321 /* END TASK */
322 
323 /* FKT */
324 
325 /* END FKT */
326 
327 /* SYNC */
328 
329 /* END SYNC */
330 /*
331  * ##################################################
332  * END MAKROS
333  * ##################################################
334  */
335 
336 /*
337  * ##################################################
338  * TYPEDEFS
339  * ##################################################
340  */
341 /*
342  * ##################################################
343  * SIMPLE TYPES
344  * ##################################################
345  */
346 /* FKT */
347 
351 typedef void (*FktCall)( void );
352 
356 typedef void (*FktCallOneArg)( void * );
357 
361 typedef uint8_t SysFktID;
362 /* END FKT */
363 /* STACK */
371 typedef uint16_t StackSize;
372 
376 typedef uint32_t StackTypeT;
377 
385 /* END STACK */
386 
387 /* MESSAGE QUEUE */
395 typedef uint8_t DataSize; // Size of Data
396 
400 typedef uint32_t *Data; // pointer to Data
401 
406 typedef uint8_t QPrio; // priority of a message queue
407 
411 typedef void (*CallBackOnDataRecv)( Data );
412 
416 typedef uint8_t QID; // identifier for a message queue
417 
421 typedef uint8_t MsgCntr;
422 
429 typedef union partID
430 {
431  uint16_t fullID;
432  uint8_t snglID[2];
433 } PartID;
435 /* END MESSAGE QUEUE */
436 
437 /* SEMAPHORES */
445 typedef uint8_t SemNr;
446 
447 
451 typedef uint8_t SemCntr;
453 /* END SEMAPHORES */
454 
455 /* MUTEXES */
462 typedef uint8_t MtxNr;
464 /* END MUTEXES */
465 
466 /* MNTRS */
470 typedef uint8_t MntrNr;
472 /* END MNTRS */
473 
474 /* EVENTS */
481 typedef uint8_t EvtNr;
482 
486 typedef uint32_t EvtMsk;
490 typedef uint32_t EVTQSlots;
492 /* END EVENTS */
493 
494 /* TIMER */
501 typedef uint16_t WaitTime;
502 
506 typedef uint32_t SysTime;
507 
511 typedef uint8_t SysTicks;
512 
516 typedef uint16_t TmrTime;
517 
521 typedef uint32_t LifeTime;
523 /* END TIMER */
524 
525 /* TASK */
532 typedef uint8_t TskID;
533 
534 //MAX 8 BITs
538 typedef uint8_t TskPrioLvl;
539 
543 typedef uint8_t tskStateT;
544 
549 
555 /* END TASK */
556 
557 /* SYNC */
568 typedef uint8_t SyncEleID;
570 /* END SYNC */
571 /*
572  * ##################################################
573  * END SIMPLE TYPES
574  * ##################################################
575  */
576 /*
577  * ##################################################
578  * TYPES
579  * ##################################################
580  */
581 /* STACK */
582 /* END STACK */
583 
584 /* MESSAGE QUEUE */
585 
586 /* END MESSAGE QUEUE */
587 
588 /* SEMAPHORES */
589 
590 /* END SEMAPHORES */
591 
592 /* EVENTS */
593 
594 /* END EVENTS */
595 
596 /* TIMER */
597 
598 /* END TIMER */
599 
600 /* TASK */
601 
602 /* END TASK */
603 
604 /* FKT */
605 
606 /* END FKT */
607 
608 /* SYNC */
609 
610 /* END SYNC */
611 /*
612  * ##################################################
613  * END TYPES
614  * ##################################################
615  */
616 
617 /*
618  * ##################################################
619  * ENUM TYPES
620  * ##################################################
621  */
622 /* STACK */
623 /* END STACK */
624 
625 /* MNTR */
632 typedef enum mntrAccssType
633 {
634  MNTR_ACCESS_NONE = (uint8_t) 0x0u,
635  MNTR_ACCESS_READ = (uint8_t) 0x1u,
636  MNTR_ACCESS_WRITE = (uint8_t) 0x2u,
637  MNTR_ACCESS_DELETE = (uint8_t) 0x4u,
638  MNTR_ACCESS_MODIFY = (uint8_t) 0x8u
639 } ACCSSType;
641 /* END MNTR */
642 
643 /* MESSAGE QUEUE */
650 typedef enum dataTypes
651 {
652  DataT_Undef = (uint8_t) 0x0u,
653  DataT_Int = (uint8_t) 0x1u,
654  DataT_Ptr = (uint8_t) 0x4u,
657  DataT_FunCall = (uint8_t) 0x8u
658 } DataType;
660 /* END MESSAGE QUEUE */
661 
662 /* SEMAPHORES */
663 /* END SEMAPHORES */
664 
665 /* EVENTS */
666 /* END EVENTS */
667 
668 /* TIMER */
675 typedef enum timerTypeEn
676 {
677  SysTimerType = (uint8_t) 0x0u,
678  TskTimerType = (uint8_t) 0x1u,
679  SysTickTimerType = (uint8_t) 0x2u
680 } TimerType;
682 /* END TIMER */
683 
684 /* TASK */
692 typedef enum tskPrio
693 {
705 } TskPrio;
706 
707 
735 typedef enum tskState
736 {
738  TSK_STATE_ACTIVE = ( (tskStateT) 0x10u ),
758 } TskState;
759 
763 typedef enum tskSettings
764 {
765  TskSet_NONE = (uint8_t) 0x00u,
766  TskSet_Periodic = (uint8_t) 0x01u,
767  TskSet_OneShot = (uint8_t) 0x02u,
768  TskSet_DUMMY_0 = (uint8_t) 0x04u,
769  TskSet_DUMMY_1 = (uint8_t) 0x08u,
770  TskSet_DUMMY_2 = (uint8_t) 0x10u,
771  TskSet_DUMMY_3 = (uint8_t) 0x20u,
772  TskSet_DUMMY_4 = (uint8_t) 0x40u,
773  TskSet_DUMMY_5 = (uint8_t) 0x80u
774 } TskSettings;
784 typedef enum evtType
785 {
786  EvtTMR = (uint8_t) 0x21u,
787  EvtMSGRCV = (uint8_t) 0x22u,
788  EvtMSGSND = (uint8_t) 0x24u,
789  EvtEVT = (uint8_t) 0x41u,
790  EvtSEM = (uint8_t) 0x42u,
791  EvtMNTR = (uint8_t) 0x48u
792 } EvtType;
794 /* END TASK */
795 
796 /* FKT */
797 /* END FKT */
798 
799 /* SYNC */
807 typedef enum syncEleType
808 {
809  SyncEle_TYPE_NOID = (uint8_t) 0x0u,
810  SyncEle_TYPE_TMR = (uint8_t) 0x1u,
811  SyncEle_TYPE_EVT = (uint8_t) 0x2u,
812  SyncEle_TYPE_SEM = (uint8_t) 0x3u, //FALLBACK
813  SyncEle_TYPE_BinSEM = (uint8_t) 0x3u,
814  SyncEle_TYPE_CntSEM = (uint8_t) 0x4u,
815  SyncEle_TYPE_MTX = (uint8_t) 0x5u,
816  SyncEle_TYPE_MNTR = (uint8_t) 0x6u
817 } SyncEleType;
819 /* END SYNC */
820 /*
821  * ##################################################
822  * END ENUM TYPES
823  * ##################################################
824  */
825 
826 /*
827  * ##################################################
828  * STRUCT TYPES
829  * ##################################################
830  */
831 /* STACK */
832 /* END STACK */
833 
834 /* SYSTICKTMR */
843 typedef enum sysTckObjTypeEnum
844 {
845  SysTckObj_Err = (uint8_t) 0x0u,
846  SysTckObj_Tsk = (uint8_t) 0x10u,
847  SysTckObj_TskBlck = (uint8_t) 0x11u,
848  SysTckObj_TskWait = (uint8_t) 0x12u,
849  SysTckObj_SysFkt = (uint8_t) 0x20u,
850  SysTckObj_SysFktBlck = (uint8_t) 0x21u,
851  SysTckObj_SysFktWait = (uint8_t) 0x22u,
852 } SysTckEleType;
853 
859 typedef union sysTickEleIDUnion
860 {
861  TskID tskID;
862  SysFktID sysFktID;
863 } SysTickEleID;
864 
868 typedef struct sysTickTMRStruc
869 {
878 /* END SYSTICKTMR */
879 
880 /* MESSAGE QUEUE */
887 typedef const uint32_t * CData;
888 
891 typedef CData *PCData;
892 
904 typedef struct mqData
905 {
906  CData data;
908  DataType dataType;
910 } MQData, *PMQData;
911 
917 typedef struct msgQMsgProvStruc
918 {
920  volatile MsgCntr msgsNew;
922 
926 typedef uint8_t MsgID;
927 
933 typedef struct tskMsgProvStruc
934 {
935  volatile TskID tskProvID;
936  volatile MsgID msgID;
938 
944 typedef struct sysMsgProvStruc
945 {
946  volatile SysFktID sysProvID;
947  volatile MsgID msgID;
949 
950 typedef struct dummyMsgProvStruc
951 {
952  uint8_t dummyID;
953  uint8_t dummyDummy;
954 } DummyMsgProv, *PDummyMsgProv;
955 
959 typedef enum msgProvTypeEnum
960 {
961  MsgQ_Prov = (uint8_t) 0x0u,
962  Tsk_Prov = (uint8_t) 0x1u,
963  Sys_Prov = (uint8_t) 0x2u,
964  Dummy_Prov = (uint8_t) 0xFFu
965 } MsgProvType;
966 
970 typedef union msgPrvdrsUnion
971 {
975  DummyMsgProv dummyMsgProv;
989 typedef struct tskMailBox
990 {
991  /*4*/volatile struct tskMailBox *nxtTskMB;
992 // volatile uint16_t msgMntnr; //!< flags to keep track of which messages have been read and which haven't been read yet
993 // MsgCntr msgsNew; //!< amount of new messages since the subscription
995  /*1*/MsgProvType msgProvType;
996  uint8_t dummyByte;
997 } TskMB, *PTskMB;
999 /* END MESSAGE QUEUE */
1000 /* FKT */
1001 
1005 typedef struct tmrFktCallStruc
1006 {
1013 
1017 typedef struct sysTckFktCallstruc
1018 {
1019  FktCall sysFktCall;
1020  volatile PSysTickTMR sysTckTmr;
1021  SysTicks reloadTime;
1022  uint8_t dummy8;
1023  uint16_t dummy16;
1025 
1029 typedef struct msgFktCallStruc
1030 {
1033  MsgProvType msgProvType;
1035 
1039 typedef struct dummyFktCallStruc
1040 {
1041  void * sysFktCall;/*4*/
1042  uint32_t dummy32;/*4*/
1043  uint16_t dummy16;/*2*/
1044  uint8_t dummy8_1;/*1*/
1045  uint8_t dummy8_2;/*1*/
1047 
1054 typedef struct sysFkt
1055 {
1056  //ToDO think about how to specify the type of the sysFkt... mind the memory usage, since the array is preallocated
1062  {
1067  } fktCallType;
1068 } SysFkt, *PSysFkt;
1069 
1070 /* END FKT */
1071 /* SEMAPHORES */
1072 
1080 typedef enum semTypeEnum
1081 {
1082  SemBin = (uint8_t) 0x0u,
1083  SemCnt = (uint8_t) 0x1u
1084 } SemType;
1085 
1089 #define SEM_NR_OF_TSK_REF_BYTES (uint8_t)((NR_OF_TSKS >> 3) + 1) // NR_OF_TSKS / 8 + 1 gives the number of bits needed for all tasks
1090 
1096 typedef struct semStruc
1097 {
1098  uint8_t tskReferences[SEM_NR_OF_TSK_REF_BYTES];
1099  //TskID semQStrtTskID; //!< TskID of the first task in the waiting queue
1101  SemType semType;
1103 
1108  {
1111  } semSignal;
1112 } Sem, *PSem;
1114 /* END SEMAPHORES */
1115 
1116 /* MUTEXES */
1125 typedef struct mtxStruc
1126 {
1129 } Mtx, *PMtx;
1131 /* END MUTEXES */
1132 
1133 /* EVENTS */
1144 typedef struct evtStruc
1145 {
1147  TskID evtObjs[EVT_QUEUE_SIZE ];
1148 } Evt, *PEvt;
1150 /* END EVENTS */
1151 
1152 /* TIMER */
1160 typedef struct sysTimerStruc
1161 {
1163 } SysTimer, *PSysTimer;
1164 
1168 typedef struct tskTimerStruc
1169 {
1171 } TskTimer, *PTskTimer;
1172 
1176 typedef struct timerStruc
1177 {
1180 
1187  {
1190  } specTimer;
1191 } Timer, *PTimer;
1193 /* END TIMER */
1194 
1195 /* SYNC */
1208 typedef struct syncEleStruc
1209 {
1210  SyncEleType syncEleType;
1212  //SysTicks maxBlckTime; //!< maximum remaining blocking time in SysTicks
1213 
1214  union multipurposeByte
1215  {
1217  uint8_t someDummy;
1218  } MultiPurposeByte;
1219 
1235  {
1236  //EVENT
1242  struct evtSyncEle
1243  {
1245  } EvtSyncEle;
1246  //TIMER
1252  struct tmrSyncEle
1253  {
1255  } TmrSyncEle;
1256  //SEMAPHORE
1262  struct semSyncEle
1263  {
1264  uint8_t dummy1;
1265  uint8_t dummy2;
1266  uint8_t dummy3;
1267  uint8_t dummy4;
1268  } SemSyncEle;
1269  //Mutex
1275  struct mtxSyncEle
1276  {
1277  uint8_t dummy1;
1278  uint8_t dummy2;
1279  uint8_t dummy3;
1280  uint8_t dummy4;
1281  } MtxSyncEle;
1282  //MONITOR
1289  {
1291 
1292  } MntrSyncEle;
1293  } SyncEleHandle;
1294 } SyncEle, *PSyncEle;
1297 /* END SYNC */
1298 
1309 typedef struct advTskPrio_struc
1310 {
1313 } AdvTskPrio;
1314 
1315 /* TASK */
1322 typedef struct tskTCB
1323 {
1324  /*STCK*//*4*/volatile StackPtrT pStckPtr;
1325  /*STCK*//*4*/StackPtrT pStckTop;
1326 
1327  /*STAT*//*4*/TskStartAddr pTskStrt;
1328  /*STAT*//*4*/TskEndAddr pTskEnd;
1329 
1330  /*MSGG*//*4*/volatile PTskMB tskMailBox;
1331 
1332  /*SYNC*//*4*/volatile PSysTickTMR sysTckTmr;
1333  /*SYNC*//*4*/volatile PSyncEle tskSync;
1334 
1335  /*STCK*//*2*/StackSize stckSze;
1336 
1337  // /*STAT*//*1*/volatile TskSettings tskSets; //!< Settings for the task
1338 
1339  /*SCHD*//*1*/AdvTskPrio tskPrio;
1340  /*STAT*//*1*/volatile TskState tskState;
1341 
1342  /*SCHD*//*1*/TskID tskID;
1343  /*SCHD*//*1*/volatile TskID nxtTsk;
1344  /*SCHD*//*1*/volatile TskID prvTsk;
1345 } TskTCB, *PTskTCB;/*36*/
1346 
1348 /* END TASK */
1349 
1350 /*
1351  * ##################################################
1352  * END STRUCT TYPES
1353  * ##################################################
1354  */
1355 /*
1356  * ##################################################
1357  * END TYPEDEFS
1358  * ##################################################
1359  */
1360 
1361 /* STACK */
1362 /* END STACK */
1363 
1364 /* MESSAGE QUEUE */
1365 
1366 /* END MESSAGE QUEUE */
1367 
1368 /* SEMAPHORES */
1369 
1370 /* END SEMAPHORES */
1371 
1372 /* EVENTS */
1373 
1374 /* END EVENTS */
1375 
1376 /* TIMER */
1377 
1378 /* END TIMER */
1379 
1380 /* TASK */
1381 
1382 /* END TASK */
1383 
1384 /* FKT */
1385 
1386 /* END FKT */
1387 
1388 /* SYNC */
1389 
1390 /* END SYNC */
1391 
1392 //SYSCTRL
1399 #define NR_OF_MEMPOOLS (uint8_t)0x7u
1400 
1402 //SYSCTRL
1403 
1409 typedef uint8_t OsCode;
1414 #define OS_FULL_DISPATCH ((OsCode)0x2u)
1415 
1419 #define OS_DISPATCH_NEEDED ((OsCode)0x1u)
1420 
1424 typedef uint8_t RetCode;
1428 #define RET_NOK ((RetCode)0x0u)
1429 
1432 #define RET_OK ((RetCode)0x1u)
1433 
1436 #define RET_MEM_ALLOC_FAIL_TCB ((RetCode)0x1Au)
1437 
1440 #define RET_MEM_ALLOC_FAIL_STACK ((RetCode)0x1Cu)
1441 
1444 #define RET_TSK_TOO_MANY ((RetCode)0x2Fu)
1445 
1448 #define RET_TSK_NO_IDLE_TSK ((RetCode)0x20u)
1449 
1452 #define RET_TSK_CONFLICTING_IDLE_TSK ((RetCode)0x21u)
1453 
1456 #define RET_TSK_STILL_RUNNING ((RetCode)0x24u)
1457 
1460 #define RET_TSK_IS_ABOUT_TO_RUN ((RetCode)0x25u)
1461 
1464 #define RET_STCK_ERR_FULL ((RetCode)0x3Fu)
1465 
1468 #define RET_STCK_ERR_EMPTY ((RetCode)0x30u)
1469 
1472 #define RET_STCK_ERR_INDEX_OVERFLOW ((RetCode)0x31u)
1473 
1476 #define RET_STCK_ERR_INDEX_UNDERFLOW ((RetCode)0x32u)
1477 
1480 #define RET_STCK_NO_STCKELEM_PTR ((RetCode)0x33u)
1481 
1484 #define RET_STCK_NO_STCKPTR ((RetCode)0x34u)
1485 
1486 /* MEMORY_MANAGEMENT */
1490 typedef uint16_t MemSize;
1491 
1492 /* END MEMORY_MANAGEMENT */
1493 
1494 /* SCHEDULER */
1500 typedef struct gStruc_OS_FLAGS
1501 {
1502  volatile uint8_t g_DispatchFlag :2;
1503  volatile uint8_t g_needsScheduling :1;
1504  volatile uint8_t g_tskCriticalExecution :1;
1505  volatile uint8_t gLPExit :1;
1506  volatile uint8_t gWokenUp :1;
1507 } BitsOSFlags;
1508 
1509 /* END SCHEDULER */
1510 
1511 /* SVC */
1515 typedef enum svcCode
1516 {
1517  SVC_OS_START = (uint8_t) 0x0u,
1552  SVC_OS_ERROR = (uint8_t) 0xFFu,
1553 } SVCCode;
1554 
1555 /* END SVC */
1556 #endif /* HEADERS_R_RTOS_INC_H_ */
unified structure for all synchronization mechanism objects.
Definition: R_RTOS_inc.h:1208
NO SETTINGS.
Definition: R_RTOS_inc.h:765
enum sysTckObjTypeEnum SysTckEleType
Enumeration of the objects served by the system tick timer mechanism.
Initialize Monitor.
Definition: R_RTOS_inc.h:1528
EvtMsk evtMsk
Bit mask of events the task is currently waiting for.
Definition: R_RTOS_inc.h:1244
uint8_t SysTicks
Amount of SysTicks.
Definition: R_RTOS_inc.h:511
Start the OS.
Definition: R_RTOS_inc.h:1517
SysMsgProv sysMsgProv
System message provider.
Definition: R_RTOS_inc.h:974
TskTimer tskTimer
Task timer: TskTimer.
Definition: R_RTOS_inc.h:1189
MsgQMsgProv msgQMsgProv
Message Queue message provider.
Definition: R_RTOS_inc.h:972
DataT_Ptr.
Definition: R_RTOS_inc.h:654
Kill a task.
Definition: R_RTOS_inc.h:1521
Call the scheduler.
Definition: R_RTOS_inc.h:1548
volatile PSysTickTMR sysTckTmr
Pointer to SysTickTMR for various SysTick events.
Definition: R_RTOS_inc.h:1332
Task is waiting for a timer.
Definition: R_RTOS_inc.h:747
Signaling counter for each type of semaphore.
Definition: R_RTOS_inc.h:1107
Union structure to unify the different types of system function calls.
Definition: R_RTOS_inc.h:1054
uint16_t MemSize
Type for memory size.
Definition: R_RTOS_inc.h:1490
volatile TskPrio actualTskPrio
Actual TskPrio which was assigned to the task.
Definition: R_RTOS_inc.h:1311
SemCntr semCntrSig
Counting Semaphore - signaling counter.
Definition: R_RTOS_inc.h:1109
Enter low power mode.
Definition: R_RTOS_inc.h:1550
Task is uninitialized, because it finished its execution.
Definition: R_RTOS_inc.h:757
struct sysTickTMRStruc * prvSysTickTMR
previous SysTickTMR object in the current SysTicks slot
Definition: R_RTOS_inc.h:871
volatile MsgCntr msgsNew
Counter for new/unread message in the queue for the task.
Definition: R_RTOS_inc.h:920
struct mtxStruc Mtx
Struct for Mutex maintenance.
struct syncEleStruc SyncEle
unified structure for all synchronization mechanism objects.
uint32_t StackTypeT
Base type of a stack element.
Definition: R_RTOS_inc.h:376
uint16_t fullID
The whole id containing upper and lower byte.
Definition: R_RTOS_inc.h:431
CData * PCData
Pointer to a CData.
Definition: R_RTOS_inc.h:891
Structure of a function call related to a message queue.
Definition: R_RTOS_inc.h:1029
struct tskTCB TskTCB
Task Control Block.
struct advTskPrio_struc AdvTskPrio
Contains the TskPrio visible to the system and the real TskPrio.
syncEleType
Enumeration of synchronization element types.
Definition: R_RTOS_inc.h:807
TSK_PRIO_MED.
Definition: R_RTOS_inc.h:698
struct sysTckFktCallstruc SysTckFktCall
Structure of a function call related to a system tick timer.
DataT_Undef.
Definition: R_RTOS_inc.h:652
common system function system tick object
Definition: R_RTOS_inc.h:849
enum tskState TskState
Possible states of tasks.
MsgPrvdrs msgProv
specific message provider
Definition: R_RTOS_inc.h:994
Identifier for a message queue participant.
Definition: R_RTOS_inc.h:429
semTypeEnum
Enumeartion of Semaphore types.
Definition: R_RTOS_inc.h:1080
System software timer.
Definition: R_RTOS_inc.h:677
union sysTickEleIDUnion SysTickEleID
Unified ID of a system tick element.
uint32_t EvtMsk
Used for event masks.
Definition: R_RTOS_inc.h:486
TskMsgProv tskMsgProv
Task message provider.
Definition: R_RTOS_inc.h:973
Task waiting system tick object used for timeouts by other synchronization mechanisms.
Definition: R_RTOS_inc.h:848
MNTR_ACCESS_NONE.
Definition: R_RTOS_inc.h:634
Task is running in a critical section.
Definition: R_RTOS_inc.h:742
uint32_t EVTQSlots
Used as a bitarry for slots of an event queue.
Definition: R_RTOS_inc.h:490
tskSettings
Settings of a task...
Definition: R_RTOS_inc.h:763
#define EVT_QUEUE_SIZE
Defines the maximum size of the event queues.
Definition: R_RTOS_UsrDefs.h:135
enum msgProvTypeEnum MsgProvType
Types of message providers.
Task is waiting for a mutex.
Definition: R_RTOS_inc.h:751
MsgQ provider type.
Definition: R_RTOS_inc.h:961
enum timerTypeEn TimerType
Enumeration of all the different types of software timers.
MNTR_ACCESS_WRITE.
Definition: R_RTOS_inc.h:636
Output the trace buffer.
Definition: R_RTOS_inc.h:1551
sysTckObjTypeEnum
Enumeration of the objects served by the system tick timer mechanism.
Definition: R_RTOS_inc.h:843
uint8_t QID
Identifier for a message queue.
Definition: R_RTOS_inc.h:416
Common task waiting states.
Definition: R_RTOS_inc.h:753
volatile TskPrio visibleTskPrio
TskPrio currently visible to the system
Definition: R_RTOS_inc.h:1312
EVTQSlots evtQ_Slots
MASK CONTAINING BITS INDICATING IF A SLOT IN THE EVENT QUEUE IS AVAILABLE OR TAKEN.
Definition: R_RTOS_inc.h:1146
Reset critical execution state.
Definition: R_RTOS_inc.h:1523
uint8_t SemCntr
Used as a counter variable for semaphores.
Definition: R_RTOS_inc.h:451
struct timerStruc Timer
Struct for timer maintenance.
delete an existing message queue
Definition: R_RTOS_inc.h:1537
TskSet_DUMMY_1.
Definition: R_RTOS_inc.h:769
TskPrio prioInheritPrio
Initial priority of the task currently occupying the semaphore.
Definition: R_RTOS_inc.h:1100
TSK_PRIO_HIGHER.
Definition: R_RTOS_inc.h:701
tskState
Possible states of tasks.
Definition: R_RTOS_inc.h:735
Task is waiting for an event.
Definition: R_RTOS_inc.h:748
timerTypeEn
Enumeration of all the different types of software timers.
Definition: R_RTOS_inc.h:675
struct msgFktCallStruc MsgFktCall
Structure of a function call related to a message queue.
Utmost highest priority is unique to the IDLE Task to ensure that it is always the start of the list ...
Definition: R_RTOS_inc.h:704
Task is waiting for its message to be received.
Definition: R_RTOS_inc.h:745
Read and destroy a message from a message queue.
Definition: R_RTOS_inc.h:1545
evtType
Enumeration of all the event types in the system.
Definition: R_RTOS_inc.h:784
Pseudo priority level indicating an error.
Definition: R_RTOS_inc.h:694
waiting system function system tick object
Definition: R_RTOS_inc.h:851
Struct for timer maintenance.
Definition: R_RTOS_inc.h:1176
Give back an occupied mutex.
Definition: R_RTOS_inc.h:1525
volatile TskState tskState
Current state of the task.
Definition: R_RTOS_inc.h:1340
Message Queue provider for a mail box.
Definition: R_RTOS_inc.h:917
Task is currently running.
Definition: R_RTOS_inc.h:739
TmrTime reloadTime
time to reload the timer with in case of expiration; 0 if non periodic timer!
Definition: R_RTOS_inc.h:1009
Task is ready to be run.
Definition: R_RTOS_inc.h:741
Publish a message to a message queue.
Definition: R_RTOS_inc.h:1541
ID of the counting semaphore synchronization mechanism.
Definition: R_RTOS_inc.h:814
uint8_t DataSize
Size of the data in a data container.
Definition: R_RTOS_inc.h:395
Task has not yet been initialized.
Definition: R_RTOS_inc.h:755
TSK_PRIO_ULT.
Definition: R_RTOS_inc.h:703
QID msgQID
ID of the message queue.
Definition: R_RTOS_inc.h:919
delete after execution
Definition: R_RTOS_inc.h:767
struct tskTimerStruc TskTimer
Struct for task timer maintenance.
DataT_Int.
Definition: R_RTOS_inc.h:653
volatile MsgID msgID
ID of the sent message.
Definition: R_RTOS_inc.h:947
Union of all available message providers.
Definition: R_RTOS_inc.h:970
No ID of the synchronization element (Probably error)
Definition: R_RTOS_inc.h:809
MsgFktCall msgFktCall
function call from within a messaging context
Definition: R_RTOS_inc.h:1065
Set critical execution state.
Definition: R_RTOS_inc.h:1522
enum tskSettings TskSettings
Settings of a task...
SyncEleID syncEleID
ID of the synchronization element.
Definition: R_RTOS_inc.h:1211
Union of function call types.
Definition: R_RTOS_inc.h:1061
SysFktID fktID
ID of the function.
Definition: R_RTOS_inc.h:1011
DummyMsgProv dummyMsgProv
Dummy message provider.
Definition: R_RTOS_inc.h:975
TimerType timerType
Type of the timer.
Definition: R_RTOS_inc.h:1179
TskSet_DUMMY_0.
Definition: R_RTOS_inc.h:768
volatile PSysTickTMR sysTckTmr
Pointer to SysTickTMR for various SysTick events.
Definition: R_RTOS_inc.h:1020
TskID mtxOccTskID
TskID of the task currently occupying the Mutex.
Definition: R_RTOS_inc.h:1128
Read and destroy all new messages from a message queue.
Definition: R_RTOS_inc.h:1546
System Tick software timer.
Definition: R_RTOS_inc.h:679
uint8_t MtxNr
Number of a Mutex.
Definition: R_RTOS_inc.h:462
ID of the software timer synchronization mechanism.
Definition: R_RTOS_inc.h:810
SysTckFktCall sysTckFktCall
function call from within a system tick timer context
Definition: R_RTOS_inc.h:1064
TSK_PRIO_HIGHEST.
Definition: R_RTOS_inc.h:702
DataT_FunCall.
Definition: R_RTOS_inc.h:657
#define SEM_NR_OF_TSK_REF_BYTES
Bytes needed to create a mask for all available tasks.
Definition: R_RTOS_inc.h:1089
OS ERROR.
Definition: R_RTOS_inc.h:1552
enum evtType EvtType
Enumeration of all the event types in the system.
uint32_t SysTime
Used to describe a systemtime.
Definition: R_RTOS_inc.h:506
struct mqData MQData
Circular array backed fixed size buffer for data entities.
EvtMSGSND.
Definition: R_RTOS_inc.h:788
struct tmrFktCallStruc TmrFktCall
Structure of a function call related to a software timer.
SysTimer sysTimer
System timer: SysTimer.
Definition: R_RTOS_inc.h:1188
AdvTskPrio tskPrio
Current priority settings of the task.
Definition: R_RTOS_inc.h:1339
Struct for Mutex maintenance.
Definition: R_RTOS_inc.h:1125
MNTR_ACCESS_MODIFY.
Definition: R_RTOS_inc.h:638
Task is waiting for a monitor.
Definition: R_RTOS_inc.h:752
Activate a task.
Definition: R_RTOS_inc.h:1520
struct gStruc_OS_FLAGS BitsOSFlags
Struct for OS flags.
uint8_t SemNr
Number of a semaphore.
Definition: R_RTOS_inc.h:445
struct msgQMsgProvStruc MsgQMsgProv
Message Queue provider for a mail box.
Struct for task timer maintenance.
Definition: R_RTOS_inc.h:1168
TskSet_DUMMY_5.
Definition: R_RTOS_inc.h:773
StackSize stckSze
size of the task&#39;s stack
Definition: R_RTOS_inc.h:1335
TskID mtxQStrtTskID
TskID of the first task in the waiting queue.
Definition: R_RTOS_inc.h:1127
Unified specialized SyncEle Handles.
Definition: R_RTOS_inc.h:1234
struct sysTimerStruc SysTimer
Struct for system timer maintenance.
enum svcCode SVCCode
Contains the SVCCode for the SVC Call.
Event syncEleStruc::syncEleHandle.
Definition: R_RTOS_inc.h:1242
struct sysFkt SysFkt
Union structure to unify the different types of system function calls.
uint8_t MsgCntr
Counter for messages.
Definition: R_RTOS_inc.h:421
Binary Semaphore.
Definition: R_RTOS_inc.h:1082
Call a function with privileges using main stack.
Definition: R_RTOS_inc.h:1549
volatile StackPtrT pStckPtr
current stack pointer
Definition: R_RTOS_inc.h:1324
DummyFktCall dummyfktCall
DUMMY.
Definition: R_RTOS_inc.h:1066
uint8_t snglID[2]
The two separate bytes of the id.
Definition: R_RTOS_inc.h:432
PartID pubID
PartiID of the publisher.
Definition: R_RTOS_inc.h:907
uint8_t OsCode
Codes for OS functionality.
Definition: R_RTOS_inc.h:1409
Task mailbox for messaging services.
Definition: R_RTOS_inc.h:989
DataType dataType
Type of the given data.
Definition: R_RTOS_inc.h:908
Read a message from a message queue.
Definition: R_RTOS_inc.h:1542
Request write access to monitor.
Definition: R_RTOS_inc.h:1530
Dummy provider type.
Definition: R_RTOS_inc.h:964
dataTypes
Enumeration of data types for data stored within another structure.
Definition: R_RTOS_inc.h:650
uint32_t * Data
Data to store in a data container.
Definition: R_RTOS_inc.h:400
CData data
Data stored within the message.
Definition: R_RTOS_inc.h:906
common Task system tick object
Definition: R_RTOS_inc.h:846
FktCall TskStartAddr
function pointer to a task&#39;s function with no arguments and no return.
Definition: R_RTOS_inc.h:548
SemCntr maxCntrVal
Maximum Counter value assigned at the initialization of the Semaphore.
Definition: R_RTOS_inc.h:1102
EvtMNTR.
Definition: R_RTOS_inc.h:791
LifeTime expirationTime
LifeTime value when the timer to call this function expires.
Definition: R_RTOS_inc.h:1008
ID of the monitor synchronization mechanism.
Definition: R_RTOS_inc.h:816
ID of the event synchronization mechanism.
Definition: R_RTOS_inc.h:811
Register system function to a message queue as a subscriber.
Definition: R_RTOS_inc.h:1540
volatile TskID prvTsk
TskID of the child task to the right.
Definition: R_RTOS_inc.h:1344
Counting Semaphore.
Definition: R_RTOS_inc.h:1083
Structure to keep track of system tick timer objects.
Definition: R_RTOS_inc.h:868
uint16_t WaitTime
Time to wait for a Timer.
Definition: R_RTOS_inc.h:501
FktCall sysFktCall
function call with no return and no arguments
Definition: R_RTOS_inc.h:1007
Register to a message queue as a publisher.
Definition: R_RTOS_inc.h:1538
TSK_PRIO_LOWER.
Definition: R_RTOS_inc.h:696
SysFktID nxtFktCall
array index of the next function call in the sysTMR queue
Definition: R_RTOS_inc.h:1010
Struct for system timer maintenance.
Definition: R_RTOS_inc.h:1160
Blocking system function system tick object.
Definition: R_RTOS_inc.h:850
enum semTypeEnum SemType
Enumeartion of Semaphore types.
struct tskMailBox TskMB
Task mailbox for messaging services.
TmrFktCall tmrFktCall
function call from within a Timer context
Definition: R_RTOS_inc.h:1063
Task is uninitialized due to a system failure.
Definition: R_RTOS_inc.h:756
Task is waiting for a message to be published.
Definition: R_RTOS_inc.h:744
SysTicks remSysTicks
remaining SysTicks until the SysTickTMR expires
Definition: R_RTOS_inc.h:874
TskSet_DUMMY_4.
Definition: R_RTOS_inc.h:772
EvtTMR.
Definition: R_RTOS_inc.h:786
SysTickEleID sysTckObjID
ID of the object this SysTickTMR belongs to.
Definition: R_RTOS_inc.h:873
SysTckEleType sysTckObjType
Type of the object this SysTickTMR belongs to.
Definition: R_RTOS_inc.h:872
TskID tskID
ID of the task.
Definition: R_RTOS_inc.h:1342
uint8_t TskID
Task identification number (ID).
Definition: R_RTOS_inc.h:532
ID of the mutex synchronization mechanism.
Definition: R_RTOS_inc.h:815
Error state.
Definition: R_RTOS_inc.h:737
TSK_PRIO_LOWEST.
Definition: R_RTOS_inc.h:695
EvtSEM.
Definition: R_RTOS_inc.h:790
SyncEleType syncEleType
Type of the synchronization element referred to.
Definition: R_RTOS_inc.h:1210
Release a semaphore.
Definition: R_RTOS_inc.h:1527
struct semStruc Sem
Struct for semaphore maintenance.
enum dataTypes DataType
Enumeration of data types for data stored within another structure.
uint8_t SyncEleID
ID of the synchronization element.
Definition: R_RTOS_inc.h:568
TskEndAddr pTskEnd
Pointer to task&#39;s ending function, which is executed at the end of the task (usually tsk_EndTheTask) ...
Definition: R_RTOS_inc.h:1328
StackPtrT pStckTop
top of the stack
Definition: R_RTOS_inc.h:1325
Contains the TskPrio visible to the system and the real TskPrio.
Definition: R_RTOS_inc.h:1309
volatile struct tskMailBox * nxtTskMB
pointer to next TskMB
Definition: R_RTOS_inc.h:991
SysFkt provider type.
Definition: R_RTOS_inc.h:963
Mutex syncEleStruc::syncEleHandle.
Definition: R_RTOS_inc.h:1275
svcCode
Contains the SVCCode for the SVC Call.
Definition: R_RTOS_inc.h:1515
uint8_t MsgID
ID of a message.
Definition: R_RTOS_inc.h:926
SemCntr semBinSig
Binary Semaphore - signaled/not signaled.
Definition: R_RTOS_inc.h:1110
Wait for an event.
Definition: R_RTOS_inc.h:1533
MsgProvType msgProvType
type of the provider linked with this TskMB
Definition: R_RTOS_inc.h:995
Structure of a function call related to a software timer.
Definition: R_RTOS_inc.h:1005
const uint32_t * CData
pointer a constant double word (32 bit) of data.
Definition: R_RTOS_inc.h:887
Release current access to monitor.
Definition: R_RTOS_inc.h:1531
SemType semType
Indicates the type of semaphore (binary or counting)
Definition: R_RTOS_inc.h:1101
uint16_t TmrTime
Used to describe the time of a software timer.
Definition: R_RTOS_inc.h:516
uint8_t QPrio
Priority of a message queue.
Definition: R_RTOS_inc.h:406
TSK_PRIO_HIG.
Definition: R_RTOS_inc.h:700
TskTCB provider type.
Definition: R_RTOS_inc.h:962
Struct for Event maintenance.
Definition: R_RTOS_inc.h:1144
MsgProvType msgProvType
type of the provider linked with this message based function call
Definition: R_RTOS_inc.h:1033
volatile PSyncEle tskSync
Pointer to SyncEle the task is currently being blocked by.
Definition: R_RTOS_inc.h:1333
volatile MsgID msgID
ID of the sent message.
Definition: R_RTOS_inc.h:936
DataT_String.
Definition: R_RTOS_inc.h:656
ID of the binary semaphore synchronization mechanism.
Definition: R_RTOS_inc.h:813
create a new message queue
Definition: R_RTOS_inc.h:1536
SysTicks insrtnSysTicksTime
time in SysTicks when the timer was set
Definition: R_RTOS_inc.h:875
TskSet_DUMMY_3.
Definition: R_RTOS_inc.h:771
struct sysTickTMRStruc * nxtSysTickTMR
next SysTickTMR object in the current SysTicks slot
Definition: R_RTOS_inc.h:870
MNTR_ACCESS_DELETE.
Definition: R_RTOS_inc.h:637
enum syncEleType SyncEleType
Enumeration of synchronization element types.
LifeTime expirationTime
contains the time the timer expires relative to the PIT value
Definition: R_RTOS_inc.h:1178
StackTypeT * StackPtrT
Pointer to a StackTypeT.
Definition: R_RTOS_inc.h:383
struct sysMsgProvStruc SysMsgProv
System messaging provider for a mail box.
Task Control Block.
Definition: R_RTOS_inc.h:1322
Task software timer.
Definition: R_RTOS_inc.h:678
tskPrio
Task priority level.
Definition: R_RTOS_inc.h:692
Circular array backed fixed size buffer for data entities.
Definition: R_RTOS_inc.h:904
uint8_t TskPrioLvl
Used to set the size of the task priorities.
Definition: R_RTOS_inc.h:538
msgProvTypeEnum
Types of message providers.
Definition: R_RTOS_inc.h:959
EvtMSGRCV.
Definition: R_RTOS_inc.h:787
struct dummyFktCallStruc DummyFktCall
Structure of a dummy function call.
mntrAccssType
Enumeration of the access types for access on a monitor.
Definition: R_RTOS_inc.h:632
Register to a message queue as a subscriber.
Definition: R_RTOS_inc.h:1539
Set up a timer.
Definition: R_RTOS_inc.h:1534
union partID PartID
Identifier for a message queue participant.
Task synchronization waiting states.
Definition: R_RTOS_inc.h:746
void(* FktCallOneArg)(void *)
Function pointer with one arguments and no return.
Definition: R_RTOS_inc.h:356
MsgPrvdrs msgProv
specific message provider
Definition: R_RTOS_inc.h:1032
Send an event.
Definition: R_RTOS_inc.h:1532
TskSet_DUMMY_2.
Definition: R_RTOS_inc.h:770
Semaphore syncEleStruc::syncEleHandle.
Definition: R_RTOS_inc.h:1262
Active task states.
Definition: R_RTOS_inc.h:738
keep task context
Definition: R_RTOS_inc.h:766
Take a semaphore.
Definition: R_RTOS_inc.h:1526
FktCall TskEndAddr
function pointer to a function which shall be called if a task finishes its execution.
Definition: R_RTOS_inc.h:553
Task is uninitialized.
Definition: R_RTOS_inc.h:754
Structure of a function call related to a system tick timer.
Definition: R_RTOS_inc.h:1017
TskID tskIDQStrt
ID of the task belonging to the timer.
Definition: R_RTOS_inc.h:1170
uint8_t SysFktID
System function ID.
Definition: R_RTOS_inc.h:361
SysFktID sysFktIDQStrt
ID of the system function belonging to the timer.
Definition: R_RTOS_inc.h:1162
volatile TskID tskProvID
TskID of the provider task.
Definition: R_RTOS_inc.h:935
MNTR_ACCESS_READ.
Definition: R_RTOS_inc.h:635
LifeTime expireTime
Timer expiration time as LifeTime.
Definition: R_RTOS_inc.h:1254
struct sysTickTMRStruc SysTickTMR
Structure to keep track of system tick timer objects.
Structure of a dummy function call.
Definition: R_RTOS_inc.h:1039
union msgPrvdrsUnion MsgPrvdrs
Union of all available message providers.
DataSize dataSize
size of the data in the message
Definition: R_RTOS_inc.h:909
Union of specialized timers.
Definition: R_RTOS_inc.h:1186
System messaging provider for a mail box.
Definition: R_RTOS_inc.h:944
Read all new messages from a message queue.
Definition: R_RTOS_inc.h:1543
uint32_t LifeTime
Used to describe time in the system as a timestamp.
Definition: R_RTOS_inc.h:521
uint16_t StackSize
Used to describe the size of a stack.
Definition: R_RTOS_inc.h:371
Read and destroy all messages from a message queue.
Definition: R_RTOS_inc.h:1547
Read all messages from a message queue.
Definition: R_RTOS_inc.h:1544
volatile TskID nxtTsk
TskID of the child task to the left.
Definition: R_RTOS_inc.h:1343
FktCallOneArg sysFktCall
Function call with no return and a void pointer as input argument.
Definition: R_RTOS_inc.h:1031
Set a task&#39;s priority.
Definition: R_RTOS_inc.h:1519
TSK_PRIO_LOW.
Definition: R_RTOS_inc.h:697
TSK_PRIO_ABOVMED.
Definition: R_RTOS_inc.h:699
void(* CallBackOnDataRecv)(Data)
Pointer to a function with one Data input parameter and void as return.
Definition: R_RTOS_inc.h:411
Struct for OS flags.
Definition: R_RTOS_inc.h:1500
Set a system tick timer.
Definition: R_RTOS_inc.h:1535
uint8_t RetCode
Return codes for functions.
Definition: R_RTOS_inc.h:1424
EvtEVT.
Definition: R_RTOS_inc.h:789
volatile PTskMB tskMailBox
pointer to task mailbox
Definition: R_RTOS_inc.h:1330
volatile SysFktID sysProvID
ID of the system provider&#39;s system function.
Definition: R_RTOS_inc.h:946
Task messaging provider for a mail box.
Definition: R_RTOS_inc.h:933
enum tskPrio TskPrio
Task priority level.
struct evtStruc Evt
Struct for Event maintenance.
Monitor syncEleStruc::syncEleHandle.
Definition: R_RTOS_inc.h:1288
DataT_Int_Ptr.
Definition: R_RTOS_inc.h:655
Unified ID of a system tick element.
Definition: R_RTOS_inc.h:859
uint8_t EvtNr
Number of an event.
Definition: R_RTOS_inc.h:481
struct tskMsgProvStruc TskMsgProv
Task messaging provider for a mail box.
Initialize a task.
Definition: R_RTOS_inc.h:1518
Task is waiting for a coutning semaphore.
Definition: R_RTOS_inc.h:750
Error of system tick object.
Definition: R_RTOS_inc.h:845
Task is waiting for a binary semaphore.
Definition: R_RTOS_inc.h:749
ACCSSType mntrAccssType
ACCSSType for the Mntr access.
Definition: R_RTOS_inc.h:1290
Task blocking system tick object.
Definition: R_RTOS_inc.h:847
uint8_t tskStateT
Used to set the size of the task states.
Definition: R_RTOS_inc.h:543
Struct for semaphore maintenance.
Definition: R_RTOS_inc.h:1096
Attempt to take a mutex.
Definition: R_RTOS_inc.h:1524
Task was preempted, hence it is suspended.
Definition: R_RTOS_inc.h:740
TskStartAddr pTskStrt
Pointer to task&#39;s function&#39;s address.
Definition: R_RTOS_inc.h:1327
enum mntrAccssType ACCSSType
Enumeration of the access types for access on a monitor.
Task messaging waiting states.
Definition: R_RTOS_inc.h:743
void(* FktCall)(void)
Function pointer with no arguments and no return.
Definition: R_RTOS_inc.h:351
Request read access to monitor.
Definition: R_RTOS_inc.h:1529
Timer syncEleStruc::syncEleHandle.
Definition: R_RTOS_inc.h:1252