WICED or ThreadX API for getting task stats?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
NaFi_2915566
Level 3
Level 3
First like received First like given

Is there an API for getting task stats like run time percentage?  The information from tx_thread_info_get() seems to be more related to current status rather than past performance.  I am looking for something similar to FreeRTOS tx_thread_info_get().

0 Likes
1 Solution

Understand Azure RTOS TraceX | Microsoft Docs

You need to use WICED_ENABLE_TRACEX=1 in the make target or as a global defines. This will compile the traceX enabled version of the libraries.

Have this in the .mk file

ifdef WICED_ENABLE_TRACEX

$(NAME)_COMPONENTS += test/TraceX

endif

To extract the trace buffer, start your app in debug mode, pause execution of the program and dump memory address defined by the WICED_TRACEX_BUFFER_ADDRESS macro.

To dump memory, use the Memory Browser window (Window->Show View->Memory Browser), type in the address and specify the size from WICED_TRACEX_BUFFER_ADDRESS and WICED_TRACEX_BUFFER_SIZE macros, respectively.

Save the dump in Raw Binary format with the file extension of .trx and now you are ready to view the traces in the gui; which should give you the necessary stats you are looking for.

Please let me know if this is not clear. I will try to create a verbose document and upload in case this is not sufficient.

View solution in original post

3 Replies
RaktimR_11
Moderator
Moderator
Moderator
500 replies posted 250 replies posted 100 replies posted

I'm assuming that you want something equivalent to vTaskGetRunTimeStats() in ThreadX. I don't think threadX has such an API for run time stats of a task. But they do have a TraceX plugin TRACEX | Real-Time System Events Analysis & Graphical View Tool which might serve your purpose.

I see how TraceX analyzes the data on a PC but there is no mention of how the on-device information is created.  All I found are:

(from website) "TRACEX is designed to work with Express Logic’s THREADX RTOS, which constructs a database of system and application “events” on the target system during run-time"

(from user guide) "The user is responsible for transferring the trace buffer stored in RAM in the embedded target to a binary file on the host computer."

I do not see how the data is collected or where it is located, could you point me to where I can learn abotu this?

thank you

0 Likes

Understand Azure RTOS TraceX | Microsoft Docs

You need to use WICED_ENABLE_TRACEX=1 in the make target or as a global defines. This will compile the traceX enabled version of the libraries.

Have this in the .mk file

ifdef WICED_ENABLE_TRACEX

$(NAME)_COMPONENTS += test/TraceX

endif

To extract the trace buffer, start your app in debug mode, pause execution of the program and dump memory address defined by the WICED_TRACEX_BUFFER_ADDRESS macro.

To dump memory, use the Memory Browser window (Window->Show View->Memory Browser), type in the address and specify the size from WICED_TRACEX_BUFFER_ADDRESS and WICED_TRACEX_BUFFER_SIZE macros, respectively.

Save the dump in Raw Binary format with the file extension of .trx and now you are ready to view the traces in the gui; which should give you the necessary stats you are looking for.

Please let me know if this is not clear. I will try to create a verbose document and upload in case this is not sufficient.