Keil RTX5 RTOS not detected

Sysprogs forums Forums VisualGDB Keil RTX5 RTOS not detected

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #33877
    murrellr
    Participant

    I have successfully imported a Keil uVision project into Visual Studio 2022 with VisualGDB.  The project was mostly hand-built and does not use any Keil packs.  It includes the RTOS2 library rtx_cm4f.lib.  The VisualGDB Embedded Debug Tweaking menu has Embedded RTOS support set to automatic.  While debugging, when I select Debug->Windows->RTOS Objects->Threads, it shows “No RTOS is detected”.  How do I tell VisualGDB that RTX5 is being used and enable the RTOS window features?

     

    #33878
    support
    Keymaster

    Hi,

    The Debug->Windows->RTOS Objects view is likely provided by another extension. VisualGDB reports the RTOS threads via the regular thread interface, so they can be viewed via Debug->Windows->Threads.

    #33884
    murrellr
    Participant

    I was using threads as an example.  I’d like to see semaphores and other RTOS objects.  When I change the Embedded RTOS support to “Enabled by a plugin” it asks for the path to the plugin.  I found this project on GitHub: https://github.com/sysprogs/RTOSPlugins/tree/master/RTXThreadPlugin  I built it and VisualGDB accepted it, but still “No RTOS is detected”.  Does a plugin exist for RTX5 exist?

     

    #33894
    support
    Keymaster

    No problem, we will clarify.

    VisualGDB has 3 different levels of RTOS integration via open-source plugins:

    1. Just displaying the threads in the regular Threads window. This is currently supported for FreeRTOS, RTX, ThreadX and Zephyr (NRFConnect devices only).
    2. Automatic detection of thread switches in the profiler/real-time watch. This is supported for FreeRTOS and RTX.
    3. Non-intrusive real-time view of various RTOS primitives as shown in this tutorial. This is only supported for FreeRTOS.

    If you would like to get the 3rd option to work with RTX, the RTX plugin would need to be extended to implement the Live Watch interfaces similar to the FreeRTOS one. As your company holds a substantial amount of active VisualGDB licenses, we should be able to do most of it for you. Feel free to reach out to our support with more details (your device type, the exact RTX version and the types of RTOS objects you would like to view) and we will get back to you with a time frame.

    #33915
    support
    Keymaster

    OK, we have looked into the way RTX manages its objects and it turns out it flags them in a special way inside the heap, so that the debugger can walk the heap blocks, determine the object types, and display their state.

    We have updated our RTX plugin to show the following object types:

    • Threads
    • Timers
    • Event Flags
    • Mutexes
    • Semaphores
    • Memory Pools
    • Messages
    • Message Queues

    The objects can be viewed via the RTX Objects view in Live Variables window:

    As the RTX objects have many different fields and modes, we have made the layout customizable via an XML file. If you would like to pull some extra fields from the objects to the top-level view (above the [raw object] node), you can simply add the PromotedFields elements to it.

    Please try the following build, it contains the updated plugin and the necessary interfaces: VisualGDB-5.6.109.4827.msi

    Let us know if you have any further suggestions or encounter any issues. If you end up customizing the view by editing RTOSObjectTypes.xml, feel free to share your changes, and we will be happy to merge them on our side.

    Attachments:
    You must be logged in to view attached files.
    #33925
    murrellr
    Participant

    Thank you for developing this.  It is very useful to me and makes VisualGDB a good substitute for Keil uVision.  As I make improvements I will submit them for inclusion into the plugin project.

    #33938
    support
    Keymaster

    Hi,

    No problem and good to know it works. Feel free to submit merge requests via Github, or simply post them here or via the support form.

    Also if you have further ideas about improvements we could do on our side, do not hesitate to share them with us.

Viewing 7 posts - 1 through 7 (of 7 total)
  • You must be logged in to reply to this topic.