RTOS APIs#
This section describes the RTOS APIs
Functions#
Enter critical section.
Exit critical section by restoring interrupts.
Create and initialize the mutex.
Lock the mutex.
Lock the mutex from ISR context.
Unlock the mutex.
Unlock the mutex from ISR context.
Destroy the mutex.
Create and initialize the semaphore instance.
Destroy the semaphore instance.
Checks whether the semaphore is created and destroys the semaphore instance, if its created.
Wait for semaphore.
Release semaphore, which is acquired.
Release semaphore, which is acquired from ISR context.
Create OS task/thread.
Destroy the task created.
Induce required delay in milli seconds.
Schedule the tasks created.
Setup the systick timer to generate the tick interrupts at the required frequency.
Sets the OS error .
Allow a task to wait with optional timeout.
Notify a task.
Notify a task from ISR context.
Allow a task in wait in blocked state for its notification value.
Notify to a task.
Get WLAN status.
Allocate memory from the buffer which is maintained by freeRTOS.
Free the memory pointed by 'ptr'.
Enter into critical section.
Enter exit section.
Exit critical section.
Function Documentation#
rsi_critical_section_entry#
rsi_reg_flags_t rsi_critical_section_entry (void )
Enter critical section.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Returns
Interrupt status before entering critical section
rsi_critical_section_exit#
void rsi_critical_section_exit (rsi_reg_flags_t xflags)
Exit critical section by restoring interrupts.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_reg_flags_t | [in] | xflags | - Interrupt status to restore interrupt on exit from critical section |
Returns
Void
rsi_mutex_create#
rsi_error_t rsi_mutex_create (rsi_mutex_handle_t * mutex)
Create and initialize the mutex.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_mutex_handle_t * | [in] | mutex | - Mutex handle pointer |
Returns
0 - Success
Negative Value - Failure
rsi_mutex_lock#
rsi_error_t rsi_mutex_lock (volatile rsi_mutex_handle_t * mutex)
Lock the mutex.
Type | Direction | Argument Name | Description |
---|---|---|---|
volatile rsi_mutex_handle_t * | [in] | mutex | - Mutex handle pointer |
Returns
0 - Success
Negative Value - Failure
rsi_mutex_lock_from_isr#
void rsi_mutex_lock_from_isr (volatile rsi_mutex_handle_t * mutex)
Lock the mutex from ISR context.
Type | Direction | Argument Name | Description |
---|---|---|---|
volatile rsi_mutex_handle_t * | [in] | mutex | - Mutex handle pointer |
Returns
0 - Success
Negative Value - Failure
rsi_mutex_unlock#
rsi_error_t rsi_mutex_unlock (volatile rsi_mutex_handle_t * mutex)
Unlock the mutex.
Type | Direction | Argument Name | Description |
---|---|---|---|
volatile rsi_mutex_handle_t * | [in] | mutex | - Mutex handle pointer |
Returns
0 - Success
Negative Value - Failure
rsi_mutex_unlock_from_isr#
void rsi_mutex_unlock_from_isr (volatile rsi_mutex_handle_t * mutex)
Unlock the mutex from ISR context.
Type | Direction | Argument Name | Description |
---|---|---|---|
volatile rsi_mutex_handle_t * | [in] | mutex | - Mutex handle pointer |
Returns
None
rsi_mutex_destroy#
rsi_error_t rsi_mutex_destroy (rsi_mutex_handle_t * mutex)
Destroy the mutex.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_mutex_handle_t * | [in] | mutex | - Mutex handle pointer |
Returns
0 - Success
Negative Value - Failure
rsi_semaphore_create#
rsi_error_t rsi_semaphore_create (rsi_semaphore_handle_t * semaphore, uint32_t count)
Create and initialize the semaphore instance.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_semaphore_handle_t * | [in] | semaphore | - Semaphore handle pointer |
uint32_t | [in] | count | - Resource count |
Returns
0 - Success
Negative Value - Failure
rsi_semaphore_destroy#
rsi_error_t rsi_semaphore_destroy (rsi_semaphore_handle_t * semaphore)
Destroy the semaphore instance.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_semaphore_handle_t * | [in] | semaphore | - Semaphore handle pointer |
Returns
0 - Success
Negative Value - Failure
rsi_semaphore_check_and_destroy#
rsi_error_t rsi_semaphore_check_and_destroy (rsi_semaphore_handle_t * semaphore)
Checks whether the semaphore is created and destroys the semaphore instance, if its created.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_semaphore_handle_t * | [in] | semaphore | - Semaphore handle pointer |
Check whether the semaphore is created and destroy, if created.
Returns
0 - Success
Negative Value - Failure
Returns
0 - Success
Negative Value - Failure
rsi_semaphore_wait#
rsi_error_t rsi_semaphore_wait (rsi_semaphore_handle_t * semaphore, uint32_t timeout_ms)
Wait for semaphore.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_semaphore_handle_t * | [in] | semaphore | - Semaphore handle pointer |
uint32_t | [in] | timeout_ms | - Maximum time to wait to acquire semaphore. If timeout_ms is 0 then wait till semaphore is acquired. |
Returns
0 - Success
Negative Value - Failure
rsi_semaphore_post#
rsi_error_t rsi_semaphore_post (rsi_semaphore_handle_t * semaphore)
Release semaphore, which is acquired.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_semaphore_handle_t * | [in] | semaphore | - Semaphore handle pointer |
Returns
0 - Success
Negative Value - Failure
rsi_semaphore_post_from_isr#
rsi_error_t rsi_semaphore_post_from_isr (rsi_semaphore_handle_t * semaphore)
Release semaphore, which is acquired from ISR context.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_semaphore_handle_t * | [in] | semaphore | - Semaphore handle pointer |
Returns
0 - Success
Negative Value - Failure
rsi_semaphore_reset#
rsi_error_t rsi_semaphore_reset (rsi_semaphore_handle_t * semaphore)
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_semaphore_handle_t * | N/A | semaphore |
rsi_task_create#
rsi_error_t rsi_task_create (rsi_task_function_t task_function, uint8_t * task_name, uint32_t stack_size, void * parameters, uint32_t task_priority, rsi_task_handle_t * task_handle)
Create OS task/thread.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_task_function_t | [in] | task_function | - Pointer to function to be executed by created thread. |
uint8_t * | [in] | task_name | - Name of the created task |
uint32_t | [in] | stack_size | - Stack size given to the created task |
void * | [in] | parameters | - Pointer to the parameters to be passed to task function |
uint32_t | [in] | task_priority | - Task priority |
rsi_task_handle_t * | [in] | task_handle | - Task handle/instance created |
Returns
0 - Success
Negative Value - Failure
rsi_task_destroy#
void rsi_task_destroy (rsi_task_handle_t * task_handle)
Destroy the task created.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_task_handle_t * | [in] | task_handle | - Task handle/instance to be deleted |
Returns
Void
rsi_os_task_delay#
void rsi_os_task_delay (uint32_t timeout_ms)
Induce required delay in milli seconds.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | timeout_ms | - Expected delay in milli seconds |
Returns
Void
rsi_start_os_scheduler#
void rsi_start_os_scheduler (void )
Schedule the tasks created.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Returns
Void
rsi_setup_timer_os_interrupt#
void rsi_setup_timer_os_interrupt ( None)
Setup the systick timer to generate the tick interrupts at the required frequency.
Type | Direction | Argument Name | Description |
---|---|---|---|
[in] | None |
Returns
void
rsi_set_os_errno#
void rsi_set_os_errno (int32_t error)
Sets the OS error .
Type | Direction | Argument Name | Description |
---|---|---|---|
int32_t | [in] | error | - Error |
Returns
Void
rsi_task_notify_wait#
rsi_base_type_t rsi_task_notify_wait (uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t * pulNotificationValue, uint32_t timeout)
Allow a task to wait with optional timeout.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | ulBitsToClearOnEntry | - Bits set here will be cleared in the task’s notification value on entry to the function. |
uint32_t | [in] | ulBitsToClearOnExit | - Bits to clear on exit |
uint32_t * | [in] | pulNotificationValue | - Used to pass out the task notification value. Optional parameter |
uint32_t | [in] | timeout | - Maximum amount of time the calling task should remain in blocked state |
Returns
0 - Success
Negative Value - Failure
rsi_task_notify#
rsi_base_type_t rsi_task_notify (rsi_task_handle_t xTaskToNotify, uint32_t ulValue)
Notify a task.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_task_handle_t | [in] | xTaskToNotify | - The handle of the task to which the notification is being sent |
uint32_t | [in] | ulValue | - How ulValue is used is dependent on the eNotifyAction value |
Returns
0 - Success
Non-Zero Value - Failure
rsi_task_notify_from_isr#
rsi_base_type_t rsi_task_notify_from_isr (rsi_task_handle_t xTaskToNotify, uint32_t ulValue, rsi_base_type_t * pxHigherPriorityTaskWoken)
Notify a task from ISR context.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_task_handle_t | [in] | xTaskToNotify | - The handle of the task to which the notification is being sent |
uint32_t | [in] | ulValue | - How ulValue is used is dependent on the eNotifyAction value |
rsi_base_type_t * | [in] | pxHigherPriorityTaskWoken | - Sets,if sending the notification caused a task to unblock, and the unblocked task has a priority higher than the currently running task. |
Returns
0 - Success
Non-Zero Value - Failure
rsi_os_task_notify_take#
uint32_t rsi_os_task_notify_take (BaseType_t xClearCountOnExit, TickType_t xTicksToWait)
Allow a task in wait in blocked state for its notification value.
Type | Direction | Argument Name | Description |
---|---|---|---|
BaseType_t | [in] | xClearCountOnExit | - Based on this value calling task notification value will be decremented/zero |
TickType_t | [in] | xTicksToWait | - Maximum amount of time calling task should remain in blocked state |
Returns
0 - Success
Non-Zero Value - Failure
rsi_os_task_notify_give#
BaseType_t rsi_os_task_notify_give (rsi_task_handle_t xTaskToNotify)
Notify to a task.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_task_handle_t | [in] | xTaskToNotify | - Task handle to notify |
Returns
Task notification value - Success
-1 - Failure
rsi_get_error#
int32_t rsi_get_error (int32_t sockID)
Get WLAN status.
Type | Direction | Argument Name | Description |
---|---|---|---|
int32_t | [in] | sockID | - Socket ID |
Returns
WLAN status
rsi_malloc#
void* rsi_malloc (uint32_t size)
Allocate memory from the buffer which is maintained by freeRTOS.
Type | Direction | Argument Name | Description |
---|---|---|---|
uint32_t | [in] | size | - Required bytes in size |
Returns
Void
rsi_free#
void rsi_free (void * ptr)
Free the memory pointed by 'ptr'.
Type | Direction | Argument Name | Description |
---|---|---|---|
void * | [in] | ptr | - starting address of the memory to be freed |
Returns
Void
rsi_vport_enter_critical#
void rsi_vport_enter_critical (void )
Enter into critical section.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Returns
Void
rsi_vport_exit_critical#
void rsi_vport_exit_critical (void )
Enter exit section.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | [in] |
Returns
Void
rsi_task_suspend#
void rsi_task_suspend (rsi_task_handle_t * task_handle)
Exit critical section.
Type | Direction | Argument Name | Description |
---|---|---|---|
rsi_task_handle_t * | [in] | task_handle | - Task handle to be suspended |
Returns
Void