9 #ifndef HEADERS_R_RTOS_SERVICES_H_ 10 #define HEADERS_R_RTOS_SERVICES_H_ 14 #ifndef __STATIC_INLINE 15 #define __STATIC_INLINE static inline 28 #define INPUT_ARG_1(input) __asm volatile( "movs r0, %0 \n"::"l"(input) :) 40 #define INPUT_ARG_2(input) __asm volatile( "movs r1, %0 \n"::"l"(input) :) 52 #define INPUT_ARG_3(input) __asm volatile( "movs r2, %0 \n"::"l"(input) :) 64 #define INPUT_ARG_4(input) __asm volatile( "movs r3, %0 \n"::"l"(input) :) 75 #define OUTPUT_ARG(output) __asm volatile( "mrs r1, msp \n ldr r0, [r1] \n movs %0, r0 \n":"=l"(output): :"memory") 85 #define SVC( svcCode ) __asm volatile( "svc %[svc_code] \n" : : [svc_code]"I"(svcCode) : ) 87 __attribute__( ( always_inline ) ) __STATIC_INLINE
void svc_os_StartOS(
void )
96 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_tsk_InitTsk(
112 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_tsk_SetTskPrio(
124 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_tsk_ActvTsk(
134 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_tsk_KillTsk(
144 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_tsk_setTskCriticalState(
153 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_tsk_resetTskCriticalState(
162 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_mtx_TakeMtx(
176 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_mtx_GiveMtx(
188 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_sem_wait(
202 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_sem_signal(
214 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_mntr_init_mntr(
226 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_mntr_ReqReadAccs(
238 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_mntr_ReqWriteAccs(
251 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_mntr_RelAccs(
252 const MntrNr mntrNr )
260 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_evt_SendEvt(
270 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_evt_RecvEvt(
284 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_tmr_SetTimer(
296 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_sysTck_SetTimer(
308 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_msgq_CrtQ(
318 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_msgq_DelQ(
328 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_msgq_RegPub(
340 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_msgq_RegTskSub(
352 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_msgq_RegSysSub(
364 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_msgq_PubMsg(
380 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_msgq_MsgRead(
394 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_msgq_MsgRead_AllNew(
408 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_msgq_MsgRead_All(
422 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_msgq_MsgTake(
436 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_msgq_MsgTake_AllNew(
450 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_msgq_MsgTake_All(
464 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_os_Scheduler(
void )
472 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_cll_FktWithPrivileges(
482 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_lp_EnterLPMode(
491 __attribute__( ( always_inline )) __STATIC_INLINE
RetCode svc_trc_OutputTrace(
Initialize Monitor.
Definition: R_RTOS_inc.h:1528
uint8_t SysTicks
Amount of SysTicks.
Definition: R_RTOS_inc.h:511
Start the OS.
Definition: R_RTOS_inc.h:1517
Kill a task.
Definition: R_RTOS_inc.h:1521
Call the scheduler.
Definition: R_RTOS_inc.h:1548
Enter low power mode.
Definition: R_RTOS_inc.h:1550
uint32_t EVTQSlots
Used as a bitarry for slots of an event queue.
Definition: R_RTOS_inc.h:490
#define OUTPUT_ARG(output)
Retrieves an return value from a preceding function call and stores it into output.
Definition: R_RTOS_services.h:75
Output the trace buffer.
Definition: R_RTOS_inc.h:1551
uint8_t QID
Identifier for a message queue.
Definition: R_RTOS_inc.h:416
Reset critical execution state.
Definition: R_RTOS_inc.h:1523
Defines, Typedefs and Macros for the whole system.
delete an existing message queue
Definition: R_RTOS_inc.h:1537
Read and destroy a message from a message queue.
Definition: R_RTOS_inc.h:1545
Give back an occupied mutex.
Definition: R_RTOS_inc.h:1525
Publish a message to a message queue.
Definition: R_RTOS_inc.h:1541
uint8_t DataSize
Size of the data in a data container.
Definition: R_RTOS_inc.h:395
Set critical execution state.
Definition: R_RTOS_inc.h:1522
Read and destroy all new messages from a message queue.
Definition: R_RTOS_inc.h:1546
uint8_t MtxNr
Number of a Mutex.
Definition: R_RTOS_inc.h:462
Activate a task.
Definition: R_RTOS_inc.h:1520
uint8_t SemNr
Number of a semaphore.
Definition: R_RTOS_inc.h:445
Call a function with privileges using main stack.
Definition: R_RTOS_inc.h:1549
Read a message from a message queue.
Definition: R_RTOS_inc.h:1542
Request write access to monitor.
Definition: R_RTOS_inc.h:1530
uint32_t * Data
Data to store in a data container.
Definition: R_RTOS_inc.h:400
FktCall TskStartAddr
function pointer to a task's function with no arguments and no return.
Definition: R_RTOS_inc.h:548
Register system function to a message queue as a subscriber.
Definition: R_RTOS_inc.h:1540
uint16_t WaitTime
Time to wait for a Timer.
Definition: R_RTOS_inc.h:501
Register to a message queue as a publisher.
Definition: R_RTOS_inc.h:1538
uint8_t TskID
Task identification number (ID).
Definition: R_RTOS_inc.h:532
Release a semaphore.
Definition: R_RTOS_inc.h:1527
enum dataTypes DataType
Enumeration of data types for data stored within another structure.
Wait for an event.
Definition: R_RTOS_inc.h:1533
#define SVC(svcCode)
SVC Call with the given svcCode.
Definition: R_RTOS_services.h:85
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
#define INPUT_ARG_2(input)
Sets input as the second input argument for a following function call.
Definition: R_RTOS_services.h:40
#define INPUT_ARG_4(input)
Sets input as the fourth input argument for a following function call.
Definition: R_RTOS_services.h:64
create a new message queue
Definition: R_RTOS_inc.h:1536
#define INPUT_ARG_3(input)
Sets input as the third input argument for a following function call.
Definition: R_RTOS_services.h:52
Task Control Block.
Definition: R_RTOS_inc.h:1322
tskPrio
Task priority level.
Definition: R_RTOS_inc.h:692
#define INPUT_ARG_1(input)
Sets input as the first input argument for a following function call.
Definition: R_RTOS_services.h:28
Circular array backed fixed size buffer for data entities.
Definition: R_RTOS_inc.h:904
Register to a message queue as a subscriber.
Definition: R_RTOS_inc.h:1539
Set up a timer.
Definition: R_RTOS_inc.h:1534
Send an event.
Definition: R_RTOS_inc.h:1532
Take a semaphore.
Definition: R_RTOS_inc.h:1526
uint8_t SysFktID
System function ID.
Definition: R_RTOS_inc.h:361
Read all new messages from a message queue.
Definition: R_RTOS_inc.h:1543
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
Set a task's priority.
Definition: R_RTOS_inc.h:1519
Set a system tick timer.
Definition: R_RTOS_inc.h:1535
uint8_t RetCode
Return codes for functions.
Definition: R_RTOS_inc.h:1424
enum tskPrio TskPrio
Task priority level.
uint8_t EvtNr
Number of an event.
Definition: R_RTOS_inc.h:481
Initialize a task.
Definition: R_RTOS_inc.h:1518
Attempt to take a mutex.
Definition: R_RTOS_inc.h:1524
Request read access to monitor.
Definition: R_RTOS_inc.h:1529