In the rapidly evolving realm of embedded systems, debugging is a critical component in the lifecycle of embedded firmware development, especially given the high demands of performance in real-time systems. Debugging embedded systems is inherently challenging and time-consuming d
...
In the rapidly evolving realm of embedded systems, debugging is a critical component in the lifecycle of embedded firmware development, especially given the high demands of performance in real-time systems. Debugging embedded systems is inherently challenging and time-consuming due to limited internal system observability. Many modern processors, specifically those based on the ARM architecture, are equipped with debugging features such as Coresight components and debug registers to aid the debugging process. However, most debugging solutions rely on external hardware, which is often removed or disabled in a production system. Furthermore, existing software/hardware debug platforms do not support co-debug capabilities for multicore and multiprocessor debugging. This research aims to tackle the challenges developers face due to limited resources, strict real-time constraints, and the complex nature of debugging in embedded systems. The focus is on enhancing code efficiency and ensuring system responsiveness within stringent timing constraints. This thesis introduces a software library solution for debugging and profiling firmware, leveraging trace infrastructure and debug registers for multicore and multiprocessor ARM-based SoCs, facilitating comprehensive system analysis across ARM R5, M4, and M33 series processors. The library supports performance measurement, profiling, hardware breakpoints and watchpoints, synchronous breakpoints in multicore systems, and inter-processor communication. Furthermore, integrating Embedded Trace Macrocell and Micro Trace Buffer allows for detailed tracing across all processors, significantly enhancing system observability and debugging efficiency. Notably, the library is designed to be user-friendly, hardware-agnostic, and easily expandable to other ARMv7, and ARMv8 series processors. Comparative results documented in this study highlight the library’s low overhead and latency. This thesis advances technical capabilities in debugging embedded systems and strategically enhances design decisions and process optimizations, ultimately contributing to more robust and efficient embedded solutions.