The development and debugging of embedded systems based on Real-Time Operating Systems (RTOS) present a unique challenge, as traditional debuggers lack insight into the internal state of the operating system. In the winIDEA debugging environment, basic OS-awareness for the Zephyr OS is already supported, but it lacks oversight of key synchronization and communication kernel objects.
The aim of this thesis was to address this issue by developing a prototype solution for OS-aware debugging of semaphores, mutexes, and message queues in Zephyr OS. The prototype was developed in the Python programming language using the isystem.connect API (winIDEA SDK). The work involved a detailed analysis of the operating system's internal memory structures and the implementation of algorithms for the automated reading and interpretation of this data from the target device's memory.
The result of the thesis is a working prototype that provides developers with a clear and structured real-time overview of the state of semaphores, mutexes, and message queues. The developed software logic not only significantly simplifies debugging in the development of multithreaded applications but also serves as a precise architectural blueprint for the subsequent production integration of this functionality directly into the winIDEA application core.
|