cancel
Showing results for 
Search instead for 
Did you mean: 

ModusToolbox Bluetooth SDK

Contributor

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.

0 Likes
Reply
0 Replies