|
Little list of features / functions:
-
Critical Sections, which will not be interrupted by a thread shedule:
-
EnterCriticalSection()
-
LeaveCriticalSection()
-
Statistical functions:
-
GetThreadCount(GTC_ALL | GTC_RUNNING | GTC_AVAILABLE)
-
ThreadControl (self targeted):
-
ThreadWait() - suspends thread till IRQ occurred
-
EndCurrentThread(value) - ends thread and sets a return value
-
ThreadControl (other threads):
-
CreateThread(entry,stack) - creates & starts a new thread (returns
threadID)
-
KillThread(threadID) - kills a thread
-
GetThreadStatus(threadID)
-
SetThreadStatus(threadID)
-
GetThreadReturnValue(threadID)
-
Semaphores
-
Semaphores are using suspend-resume-queuing :
-
CreateSemaphore()
-
AquireSemaphore(semaphore)
-
ReleaseSemaphore(semaphore)
-
IRQ:
Since the IRQ handler is captured, you can set a custom IRQ Handler now by
-
All threads of status THREAD_STATUS_RUNNING are sheduled cyclic on 33kHz
or any occured IRQ (Timer3 is reserved)
|