Debugging: Difference between revisions

Content deleted Content added
m Reverted edits by 45.120.125.142 (talk) to last revision by 41.141.110.219: unexplained content removal
Undid revision 1151273494 by 41.141.110.219 (talk) - dashes not needed here
Line 57:
 
==Debugging for embedded systems==
--In contrast to the general purpose computer software design environment, a primary characteristic of embedded environments is the sheer number of different platforms available to the developers (CPU architectures, vendors, operating systems, and their variants). Embedded systems are, by definition, not general-purpose designs: they are typically developed for a single task (or small range of tasks), and the platform is chosen specifically to optimize that application. Not only does this fact make life tough for embedded system developers, it also makes debugging and testing of these systems harder as well, since different debugging tools are needed for different platforms.
 
Despite the challenge of heterogeneity mentioned above, some debuggers have been developed commercially as well as research prototypes. Examples of commercial solutions come from [[Green Hills Software]],<ref>{{cite web|url=https://www.ghs.com/products/supertraceprobe.html|title=SuperTrace Probe hardware debugger|website=www.ghs.com|access-date=2017-11-25|archive-date=2017-12-01|archive-url=https://web.archive.org/web/20171201031136/https://www.ghs.com/products/supertraceprobe.html|url-status=live}}</ref> [[Lauterbach GmbH]]<ref>{{cite web|url=https://www.lauterbach.com|title=Debugger and real-time trace tools|website=www.lauterbach.com|access-date=2020-06-05|archive-date=2022-01-25|archive-url=https://web.archive.org/web/20220125072945/https://www.lauterbach.com/frames.html?home.html|url-status=live}}</ref> and Microchip's MPLAB-ICD (for in-circuit debugger). Two examples of research prototype tools are Aveksha<ref>{{cite journal|last1=Tancreti|first1=Matthew|last2=Hossain|first2=Mohammad Sajjad|last3=Bagchi|first3=Saurabh|last4=Raghunathan|first4=Vijay|date=2011|title=Aveksha: A Hardware-software Approach for Non-intrusive Tracing and Profiling of Wireless Embedded Systems|journal=Proceedings of the 9th ACM Conference on Embedded Networked Sensor Systems|series=SenSys '11|___location=New York, NY, USA|publisher=ACM|pages=288–301|doi=10.1145/2070942.2070972|isbn=9781450307185|s2cid=14769602}}</ref> and Flocklab.<ref>{{cite journal|last1=Lim|first1=Roman|last2=Ferrari|first2=Federico|last3=Zimmerling|first3=Marco|last4=Walser|first4=Christoph|last5=Sommer|first5=Philipp|last6=Beutel|first6=Jan|date=2013|title=FlockLab: A Testbed for Distributed, Synchronized Tracing and Profiling of Wireless Embedded Systems|journal=Proceedings of the 12th International Conference on Information Processing in Sensor Networks|series=IPSN '13|___location=New York, NY, USA|publisher=ACM|pages=153–166|doi=10.1145/2461381.2461402|isbn=9781450319591|s2cid=447045}}</ref> They all leverage a functionality available on low-cost embedded processors, an On-Chip Debug Module (OCDM), whose signals are exposed through a standard [[JTAG|JTAG interface]]. They are benchmarked based on how much change to the application is needed and the rate of events that they can keep up with.