- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In WICED® BT SDK v1.4 still missing some basic RTOS functionality incl. reported before in the WICED community forum, but neither I see them fixed in v1.4 nor are listed as known issues in the BT SDK 1.4 Release Notes.pdf:
wiced_rtos.h (and API docs) says:
wiced_rtos_delete_thread( wiced_thread_t* thread ); Deletes a terminated thread.
wiced_rtos_thread_join(wiced_thread_t * thread) Sleeps until another thread has terminated
In wiced_rtos API there is no any function exposed for terminating a thread
If we refer to ThreadX manual: "A thread is in a terminated state because another thread or the thread itself called the tx_thread_terminate service"
So in order wiced_rtos_delete_thread and wiced_rtos_thread_join to work they require first thread to be terminated and according to ThreadX documentation this could be done only through tx_thread_terminate, which means that tx_thread_terminate need also to be exposed through wiced_rtos.
Also need some function or macro in order to terminate the current thread within itself: there was macro WICED_END_OF_CURRENT_THREAD(), but it is available only for 43xx platforms and no alternative for CYW2*
Other important functionality missing in the wiced_rtos:
Queues:
Missing basic often used functionality to add to the head of the queue like tx_queue_front_send() and to read the head element without to remove it from the queue like xQueuePeek() in FreeRTOS
Event Flags:
clear event flags – in original ThreadX function tx_event_flags_set has additional flag set_option which give functionality either to set or clear desired event bits, in wiced_rtos_set_event_flags this option is missing and the functionality is limited ONLY to set event bits. BTW there is a work around the last issue, but is quite cumbersome.