57 #if defined (USING_OS_FREERTOS)
58 #error "Wrong OSIF selected. Please define symbol USING_OS_BAREMETAL (or no OS define) in project settings or change the OSIF variant"
72 #define MSEC_TO_TICK(msec) (msec)
74 static volatile uint32_t s_osif_tick_cnt = 0u;
76 void SysTick_Handler(
void);
78 void SysTick_Handler(
void)
83 static inline uint32_t osif_GetCurrentTickCount(
void)
85 return s_osif_tick_cnt;
88 static inline void osif_UpdateSystickConfig(
void)
90 uint32_t core_freq = 0u;
115 osif_UpdateSystickConfig();
116 uint32_t start = osif_GetCurrentTickCount();
117 uint32_t crt_ticks = osif_GetCurrentTickCount();
118 uint32_t delta = crt_ticks - start;
119 uint32_t delay_ticks = MSEC_TO_TICK(delay);
120 while (delta < delay_ticks)
122 crt_ticks = osif_GetCurrentTickCount();
123 delta = crt_ticks - start;
146 return osif_GetCurrentTickCount();
157 const uint32_t timeout)
215 const uint32_t timeout)
219 uint32_t timeoutTicks;
222 osif_UpdateSystickConfig();
230 timeoutTicks = MSEC_TO_TICK(timeout);
233 uint32_t start = osif_GetCurrentTickCount();
234 uint32_t end = (uint32_t)(start + timeoutTicks);
235 uint32_t max = end - start;
238 uint32_t crt_ticks = osif_GetCurrentTickCount();
239 uint32_t delta = crt_ticks - start;
255 return osif_ret_code;
282 return osif_ret_code;
293 const uint8_t initValue)
status_t OSIF_MutexDestroy(const mutex_t *const pMutex)
Destroys a previously created mutex.
status_t OSIF_SemaDestroy(const semaphore_t *const pSem)
Destroys a previously created semaphore.
#define S32_SysTick_RVR_RELOAD(x)
void OSIF_TimeDelay(const uint32_t delay)
Delays execution for a number of milliseconds.
status_t OSIF_MutexUnlock(const mutex_t *const pMutex)
Unlocks a previously locked mutex.
#define S32_SysTick_CSR_ENABLE(x)
status_t OSIF_MutexLock(const mutex_t *const pMutex, const uint32_t timeout)
Waits for a mutex and locks it.
uint32_t OSIF_GetMilliseconds(void)
Returns the number of miliseconds elapsed since starting the internal timer or starting the scheduler...
status_t OSIF_SemaCreate(semaphore_t *const pSem, const uint8_t initValue)
Creates a semaphore with a given value.
void INT_SYS_DisableIRQGlobal(void)
Disable system interrupt.
status_t OSIF_MutexCreate(mutex_t *const pMutex)
Create an unlocked mutex.
status_t CLOCK_SYS_GetFreq(clock_names_t clockName, uint32_t *frequency)
Gets the clock frequency for a specific clock name.
status_t
Status return codes. Common error codes will be a unified enumeration (C enum) that will contain all ...
void INT_SYS_EnableIRQGlobal(void)
Enables system interrupt.
status_t OSIF_SemaWait(semaphore_t *const pSem, const uint32_t timeout)
Decrement a semaphore with timeout.
#define S32_SysTick_CSR_TICKINT(x)
#define OSIF_WAIT_FOREVER
status_t OSIF_SemaPost(semaphore_t *const pSem)
Increment a semaphore.