RTOS APIs#

This section describes the RTOS APIs

Functions#

rsi_reg_flags_t

Enter critical section.

void
rsi_critical_section_exit(rsi_reg_flags_t xflags)

Exit critical section by restoring interrupts.

rsi_error_t
rsi_mutex_create(rsi_mutex_handle_t *mutex)

Create and initialize the mutex.

rsi_error_t
rsi_mutex_lock(volatile rsi_mutex_handle_t *mutex)

Lock the mutex.

void
rsi_mutex_lock_from_isr(volatile rsi_mutex_handle_t *mutex)

Lock the mutex from ISR context.

rsi_error_t
rsi_mutex_unlock(volatile rsi_mutex_handle_t *mutex)

Unlock the mutex.

void
rsi_mutex_unlock_from_isr(volatile rsi_mutex_handle_t *mutex)

Unlock the mutex from ISR context.

rsi_error_t
rsi_mutex_destroy(rsi_mutex_handle_t *mutex)

Destroy the mutex.

rsi_error_t
rsi_semaphore_create(rsi_semaphore_handle_t *semaphore, uint32_t count)

Create and initialize the semaphore instance.

rsi_error_t
rsi_semaphore_destroy(rsi_semaphore_handle_t *semaphore)

Destroy the semaphore instance.

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.

rsi_error_t
rsi_semaphore_wait(rsi_semaphore_handle_t *semaphore, uint32_t timeout_ms)

Wait for semaphore.

rsi_error_t
rsi_semaphore_post(rsi_semaphore_handle_t *semaphore)

Release semaphore, which is acquired.

rsi_error_t
rsi_semaphore_post_from_isr(rsi_semaphore_handle_t *semaphore)

Release semaphore, which is acquired from ISR context.

rsi_error_t
rsi_semaphore_reset(rsi_semaphore_handle_t *semaphore)
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.

void
rsi_task_destroy(rsi_task_handle_t *task_handle)

Destroy the task created.

void
rsi_os_task_delay(uint32_t timeout_ms)

Induce required delay in milli seconds.

void

Schedule the tasks created.

void

Setup the systick timer to generate the tick interrupts at the required frequency.

void
rsi_set_os_errno(int32_t error)

Sets the OS error .

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.

rsi_base_type_t
rsi_task_notify(rsi_task_handle_t xTaskToNotify, uint32_t ulValue)

Notify a task.

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.

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.

BaseType_t
rsi_os_task_notify_give(rsi_task_handle_t xTaskToNotify)

Notify to a task.

int32_t
rsi_get_error(int32_t sockID)

Get WLAN status.

void *
rsi_malloc(uint32_t size)

Allocate memory from the buffer which is maintained by freeRTOS.

void
rsi_free(void *ptr)

Free the memory pointed by 'ptr'.

void

Enter into critical section.

void

Enter exit section.

void
rsi_task_suspend(rsi_task_handle_t *task_handle)

Exit critical section.

Function Documentation#

rsi_critical_section_entry#

rsi_reg_flags_t rsi_critical_section_entry ()

Enter critical section.

Parameters
[in]

Returns

  • Interrupt status before entering critical section


Definition at line 47 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_critical_section_exit#

void rsi_critical_section_exit (rsi_reg_flags_t xflags)

Exit critical section by restoring interrupts.

Parameters
[in]xflags

- Interrupt status to restore interrupt on exit from critical section

Returns

  • Void


Definition at line 75 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_mutex_create#

rsi_error_t rsi_mutex_create (rsi_mutex_handle_t *mutex)

Create and initialize the mutex.

Parameters
[in]mutex

- Mutex handle pointer

Returns

  • 0 - Success

  • Negative Value - Failure


Definition at line 97 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_mutex_lock#

rsi_error_t rsi_mutex_lock (volatile rsi_mutex_handle_t *mutex)

Lock the mutex.

Parameters
[in]mutex

- Mutex handle pointer

Returns

  • 0 - Success

  • Negative Value - Failure


Definition at line 123 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_mutex_lock_from_isr#

void rsi_mutex_lock_from_isr (volatile rsi_mutex_handle_t *mutex)

Lock the mutex from ISR context.

Parameters
[in]mutex

- Mutex handle pointer

Returns

  • 0 - Success

  • Negative Value - Failure


Definition at line 153 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_mutex_unlock#

rsi_error_t rsi_mutex_unlock (volatile rsi_mutex_handle_t *mutex)

Unlock the mutex.

Parameters
[in]mutex

- Mutex handle pointer

Returns

  • 0 - Success

  • Negative Value - Failure


Definition at line 168 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_mutex_unlock_from_isr#

void rsi_mutex_unlock_from_isr (volatile rsi_mutex_handle_t *mutex)

Unlock the mutex from ISR context.

Parameters
[in]mutex

- Mutex handle pointer

Returns

  • None


Definition at line 188 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_mutex_destroy#

rsi_error_t rsi_mutex_destroy (rsi_mutex_handle_t *mutex)

Destroy the mutex.

Parameters
[in]mutex

- Mutex handle pointer

Returns

  • 0 - Success

  • Negative Value - Failure


Definition at line 203 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_semaphore_create#

rsi_error_t rsi_semaphore_create (rsi_semaphore_handle_t *semaphore, uint32_t count)

Create and initialize the semaphore instance.

Parameters
[in]semaphore

- Semaphore handle pointer

[in]count

- Resource count

Returns

  • 0 - Success

  • Negative Value - Failure


Definition at line 225 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_semaphore_destroy#

rsi_error_t rsi_semaphore_destroy (rsi_semaphore_handle_t *semaphore)

Destroy the semaphore instance.

Parameters
[in]semaphore

- Semaphore handle pointer

Returns

  • 0 - Success

  • Negative Value - Failure


Definition at line 250 of file rtos/freertos_wrapper/rsi_os_wrapper.c

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.

Parameters
[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


Definition at line 274 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_semaphore_wait#

rsi_error_t rsi_semaphore_wait (rsi_semaphore_handle_t *semaphore, uint32_t timeout_ms)

Wait for semaphore.

Parameters
[in]semaphore

- Semaphore handle pointer

[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


Definition at line 299 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_semaphore_post#

rsi_error_t rsi_semaphore_post (rsi_semaphore_handle_t *semaphore)

Release semaphore, which is acquired.

Parameters
[in]semaphore

- Semaphore handle pointer

Returns

  • 0 - Success

  • Negative Value - Failure


Definition at line 333 of file rtos/freertos_wrapper/rsi_os_wrapper.c

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.

Parameters
[in]semaphore

- Semaphore handle pointer

Returns

  • 0 - Success

  • Negative Value - Failure


Definition at line 358 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_semaphore_reset#

rsi_error_t rsi_semaphore_reset (rsi_semaphore_handle_t *semaphore)
Parameters
N/Asemaphore

Definition at line 383 of file rtos/freertos_wrapper/rsi_os_wrapper.c

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.

Parameters
[in]task_function

- Pointer to function to be executed by created thread.

[in]task_name

- Name of the created task

[in]stack_size

- Stack size given to the created task

[in]parameters

- Pointer to the parameters to be passed to task function

[in]task_priority

- Task priority

[in]task_handle

- Task handle/instance created

Returns

  • 0 - Success

  • Negative Value - Failure


Definition at line 414 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_task_destroy#

void rsi_task_destroy (rsi_task_handle_t *task_handle)

Destroy the task created.

Parameters
[in]task_handle

- Task handle/instance to be deleted

Returns

  • Void


Definition at line 446 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_os_task_delay#

void rsi_os_task_delay (uint32_t timeout_ms)

Induce required delay in milli seconds.

Parameters
[in]timeout_ms

- Expected delay in milli seconds

Returns

  • Void


Definition at line 458 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_start_os_scheduler#

void rsi_start_os_scheduler ()

Schedule the tasks created.

Parameters
[in]

Returns

  • Void


Definition at line 471 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_setup_timer_os_interrupt#

void rsi_setup_timer_os_interrupt ()

Setup the systick timer to generate the tick interrupts at the required frequency.

Parameters
[in]None

Returns

  • void


Definition at line 482 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_set_os_errno#

void rsi_set_os_errno (int32_t error)

Sets the OS error .

Parameters
[in]error

- Error

Returns

  • Void


Definition at line 493 of file rtos/freertos_wrapper/rsi_os_wrapper.c

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.

Parameters
[in]ulBitsToClearOnEntry

- Bits set here will be cleared in the task’s notification value on entry to the function.

[in]ulBitsToClearOnExit

- Bits to clear on exit

[in]pulNotificationValue

- Used to pass out the task notification value. Optional parameter

[in]timeout

- Maximum amount of time the calling task should remain in blocked state

Returns

  • 0 - Success

  • Negative Value - Failure


Definition at line 509 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_task_notify#

rsi_base_type_t rsi_task_notify (rsi_task_handle_t xTaskToNotify, uint32_t ulValue)

Notify a task.

Parameters
[in]xTaskToNotify

- The handle of the task to which the notification is being sent

[in]ulValue

- How ulValue is used is dependent on the eNotifyAction value

Returns

  • 0 - Success

  • Non-Zero Value - Failure


Definition at line 535 of file rtos/freertos_wrapper/rsi_os_wrapper.c

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.

Parameters
[in]xTaskToNotify

- The handle of the task to which the notification is being sent

[in]ulValue

- How ulValue is used is dependent on the eNotifyAction value

[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


Definition at line 556 of file rtos/freertos_wrapper/rsi_os_wrapper.c

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.

Parameters
[in]xClearCountOnExit

- Based on this value calling task notification value will be decremented/zero

[in]xTicksToWait

- Maximum amount of time calling task should remain in blocked state

Returns

  • 0 - Success

  • Non-Zero Value - Failure


Definition at line 579 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_os_task_notify_give#

BaseType_t rsi_os_task_notify_give (rsi_task_handle_t xTaskToNotify)

Notify to a task.

Parameters
[in]xTaskToNotify

- Task handle to notify

Returns

  • Task notification value - Success

  • -1 - Failure


Definition at line 592 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_get_error#

int32_t rsi_get_error (int32_t sockID)

Get WLAN status.

Parameters
[in]sockID

- Socket ID

Returns

  • WLAN status


Definition at line 611 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_malloc#

void* rsi_malloc (uint32_t size)

Allocate memory from the buffer which is maintained by freeRTOS.

Parameters
[in]size

- Required bytes in size

Returns

  • Void


Definition at line 674 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_free#

void rsi_free (void *ptr)

Free the memory pointed by 'ptr'.

Parameters
[in]ptr

- starting address of the memory to be freed

Returns

  • Void


Definition at line 690 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_vport_enter_critical#

void rsi_vport_enter_critical (void)

Enter into critical section.

Parameters
[in]

Returns

  • Void


Definition at line 705 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_vport_exit_critical#

void rsi_vport_exit_critical (void)

Enter exit section.

Parameters
[in]

Returns

  • Void


Definition at line 718 of file rtos/freertos_wrapper/rsi_os_wrapper.c

rsi_task_suspend#

void rsi_task_suspend (rsi_task_handle_t *task_handle)

Exit critical section.

Parameters
[in]task_handle

- Task handle to be suspended

Returns

  • Void


Definition at line 730 of file rtos/freertos_wrapper/rsi_os_wrapper.c