00001
00025 #define OSAL_GLOBALS
00026 #include "OSAL.h"
00027 #undef OSAL_GLOBALS
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 WEAK void OSALIdleHook();
00039 WEAK void OSALSysTickHook();
00040 WEAK void OSALStackOverflowHook(OSAL_TASK *pHandle, OSAL_NAME *pTaskName);
00041
00042
00043
00044
00045
00046
00047
00048 #if (RTOS == FreeRTOS)
00049 #include "OSAL_FreeRTOS.c"
00050 #endif
00051 #if (RTOS == MICROCOSII)
00052 #include "OSAL_µCOSII.c"
00053 #endif
00054
00055
00056
00057
00058
00059
00060
00061
00062 OSAL_ERROR OSALTaskCreate(OSAL_NAME *pName,
00063 OSAL_TASK_FUNCTION func,
00064 OSAL_STACK_SIZE stackSize,
00065 OSAL_TASK_ARGS *pArgs,
00066 OSAL_PRIO prio,
00067 OSAL_TASK *pHandle)
00068 {
00069 return OSW_TaskCreate(pName, func, stackSize, pArgs, prio, pHandle);
00070 }
00071
00072 OSAL_ERROR OSALTaskDelete(OSAL_TASK handle)
00073 {
00074 return OSW_TaskDelete(handle);
00075 }
00076
00077 OSAL_ERROR OSALTaskSuspend(OSAL_TASK handle)
00078 {
00079 return OSW_TaskSuspend(handle);
00080 }
00081
00082 OSAL_ERROR OSALTaskResume(OSAL_TASK handle)
00083 {
00084 return OSW_TaskResume(handle);
00085 }
00086
00087 OSAL_ERROR OSALTaskPrioSet(OSAL_TASK handle, OSAL_PRIO prio)
00088 {
00089 return OSW_TaskPrioSet(handle, prio);
00090 }
00091
00092 OSAL_ERROR OSALTaskPrioGet(OSAL_TASK handle, OSAL_PRIO *pPrio)
00093 {
00094 return OSW_TaskPrioGet(handle, pPrio);
00095 }
00096
00097 OSAL_ERROR OSALTaskDelay(OSAL_TASK handle, OSAL_TICK *pStartTime, OSAL_TICK ticks)
00098 {
00099 return OSW_TaskDelay(handle, pStartTime, ticks);
00100 }
00101
00102
00103
00104
00105
00106
00107
00108
00109 OSAL_ERROR OSALQueueCreate(OSAL_NAME *pName, OSAL_COUNT queueSize, OSAL_MESSAGE_SIZE itemSize, OSAL_QUEUE *pHandle )
00110 {
00111 return OSW_QueueCreate(pName, queueSize, itemSize, pHandle);
00112 }
00113
00114 OSAL_ERROR OSALQueueDelete(OSAL_QUEUE handle)
00115 {
00116 return OSW_QueueDelete(handle);
00117 }
00118
00119 OSAL_ERROR OSALQueueSend(OSAL_QUEUE handle, OSAL_MESSAGE *pMsg, OSAL_QUEUE_LOCATION location, OSAL_TIMEOUT timeout, OSAL_ARG *pHighPrioTaskSwitch, OSAL_FLAG callFromISR)
00120 {
00121 return OSW_QueueSend(handle, pMsg, location, timeout, pHighPrioTaskSwitch, callFromISR);
00122 }
00123
00124 OSAL_ERROR OSALQueueReceive(OSAL_QUEUE handle, OSAL_MESSAGE *pMsg, OSAL_TIMEOUT timeout, OSAL_ARG *pHighPrioTaskSwitch, OSAL_FLAG callFromISR)
00125 {
00126 return OSW_QueueReceive(handle, pMsg, timeout, pHighPrioTaskSwitch, callFromISR);
00127 }
00128
00129 OSAL_ERROR OSALQueuePeek(OSAL_QUEUE handle, OSAL_MESSAGE *pMsg, OSAL_TIMEOUT timeout)
00130 {
00131 return OSW_QueuePeek(handle, pMsg, timeout);
00132 }
00133 OSAL_ERROR OSALQueueCount(OSAL_QUEUE handle, OSAL_COUNT *pCount)
00134 {
00135 return OSW_QueueCount(handle, pCount);
00136 }
00137
00138
00139
00140
00141
00142
00143
00144
00145 OSAL_ERROR OSALSemaphoreCreate(OSAL_NAME *pName, OSAL_COUNT maxCount, OSAL_COUNT initCount, OSAL_SEMAPHORE *pHandle)
00146 {
00147 return OSW_SemaphoreCreate(pName, maxCount, initCount, pHandle);
00148 }
00149
00150 OSAL_ERROR OSALSemaphoreDelete(OSAL_SEMAPHORE handle)
00151 {
00152 OSAL_ENTER_CRITICAL();
00153 OSW_SemaphoreDelete(handle);
00154 OSAL_EXIT_CRITICAL();
00155
00156 return OSAL_ERROR_NONE;
00157 }
00158
00159 OSAL_ERROR OSALSemaphoreAcquire(OSAL_SEMAPHORE handle, OSAL_TIMEOUT timeout, OSAL_FLAG callFromISR)
00160 {
00161 return OSW_SemaphoreAcquire(handle, timeout, callFromISR);
00162 }
00163
00164 OSAL_ERROR OSALSemaphoreRelease(OSAL_SEMAPHORE handle, OSAL_ARG *pHighPrioTaskSwitch, OSAL_FLAG callFromISR)
00165 {
00166 return OSW_SemaphoreRelease(handle, pHighPrioTaskSwitch, callFromISR);
00167 }
00168
00169
00170
00171
00172
00173
00174
00175
00176 OSAL_ERROR OSALMutexCreate(OSAL_NAME *pName, OSAL_MUTEX *pHandle)
00177 {
00178 return OSW_MutexCreate(pName, pHandle);
00179 }
00180
00181 OSAL_ERROR OSALMutexDelete(OSAL_MUTEX handle)
00182 {
00183 OSAL_ENTER_CRITICAL();
00184 OSW_MutexDelete(handle);
00185 OSAL_EXIT_CRITICAL();
00186
00187 return OSAL_ERROR_NONE;
00188 }
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198 OSAL_ERROR OSALStart()
00199 {
00200 return OSW_Start();
00201 }
00202
00203 OSAL_TICK OSALGetTickCount()
00204 {
00205 return OSW_GetTickCount();
00206 }
00207
00208 void OSAL_ENTER_CRITICAL()
00209 {
00210 OSW_ENTER_CRITICAL();
00211 }
00212 void OSAL_EXIT_CRITICAL()
00213 {
00214 OSW_EXIT_CRITICAL();
00215 }
00216 void OSAL_ENTER_ISR(OSAL_ARG *pHighPrioTaskWoken)
00217 {
00218 OSW_ENTER_ISR(pHighPrioTaskWoken);
00219 }
00220 void OSAL_EXIT_ISR(OSAL_ARG *pHighPrioTaskWoken)
00221 {
00222 OSW_EXIT_ISR(pHighPrioTaskWoken);
00223 }
00224 void OSAL_DISABLE_INTERRUPTS()
00225 {
00226 OSW_DISABLE_INTERRUPTS();
00227 }
00228 void OSAL_ENABLE_INTERRUPTS()
00229 {
00230 OSW_ENABLE_INTERRUPTS();
00231 }
00232
00244 void OSALIdleHook()
00245 {
00246 }
00247
00263 void OSALStackOverflowHook(OSAL_TASK pHandle, OSAL_NAME *pTaskName)
00264 {
00265 ( void ) pHandle;
00266 ( void ) pTaskName;
00267
00268 for( ;; );
00269 }
00270
00284 void OSALSysTickHook()
00285 {
00286 }