April 29, 2021 at 01:31 #30424
Is there any plan to extend support for Zephyr OS to non-nRF based devices? I am developing firmware for an STM32 part but using the Zephyr OS. It would be great if VisualGDB could support this configuration. Alternatively are there any guides for easily including the Zephyr components in the build process from VisualGDB?
Full OS debugging (threads etc) would be great but at the moment really I am just hoping to be able to build and then run a Zephyr application and be able to debug my own code.
Thank you!April 29, 2021 at 07:51 #30425
Zephyr OS i a rather niche OS compared to mainstream RTOSes like FreeRTOS or mbed+RTX, and involves non-trivial setup steps that differ from target to target and from version to version. Hence, we will not be supporting it directly besides the NRFConnect integration.
If you can get all the device-specific setup done and get your project to build manually, you can simply import it into VisualGDB as an existing CMake project and make sure the CMake environment used by VisualGDB matches the environment used by Zephyr (see this page). You will be able to build and debug the project just fine once it is imported.
If the thread layout of your Zephyr configuration is compatible with the one used by NRFConnect, VisualGDB will display them automatically. If not, you can patch our Zephyr thread plugin to handle the changes. Again, as the specifics differ from target to target, we will only officially support it as a part of the NRFConnect SDK integration.November 12, 2023 at 10:28 #34962
New user and liking the tooling so far. I noticed this thread and comment about Zephry being “niche”. Understanding it is still new OS (but quickly gaining momentum), are there any thoughts/roadmap about adding support for Zephyr now? Just curious as it would be helpful and nice feature to include. Thanks.November 12, 2023 at 10:45 #34963
It mostly depends on what the device vendors do. VisualGDB supports FreeRTOS and ThreadX out-of-the-box (e.g. you can create a project from the wizards) because most device vendors provide FreeRTOS-based and ThreadX-based samples with their SDK, so all we need to do on our side is wrap these samples. If we see more device vendors provide out-of-the-box samples for Zephyr, we will certainly integrate them into VisualGDB.
So far, out of all major vendors, Zephyr is used by the nRFConnect framework, and VisualGDB supports it well. You can create projects via the wizards, VisualGDB will show the thread state via Zephyr thread plugin, etc.
If you want to use Zephyr with devices where the vendors don’t provide the samples, you can always setup the project manually. As far as VisualGDB is concerned, it’s just another CMake-based project, so you will be able to build and debug it as usual. You may need to adjust the thread plugin to accommodate a different stack layout, but that’s precisely the reason we publish sources for our RTOS integration plugins – so you can tweak them for use cases that are not directly supported out-of-the-box.
You must be logged in to reply to this topic.