![]() |
SuperTinyKernel™ RTOS 1.05.3
Lightweight, high-performance, deterministic, bare-metal C++ RTOS for resource-constrained embedded systems. MIT Open Source License.
|
Interface for a user task. More...
#include <stk_common.h>
Public Member Functions | |
| virtual void | Run ()=0 |
| Entry point of the user task. | |
| virtual EAccessMode | GetAccessMode () const =0 |
| Get hardware access mode of the user task. | |
| virtual void | OnDeadlineMissed (uint32_t duration)=0 |
| Called by the scheduler if deadline of the task is missed when Kernel is operating in Hard Real-Time mode (see stk::KERNEL_HRT). | |
| virtual void | OnExit ()=0 |
| Called by the kernel before removal from the scheduling (see stk::KERNEL_DYNAMIC). | |
| virtual int32_t | GetWeight () const =0 |
| Get static base weight of the task. | |
| virtual TId | GetId () const =0 |
| Get task Id set by application. | |
| virtual const char * | GetTraceName () const =0 |
| Get task trace name set by application. | |
| virtual Word * | GetStack () const =0 |
| Get pointer to the stack memory. | |
| virtual size_t | GetStackSize () const =0 |
| Get number of elements of the stack memory array. | |
| virtual size_t | GetStackSizeBytes () const =0 |
| Get size of the memory in bytes. | |
| virtual size_t | GetStackSpace () |
| Get available stack space. | |
Interface for a user task.
Usage example:
Definition at line 490 of file stk_common.h.
|
pure virtual |
Get hardware access mode of the user task.
Implemented in stk::Task< _StackSize, _AccessMode >, stk::Task< 256, _AccessMode >, stk::Task< STACK_SIZE_MIN, _AccessMode >, stk::TaskW< _Weight, _StackSize, _AccessMode >, stk::TaskW< _Weight, STACK_SIZE_MIN, _AccessMode >, stk::time::TimerHost::TimerWorkerTask, StkThread, and TaskWrapper.
Referenced by stk::Kernel< TMode, TSize, TStrategy, TPlatform >::KernelTask::Bind().
|
pure virtual |
Get task Id set by application.
Implemented in stk::Task< _StackSize, _AccessMode >, stk::Task< 256, _AccessMode >, stk::Task< STACK_SIZE_MIN, _AccessMode >, stk::TaskW< _Weight, _StackSize, _AccessMode >, stk::TaskW< _Weight, STACK_SIZE_MIN, _AccessMode >, stk::time::TimerHost::TimerWorkerTask, StkThread, and TaskWrapper.
Referenced by stk::Kernel< TMode, TSize, TStrategy, TPlatform >::KernelTask::Bind().
|
pure virtualinherited |
Get pointer to the stack memory.
Implemented in stk::StackMemoryWrapper< _StackSize >, stk::StackMemoryWrapper< STACK_SIZE_MIN >, stk::StackMemoryWrapper<(32U)>, stk::Task< _StackSize, _AccessMode >, stk::Task< 256, _AccessMode >, stk::Task< STACK_SIZE_MIN, _AccessMode >, stk::TaskW< _Weight, _StackSize, _AccessMode >, stk::TaskW< _Weight, STACK_SIZE_MIN, _AccessMode >, stk::time::TimerHost::TimerWorkerTask, StkThread, and TaskWrapper.
Referenced by stk::Kernel< stk::KERNEL_DYNAMIC|stk::KERNEL_SYNC, 16U, stk::SwitchStrategyFP32, stk::PlatformDefault >::AllocateNewTask(), GetStackSpace(), stk::test::PlatformTestMock::InitStack(), stk::Kernel< stk::KERNEL_DYNAMIC|stk::KERNEL_SYNC, 16U, stk::SwitchStrategyFP32, stk::PlatformDefault >::StateSwitch(), and stk::Kernel< stk::KERNEL_DYNAMIC|stk::KERNEL_SYNC, 16U, stk::SwitchStrategyFP32, stk::PlatformDefault >::StateWake().
|
pure virtualinherited |
Get number of elements of the stack memory array.
Implemented in stk::StackMemoryWrapper< _StackSize >, stk::StackMemoryWrapper< STACK_SIZE_MIN >, stk::StackMemoryWrapper<(32U)>, stk::Task< _StackSize, _AccessMode >, stk::Task< 256, _AccessMode >, stk::Task< STACK_SIZE_MIN, _AccessMode >, stk::TaskW< _Weight, _StackSize, _AccessMode >, stk::TaskW< _Weight, STACK_SIZE_MIN, _AccessMode >, stk::time::TimerHost::TimerWorkerTask, StkThread, and TaskWrapper.
Referenced by GetStackSpace().
|
pure virtualinherited |
Get size of the memory in bytes.
Implemented in stk::StackMemoryWrapper< _StackSize >, stk::StackMemoryWrapper< STACK_SIZE_MIN >, stk::StackMemoryWrapper<(32U)>, stk::Task< _StackSize, _AccessMode >, stk::Task< 256, _AccessMode >, stk::Task< STACK_SIZE_MIN, _AccessMode >, stk::TaskW< _Weight, _StackSize, _AccessMode >, stk::TaskW< _Weight, STACK_SIZE_MIN, _AccessMode >, stk::time::TimerHost::TimerWorkerTask, StkThread, and TaskWrapper.
|
inlinevirtualinherited |
Get available stack space.
Definition at line 252 of file stk_common.h.
References GetStack(), GetStackSize(), and STK_STACK_MEMORY_FILLER.
Referenced by osThreadGetStackSpace(), and stk::test::TEST().
|
pure virtual |
Get task trace name set by application.
NULL if unused. Implemented in stk::Task< _StackSize, _AccessMode >, stk::Task< 256, _AccessMode >, stk::Task< STACK_SIZE_MIN, _AccessMode >, stk::TaskW< _Weight, _StackSize, _AccessMode >, stk::TaskW< _Weight, STACK_SIZE_MIN, _AccessMode >, stk::time::TimerHost::TimerWorkerTask, StkThread, and TaskWrapper.
|
pure virtual |
Get static base weight of the task.
Implemented in stk::Task< _StackSize, _AccessMode >, stk::Task< 256, _AccessMode >, stk::Task< STACK_SIZE_MIN, _AccessMode >, stk::TaskW< _Weight, _StackSize, _AccessMode >, stk::TaskW< _Weight, STACK_SIZE_MIN, _AccessMode >, stk::time::TimerHost::TimerWorkerTask, StkThread, and TaskWrapper.
|
pure virtual |
Called by the scheduler if deadline of the task is missed when Kernel is operating in Hard Real-Time mode (see stk::KERNEL_HRT).
| [in] | duration | Elapsed active time in ticks at the point the deadline was detected. Always greater than the task's configured deadline (ticks). |
Implemented in stk::Task< _StackSize, _AccessMode >, stk::Task< 256, _AccessMode >, stk::Task< STACK_SIZE_MIN, _AccessMode >, stk::TaskW< _Weight, _StackSize, _AccessMode >, stk::TaskW< _Weight, STACK_SIZE_MIN, _AccessMode >, stk::test::TaskMock< _AccessMode >, stk::test::TaskMock< ACCESS_USER >, stk::time::TimerHost::TimerWorkerTask, StkThread, and TaskWrapper.
|
pure virtual |
Called by the kernel before removal from the scheduling (see stk::KERNEL_DYNAMIC).
Implemented in stk::Task< _StackSize, _AccessMode >, stk::Task< 256, _AccessMode >, stk::Task< STACK_SIZE_MIN, _AccessMode >, stk::TaskW< _Weight, _StackSize, _AccessMode >, stk::TaskW< _Weight, STACK_SIZE_MIN, _AccessMode >, stk::time::TimerHost::TimerWorkerTask, StkThread, and TaskWrapper.
Referenced by stk::Kernel< stk::KERNEL_DYNAMIC|stk::KERNEL_SYNC, 16U, stk::SwitchStrategyFP32, stk::PlatformDefault >::RemoveTask().
|
pure virtual |
Entry point of the user task.
Kernel is configured as KERNEL_STATIC, the body must contain an infinite loop. Implemented in stk::test::blockpool::AlignBlockSizeTask< _AccessMode >, stk::test::blockpool::BlockingAllocTask< _AccessMode >, stk::test::blockpool::ConcurrentAllocFreeTask< _AccessMode >, stk::test::blockpool::ExhaustPoolTask< _AccessMode >, stk::test::blockpool::FreeNullTask< _AccessMode >, stk::test::blockpool::StorageModeTask< _AccessMode >, stk::test::blockpool::StressTask< _AccessMode >, stk::test::blockpool::TimedAllocSuccessTask< _AccessMode >, stk::test::blockpool::TimedAllocTimeoutTask< _AccessMode >, stk::test::blockpool::TryAllocFreeTask< _AccessMode >, stk::test::blockpool::TypedAllocTask< _AccessMode >, stk::test::chain::TestTask< _AccessMode >, stk::test::chain::TestTask< _AccessMode >, stk::test::condvar::MutexReacquiredTask< _AccessMode >, stk::test::condvar::NotifyAllWakesTask< _AccessMode >, stk::test::condvar::NotifyOneOrderTask< _AccessMode >, stk::test::condvar::NotifyOneWakesTask< _AccessMode >, stk::test::condvar::NoWaitTimeoutTask< _AccessMode >, stk::test::condvar::PredicateLoopTask< _AccessMode >, stk::test::condvar::StressTestTask< _AccessMode >, stk::test::condvar::TimeoutExpiresTask< _AccessMode >, stk::test::event::AutoResetBasicTask< _AccessMode >, stk::test::event::InitialStateTask< _AccessMode >, stk::test::event::ManualResetBasicTask< _AccessMode >, stk::test::event::PulseAutoResetTask< _AccessMode >, stk::test::event::PulseManualResetTask< _AccessMode >, stk::test::event::ResetManualTask< _AccessMode >, stk::test::event::TimeoutWaitTask< _AccessMode >, stk::test::event::TryWaitTask< _AccessMode >, stk::test::eventflags::ClearTask< _AccessMode >, stk::test::eventflags::GetTask< _AccessMode >, stk::test::eventflags::InitialFlagsTask< _AccessMode >, stk::test::eventflags::MultiWaiterAllTask< _AccessMode >, stk::test::eventflags::MultiWaiterAnyTask< _AccessMode >, stk::test::eventflags::NoClearTask< _AccessMode >, stk::test::eventflags::SetWaitAllTask< _AccessMode >, stk::test::eventflags::SetWaitAnyTask< _AccessMode >, stk::test::eventflags::TimeoutTask< _AccessMode >, stk::test::eventflags::TryWaitTask< _AccessMode >, stk::test::hrt::TestTask< _AccessMode >, stk::test::msgqueue::AccessorsTask< _AccessMode >, stk::test::msgqueue::BlockingGetTask< _AccessMode >, stk::test::msgqueue::BlockingPutTask< _AccessMode >, stk::test::msgqueue::FillDrainTask< _AccessMode >, stk::test::msgqueue::PingPongTask< _AccessMode >, stk::test::msgqueue::ResetTask< _AccessMode >, stk::test::msgqueue::StressTask< _AccessMode >, stk::test::msgqueue::TimedGetSuccessTask< _AccessMode >, stk::test::msgqueue::TimedGetTimeoutTask< _AccessMode >, stk::test::msgqueue::TimedPutTimeoutTask< _AccessMode >, stk::test::msgqueue::TryPutGetTask< _AccessMode >, stk::test::msgqueue::WrapAroundTask< _AccessMode >, stk::test::mutex::BasicLockUnlockTask< _AccessMode >, stk::test::mutex::FIFOOrderTask< _AccessMode >, stk::test::mutex::InterTaskCoordinationTask< _AccessMode >, stk::test::mutex::RecursiveDepthTask< _AccessMode >, stk::test::mutex::RecursiveLockTask< _AccessMode >, stk::test::mutex::StressTestTask< _AccessMode >, stk::test::mutex::TimedLockTask< _AccessMode >, stk::test::mutex::TryLockTask< _AccessMode >, stk::test::pipe::BasicWriteReadTask< _AccessMode >, stk::test::pipe::BulkWriteReadTask< _AccessMode >, stk::test::pipe::GetSizeIsEmptyTask< _AccessMode >, stk::test::pipe::MultiProducerConsumerTask< _AccessMode >, stk::test::pipe::ReadBlocksWhenEmptyTask< _AccessMode >, stk::test::pipe::StressTestTask< _AccessMode >, stk::test::pipe::TimeoutTask< _AccessMode >, stk::test::pipe::WriteBlocksWhenFullTask< _AccessMode >, stk::test::rwmutex::ConcurrentReadersTask< _AccessMode >, stk::test::rwmutex::ReaderWriterAlternationTask< _AccessMode >, stk::test::rwmutex::ReadUnlockWakesWriterTask< _AccessMode >, stk::test::rwmutex::StressTestTask< _AccessMode >, stk::test::rwmutex::TimedReadLockTask< _AccessMode >, stk::test::rwmutex::TimedWriteLockTask< _AccessMode >, stk::test::rwmutex::TryReadLockWhileWriterTask< _AccessMode >, stk::test::rwmutex::WriterExclusivityTask< _AccessMode >, stk::test::rwmutex::WriterPriorityTask< _AccessMode >, stk::test::rwmutex::WriterStarvationTask< _AccessMode >, stk::test::semaphore::BasicSignalWaitTask< _AccessMode >, stk::test::semaphore::BoundedBufferTask< _AccessMode >, stk::test::semaphore::FIFOOrderTask< _AccessMode >, stk::test::semaphore::InitialCountTask< _AccessMode >, stk::test::semaphore::SignalBeforeWaitTask< _AccessMode >, stk::test::semaphore::StressTestTask< _AccessMode >, stk::test::semaphore::TimeoutWaitTask< _AccessMode >, stk::test::semaphore::ZeroTimeoutTask< _AccessMode >, stk::test::sleep::TestTask< _AccessMode >, stk::test::spinlock::MutualExclusionTask< _AccessMode >, stk::test::spinlock::RecursiveLockTask< _AccessMode >, stk::test::spinlock::RecursiveTryLockTask< _AccessMode >, stk::test::spinlock::StressTestTask< _AccessMode >, stk::test::spinlock::TryLockContendedTask< _AccessMode >, stk::test::spinlock::TryLockFreeTask< _AccessMode >, stk::test::spinlock::UnlockTransferTask< _AccessMode >, stk::test::spinlock::YieldUnderContentionTask< _AccessMode >, stk::test::switch_::TestTask< _AccessMode >, stk::test::TaskMock< _AccessMode >, stk::test::TaskMock< ACCESS_USER >, stk::test::TaskMockW< _Weight, _AccessMode >, stk::test::timer::MultipleTimersTask< _AccessMode >, stk::test::timer::OneShotTimerTask< _AccessMode >, stk::test::timer::PeriodicTimerTask< _AccessMode >, stk::test::timer::ResetPeriodicTimerTask< _AccessMode >, stk::test::timer::RestartTimerTask< _AccessMode >, stk::test::timer::SetPeriodTask< _AccessMode >, stk::test::timer::StartOrResetTask< _AccessMode >, stk::test::timer::StopTimerTask< _AccessMode >, stk::test::timer::StressTestTask< _AccessMode >, stk::time::TimerHost::TimerWorkerTask, StkThread, and TaskWrapper.