Argon RTOS
1.3.0
Tiny embedded real-time kernel
|
#include <ar_classes.h>
Template to create a thread and its stack.
Public Member Functions | |
ThreadWithStack () | |
Default constructor. | |
ThreadWithStack (const char *name, ar_thread_entry_t entry, void *param, uint8_t priority, bool startImmediately=true) | |
Constructor to use a normal function as entry poin. | |
template<class T > | |
ThreadWithStack (const char *name, T *object, void(T::*entry)(), uint8_t priority, bool startImmediately=true) | |
Constructor to set the thread entry to a member function. | |
ar_status_t | init (const char *name, ar_thread_entry_t entry, void *param, uint8_t priority, bool startImmediately=true) |
Initializer to use a normal function as entry point. | |
template<class T > | |
ar_status_t | init (const char *name, T *object, void(T::*entry)(), uint8_t priority, bool startImmediately=true) |
Initializer to set the thread entry to a member function. | |
![]() | |
Thread () | |
Default constructor. | |
Thread (const char *name, ar_thread_entry_t entry, void *param, void *stack, unsigned stackSize, uint8_t priority, bool startImmediately=true) | |
Constructor. More... | |
template<class T > | |
Thread (const char *name, T *object, void(T::*entry)(), void *stack, unsigned stackSize, uint8_t priority, bool startImmediately=true) | |
Constructor to set the thread entry to a member function. More... | |
Thread (const char *name, ar_thread_entry_t entry, void *param, unsigned stackSize, uint8_t priority, bool startImmediately=true) | |
Constructor to dynamically allocate the stack. More... | |
template<class T > | |
Thread (const char *name, T *object, void(T::*entry)(), unsigned stackSize, uint8_t priority, bool startImmediately=true) | |
Constructor to set the thread entry to a member function, using a dynamic stack. More... | |
virtual | ~Thread () |
Destructor. | |
const char * | getName () const |
Get the thread's name. | |
ar_status_t | init (const char *name, ar_thread_entry_t entry, void *param, void *stack, unsigned stackSize, uint8_t priority, bool startImmediately=true) |
Base initialiser. More... | |
template<class T > | |
ar_status_t | init (const char *name, T *object, void(T::*entry)(), void *stack, unsigned stackSize, uint8_t priority, bool startImmediately=true) |
Initializer to set the thread entry to a member function. More... | |
uint8_t | getPriority () const |
Return the thread's current priority. | |
ar_status_t | setPriority (uint8_t priority) |
Change the thread's priority. More... | |
uint32_t | getLoad () |
Get the thread's system load. | |
uint32_t | getStackUsed () |
Get the thread's maximum stack usage. | |
void | suspend () |
Put thread in suspended state. More... | |
void | resume () |
Make the thread eligible for execution. More... | |
ar_thread_state_t | getState () const |
Return the current state of the thread. | |
![]() | |
void | block (ar_list_t &blockedList, uint32_t timeout) |
void | unblockWithStatus (ar_list_t &blockedList, ar_status_t unblockStatus) |
Protected Attributes | |
uint8_t | m_stack [S] |
Stack space for the thread. | |
![]() | |
uint8_t * | m_allocatedStack |
Dynamically allocated stack. | |
ar_thread_entry_t | m_userEntry |
User-specified thread entry point function. | |
Additional Inherited Members | |
![]() | |
static Thread * | getCurrent () |
Returns the currently running thread object. | |
static void | sleep (unsigned milliseconds) |
Put the current thread to sleep for a certain amount of time. More... | |
static void | sleepUntil (unsigned wakeup) |
Put the current thread to sleep until a specific time. More... | |
![]() | |
ar_list_node_t | m_blockedNode |
Blocked list node. | |
void * | m_channelData |
Receive or send data pointer for blocked channel. | |
ar_thread_entry_t | m_entry |
Function pointer for the thread's entry point. | |
const char * | m_name |
Thread name. | |
ar_thread_port_data_t | m_portData |
Port-specific thread data. | |
uint8_t | m_priority |
Thread priority. 0 is the lowest priority. | |
ar_runloop_t * | m_runLoop |
Run loop associated with this thread. | |
uint32_t * | m_stackBottom |
Beginning of stack. | |
volatile uint8_t * | m_stackPointer |
Current stack pointer. | |
uint32_t * | m_stackTop |
Saved stack top address for computing stack usage. | |
ar_thread_state_t | m_state |
Current thread state. | |
ar_list_node_t | m_threadNode |
Main thread list node. | |
ar_status_t | m_unblockStatus |
Status code to return from a blocking function upon unblocking. | |
uint32_t | m_uniqueId |
Unique ID for this thread. | |
uint32_t | m_wakeupTime |
Tick count when a sleeping thread will awaken. | |
![]() | |
ar_status_t | initForMemberFunction (const char *name, void *object, ar_thread_entry_t entry, void *memberPointer, uint32_t memberPointerSize, void *stack, unsigned stackSize, uint8_t priority, bool startImmediately) |
Special init method to deal with member functions. | |
virtual void | threadEntry (void *param) |
Virtual thread entry point. More... | |
![]() | |
template<class T > | |
static void | member_thread_entry (void *param) |
Template function to invoke a thread entry point that is a member function. | |
static void | thread_entry (void *param) |
Static thread entry callback to invoke the virtual method. | |