29 #define TIME_1MS 80000
30 #define TIME_2MS (2*TIME_1MS)
31 #define TIME_500US (TIME_1MS/2)
32 #define TIME_250US (TIME_1MS/4)
57 void OS_InitSemaphore(
Sema4_t *semaPt, int32_t value);
73 void OS_Signal(
Sema4_t *semaPt);
87 void OS_bSignal(
Sema4_t *semaPt);
99 int OS_AddThread(
void(*task)(
void),
100 uint32_t stackSize, uint32_t priority);
106 uint32_t OS_Id(
void);
132 int OS_AddPeriodicThread(
void(*task)(
void),
133 uint32_t period, uint32_t priority);
148 int OS_AddS1Task(
void(*task)(
void), uint32_t priority);
162 int OS_AddS2Task(
void(*task)(
void), uint32_t priority);
177 int OS_AddPA28Task(
void(*task)(
void), uint32_t priority);
185 void OS_Sleep(uint32_t sleepTime);
200 void OS_Suspend(
void);
203 uint32_t OS_LockScheduler(
void);
205 void OS_UnLockScheduler(uint32_t previous);
216 void OS_Fifo_Init(uint32_t size);
226 int OS_Fifo_Put(uint32_t data);
233 uint32_t OS_Fifo_Get(
void);
242 int32_t OS_Fifo_Size(
void);
248 void OS_MailBox_Init(
void);
256 void OS_MailBox_Send(uint32_t data);
264 uint32_t OS_MailBox_Recv(
void);
273 uint32_t OS_Time(
void);
282 uint32_t OS_TimeDifference(uint32_t start, uint32_t stop);
289 void OS_ClearMsTime(
void);
297 uint32_t OS_MsTime(
void);
307 void OS_Launch(uint32_t theTimeSlice);
311 uint32_t StartOffset;
332 int OS_LoadProgram(
char *name, uint32_t priority);
void OS_Init(void)
Initialize OS.
Semaphore structure. Feel free to change the type of semaphore, there are lots of good solutions.
Definition: OS.h:37