This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to show the thread names in the EventRecorder?

I got the EventRecorder to work at last, but in the component tab it doesn't show the name of the threads. They are all called "RTX Thread". I already entered a name in the osThreadAttr_t, but it is not visible during debugging. I can also see the thread_id in HEX format, but I would have to know those by heart which is not practical.

Parents
  • I do think that the event recorder can be overwhelmed and miss events. Use the filtering options in the EventRecorder view and in the RTC_Config.h file to reduce the number of events and the missing threads should re-appear.

    I have already reduced the events to a minimum. I guess I have to live with it then. It might also be caused by the ULINK ME2. I think it is not the fastest JTAG.

    As for multiple threads running on the same core -- there could be a few different causes for that apparent behavior. I would guess that your code is relying on the kernel preempting threads, because I don't see a lot of 'blocked' threads. 

    I am not that experienced with the multithreading design options yet. This design was also not made by me.

    From what I have seen it works like this:
    Threads are created with the same priorities and after the execution of each thread an osThreadYield is called. Is this an okay solution? From what I understand the threads should be managed by the kernel and not manually. There are also a lot of problems with the design. TCP threads are running when nothing happens. A lot of computing time seems wasted. A lot of host buffer overflows are shown in the EventRecorder. The operation seems a bit sluggish at times. I probably need to optimize it properly.

    I am just curious how it is even possible that multiple threads are running concurrently on a single-core processor. 

Reply
  • I do think that the event recorder can be overwhelmed and miss events. Use the filtering options in the EventRecorder view and in the RTC_Config.h file to reduce the number of events and the missing threads should re-appear.

    I have already reduced the events to a minimum. I guess I have to live with it then. It might also be caused by the ULINK ME2. I think it is not the fastest JTAG.

    As for multiple threads running on the same core -- there could be a few different causes for that apparent behavior. I would guess that your code is relying on the kernel preempting threads, because I don't see a lot of 'blocked' threads. 

    I am not that experienced with the multithreading design options yet. This design was also not made by me.

    From what I have seen it works like this:
    Threads are created with the same priorities and after the execution of each thread an osThreadYield is called. Is this an okay solution? From what I understand the threads should be managed by the kernel and not manually. There are also a lot of problems with the design. TCP threads are running when nothing happens. A lot of computing time seems wasted. A lot of host buffer overflows are shown in the EventRecorder. The operation seems a bit sluggish at times. I probably need to optimize it properly.

    I am just curious how it is even possible that multiple threads are running concurrently on a single-core processor. 

Children