cancel
Showing results for 
Search instead for 
Did you mean: 

WICED Studio Wi-Fi Combo

New Contributor II

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
Reply
1 Solution
Moderator
Moderator

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

0 Likes
Reply
3 Replies
Moderator
Moderator

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.

New Contributor II

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
Reply
Moderator
Moderator

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

0 Likes
Reply