GB2463048A - A diagnostic tool for displaying interrupt activity against a time line - Google Patents

A diagnostic tool for displaying interrupt activity against a time line Download PDF

Info

Publication number
GB2463048A
GB2463048A GB0815779A GB0815779A GB2463048A GB 2463048 A GB2463048 A GB 2463048A GB 0815779 A GB0815779 A GB 0815779A GB 0815779 A GB0815779 A GB 0815779A GB 2463048 A GB2463048 A GB 2463048A
Authority
GB
United Kingdom
Prior art keywords
interrupt
processor
interrupts
diagnostic tool
received
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB0815779A
Other versions
GB0815779D0 (en
Inventor
Kwok Lun Fung
Adam Johnston
Charles Garcia-Tobin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Oyj
Original Assignee
Nokia Oyj
Symbian Software Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Oyj, Symbian Software Ltd filed Critical Nokia Oyj
Priority to GB0815779A priority Critical patent/GB2463048A/en
Publication of GB0815779D0 publication Critical patent/GB0815779D0/en
Publication of GB2463048A publication Critical patent/GB2463048A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/321Display for diagnostics, e.g. diagnostic result display, self-test user interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

A diagnostic tool (30) is provided for displaying interrupt activity of a device against a time line. The device comprises a processor (12), a plurality of interrupt sources (16, 18, 20). In one embodiment the device may be a smart phone. The diagnostic tool (30) comprises a data acquisition element (32) for detecting interrupts received by the processor (12) and a display element (34) for displaying occurrences of interrupts received by the processor (12) against a timing reference. The data acquisition element may include a probe for detecting the interrupts. Each interrupt is assigned a unique identifier and assertion or occurrence of the interrupt is plotted on a row of a chart against the time line. The chart enables a user to view activity of a device and diagnose problems associated with unexpected or excessive interrupt activity.

Description

A Diagnostic Tool
Technical Field
The present invention relates to the field of diagnostic tools for use in the development of computing devices.
Background to the Invention
Computing devices such as so-called "smartphones" and the like typically include a processor which runs an operating system and application software to implement functionality of the device.
In devices of this type, the processor communicates with peripheral systems such as timers, keypads, device memory and other hardware resources of the device. Typically peripheral systems and hardware resources assert interrupts which indicate to the processor that the peripheral system requires attention or that some action is required, and the processor responds to such interrupts by performing a required action. In some cases software being executed by the processor is also able to assert interrupts indirectly, by scheduling a timer interrupt. It will be appreciated that in responding to an interrupt from a peripheral system the processor must be activated, which causes an increase in the power consumption of the device. As devices such as smartphones are usually battery operated, minimising the power consumption of the device is an important consideration in the development of such devices.
Typically a processor is able to receive interrupts from a large number of peripheral systems. Whilst this may be acceptable when the device is in operation, it can cause difficulties during development of the device, in particular for engineers involved in the development of operating system and application software. Specifically, during the execution of software by the processor a large number of interrupts may be asserted by the peripheral systems. There may also be a large number of interrupt signal sources, such as timers, and these factors make it very difficult to track interrupts which occur during execution of software, which in turn makes it difficult to determine if the software is executing correctly and in as efficient a manner as possible, and to debug software which is not executing correctly. As interrupts are generally associated with action being taken by the processor or the peripheral system, and such action typically increases the power consumption of the device, identifying interrupts which are incorrectly asserted is important to ensure that the device and its software can be designed or optimised to minimise or at least reduce the power consumption of the device.
Prior Art
Many processor ICs include one or more interrupt pins which directly or indirectly reflect the interrupt assertion of the processor. These pins can be used to monitor interrupts which are asserted by peripheral systems of the device by connecting a probe of an oscilloscope or logic analyser to the interrupt pins to produce waveforms which show the interrupt assertion in the form of logical highs and lows over a period of time.
Additionally or alternatively, interrupt service routines may be provided in software which is executed by the processor, to record details of each interrupt assertion, for example in a text log which can then be reviewed by a developer or engineer for the purpose of debugging the software.
These approaches have disadvantages. It can be very difficult and time consuming to extract timing information for interrupts, particularly when a large number of interrupt sources such as peripheral systems and software programs are provided. It can also be difficult to assess the periodicity of a particular interrupt, and the differences between interrupt activity in different use cases of the device, for example when the device is being used in different operating modes or to perform different functions.
Summary of Invention
According to a first aspect of the present invention there is provided a diagnostic tool for monitoring interrupt activity of a device, wherein the device comprises a processor and a plurality of interrupt sources and the diagnostic tool comprises a data acquisition element for detecting interrupts received by the processor and a display element for displaying occurrences of interrupts received by the processor against a timing reference.
The diagnostic tool of the present invention allows multiple interrupt sources to be monitored simultaneously, and by providing a display element which displays occurrences of interrupts against a timing reference an interrupt source which is responsible for an interrupt assertion can be identified rapidly and easily, thereby facilitating development and debugging of the device.
Each interrupt source may have a unique identifier and the display may display occurrences of interrupts by plotting a point for each interrupt detected, the position of the point being dependent upon the identifier of the interrupt source and the time at which the interrupt was detected. Thus, the source and timing of interrupts can easily be identified.
Where the processor comprises a connector whose characteristics indicate whether an interrupt has been received by the processor, the data acquisition element may comprise a probe which is electrically connectable to the connector.
Alternatively or in addition, the data acquisition element may comprise a software program which runs on the device.
According to a second aspect of the invention there is provided a method of monitoring interrupt activity of a device, wherein the device comprises a processor and a plurality of interrupt sources and the method comprises detecting interrupts received by the processor and displaying occurrences of interrupts received by the processor against a time reference.
Each interrupt source may have a unique identifier and the display may display occurrences of interrupts by plotting a point for each interrupt detected, the position of the point being dependent upon the identifier of the interrupt source and the time at which the interrupt was detected.
Where the processor comprises a connector whose characteristics indicate whether an interrupt has been received by the processor, interrupts received by the processor may be detected by a probe which is electrically connectable to the connector.
Alternatively, interrupts received by the processor may be detected by a software program which runs on the device.
According to a third aspect of the invention there is provided a computer program for performing the method of the second aspect.
Brief Description of the Drawings
Embodiments of the invention will now be described, strictly by way of example only, with reference to the accompanying drawings, of which: Figure 1 is a schematic illustration showing components of a device; Figure 2 is a schematic illustration showing interactions between a processor of a device, peripheral systems of the device and a diagnostic tool; Figure 3 is a schematic illustration of one embodiment of a diagnostic tool; Figure 4 is a schematic illustration of an alternative embodiment of a diagnostic tool; and Figure 5 is an illustration showing an exemplary display produced by a diagnostic tool.
Description of the Embodiments
Referring first to Figure 1, a device, which in this example is a smartphone, is shown generally at 10. The device 10 includes a processor 12 which executes software code, shown schematically at 14, to implement functionality of the device 0.
The device 10 also includes a plurality of peripheral systems such as a keypad 16, a timer 18 and a memory 20. It will be appreciated that the peripheral systems illustrated in Figure 1 are examples only, and that the device 10 may include additional or alternative peripheral systems.
Each of the subsystems 16, 18, 20 is controlled by one or more software programs which are executed by the processor 12, and each of the subsystems 16, 18, 20 communicates with the processor 12 by means of interrupts, which are handled, in this example, by an interrupt handler 22. The interrupt handler 22 acts as a multiplexer to allow the processor 12 to receive interrupts from multiple interrupt sources.
Figure 2 illustrates interactions between the processor 12 and software 14 of the device and a diagnostic tool, shown generally at 30. The diagnostic tool 30 comprises a data acquisition element 32 for detecting interrupts received by the processor 12 from the subsystems 16, 18, 20, and a display element 34 for displaying occurrences of interrupts against a timing reference.
In one embodiment of the diagnostic tool 30, shown schematically in Figure 3, the data acquisition element 32 comprises one or more electrical probes 40 which can be electrically connected to one or more interrupt pins 42 of the processor 12. The electrical probe 40 is connected to the display element 34, which is configured to display occurrences of interrupts received by the processor 12 and detected by the probe 40, as will be described below. Typically an interrupt is detected as a spike in the voltage or current level at a pin 42.
In an alternative embodiment, illustrated schematically in Figure 4, the data acquisition element 32 is a software program 50 which runs on the processor 12 and detects interrupts as they are received by the processor 12. In this embodiment the display element 34 may be a display of the device 10, or a remote display controlled by the processor 12.
In use of the diagnostic tool 30, interrupts are assigned a unique identifier which is meaningful to a user of the system. For example, the unique identifier may be a number or a textual description of the interrupt. In some systems, interrupts may be assigned an identifier in the software 14 running on the processor 12, and these identifiers may be detected automatically by the data acquisition software program 50 of the diagnostic tool shown in Figure 4. Alternatively, identifiers may be allocated to interrupts prior to or during operation of the software program 50 as part of a configuration process of the software program 50.
In the embodiment shown in Figure 3, where the data acquisition element is one or more probes 40 connected to interrupt pins of the processor 12, an identifier is assigned to each probe so that the interrupts associated with the occurrences displayed by the display element 34 can be identified.
In both embodiments the display element 34 is configured to display occurrences of interrupts detected by the data acquisition element 32 against a common time reference, such as a system clock 24 of the device 10. Thus the display element 34 is connected, directly or indirectly, to the system clock 24. For example, the display element 34 may receive a timing reference directly from the system clock 24, or may derive a timing reference from the processor 12.
Occurrences of each monitored interrupt are plotted against the time, relative to the timing reference provided by the system clock 24, at which the interrupt occurred, to produce a graph showing the timing of occurrences of interrupts, which can be displayed by the display element 34, as is shown in Figure 5. In this example, time is on the x axis and interrupt identifier is on the y axis, with occurrences of interrupts associated with particular interrupt identifiers being plotted at the time at which they occur. It is to be noted that the diagnostic tool 30 can function in "real-time", that is to say producing and updating a display as interrupts are received by the processor 12, or can be used to display previously captured interrupt data.
The exemplary display of Figure 5 illustrates how the diagnostic tool 30 can be used to aid debugging of a device 10. in this case, the device 10 includes a memory card which is periodically accessed, and interrupts associated with the memory card access were monitored. in this case interrupts to which the identifiers 9, 13, 24, 28, 33, 34 and 42 had been assigned were monitored.
During the period from t 80 approximately to t = 240 approximately, interrupt numbers 28, 34 and 42 are repeatedly asserted, as indicated by the large number of occurrences of these interrupts plotted on the graph, which appear as lines running from t 80 approximately to t = 240 approximately for the relevant interrupt numbers. An engineer viewing the display of Figure 5 would interpret this period as a period in which the memory card associated with the device 10 was being accessed normally. During the period from t = 240 to t = 700 approximately, interrupts 33 and 42 are asserted infrequently, whilst interrupt 34 is not asserted at all, indicating that in this period the system was idle.
However, interrupt numbers 33 and 42 are unexpectedly asserted approximately every 60 seconds between the period from t = 390 approximately to t 730 approximately, as indicated by the occurrences plotted for these interrupt numbers between these times. A skilled engineer with knowledge of the software platform of the device observing the display shown in Figure 5 might recognise that the pattern of activity of interrupt numbers 33 and 42 appears to relate to screen saver activities, and thus would be prompted to investigate screen saver software to determine whether and why screen saver software running on the device 10 is causing the interrupt activity shown. In this case investigations showed that the screen saver software was unexpectedly accessing the memory card.
Thus, the diagnostic tool 30 can be used to identify unexpected patterns of interrupt activity, or irregular patterns of interrupt activity which may be difficult to detect using an automated tool, but which can be recognised by a skilled engineer, for example an almost periodic pattern in which an interrupt is asserted repeatedly with a similar but not identical time period between occurrences of the interrupt, or where the number of occurrences of the interrupt after the time period varies. The diagnostic tool 30 can thus be used to assist in the identification of an interrupt source such as a peripheral system of a device 10 which may be causing problems. By facilitating the identification of problematic interrupt sources in this way debugging of the device 10 and its software is facilitated, leading to improved efficiency and power consumption of the device.
The diagnostic tool 30 of the present invention may be provided as an electrical probe 40 which can be connected to a suitable data processing system such as a computer having a screen, with appropriate software being provided to effect the display on a display of the data processing system of the interrupt and timing information. Alternatively, the diagnostic tool 30 may be provided as a software program which can be executed by a processor 12 of the device 10, with a screen a data processing system such as a personal computer being used to display the interrupt and timing information.

Claims (11)

  1. Claims 1. A diagnostic tool for monitoring interrupt activity of a device, wherein the device comprises a processor and a plurality of interrupt sources and the diagnostic tool comprises a data acquisition element for detecting interrupts received by the processor and a display element for displaying occurrences of interrupts received by the processor against a timing reference.
  2. 2. A diagnostic tool according to claim I wherein each interrupt source has a unique identifier and the display displays occurrences of interrupts by plotting a point for each interrupt detected, the position of the point being dependent upon the identifier of the interrupt source and the time at which the interrupt was detected.
  3. 3. A diagnostic tool according to claim I or claim 2 wherein the processor comprises a connector whose characteristics indicate whether an interrupt has been received by the processor and the data acquisition element comprises a probe which is electrically connectable to the connector.
  4. 4. A diagnostic tool according to any one of claims I to 3 wherein the data acquisition element comprises a software program which runs on the device.
  5. 5. A diagnostic tool substantially as hereinbefore described with reference to the accompanying drawings.
  6. 6. A method of monitoring interrupt activity of a device, wherein the device comprises a processor and a plurality of interrupt sources and the method comprises detecting interrupts received by the processor and displaying occurrences of interrupts received by the processor against a time reference.
  7. 7. A method according to claim 6 wherein each interrupt source has a unique identifier and the display displays occurrences of interrupts by plotting a point for each interrupt detected, the position of the point being dependent upon the identifier of the interrupt source and the time at which the interrupt was detected.
  8. 8. A method according to claim 6 or claim 7 wherein the processor comprises a connector whose characteristics indicate whether an interrupt has been received by the processor and interrupts received by the processor are detected by a probe which is electrically connectable to the connector.
  9. 9. A method according to any one of claims 6 to 8 wherein interrupts received by the processor are detected by a software program which runs on the device.
  10. 10. A method substantially as hereinbefore described with reference to the accompanying drawings.
  11. 11. A computer program for performing the method of any one of claims 6. to 10.
GB0815779A 2008-08-29 2008-08-29 A diagnostic tool for displaying interrupt activity against a time line Withdrawn GB2463048A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0815779A GB2463048A (en) 2008-08-29 2008-08-29 A diagnostic tool for displaying interrupt activity against a time line

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0815779A GB2463048A (en) 2008-08-29 2008-08-29 A diagnostic tool for displaying interrupt activity against a time line

Publications (2)

Publication Number Publication Date
GB0815779D0 GB0815779D0 (en) 2008-10-08
GB2463048A true GB2463048A (en) 2010-03-03

Family

ID=39865960

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0815779A Withdrawn GB2463048A (en) 2008-08-29 2008-08-29 A diagnostic tool for displaying interrupt activity against a time line

Country Status (1)

Country Link
GB (1) GB2463048A (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2257550A (en) * 1991-07-11 1993-01-13 Int Computers Ltd Monitoring program execution.
JPH05134903A (en) * 1991-11-13 1993-06-01 Nec Corp Program operation analyzing device
US5872909A (en) * 1995-01-24 1999-02-16 Wind River Systems, Inc. Logic analyzer for software
US20020065948A1 (en) * 2000-11-30 2002-05-30 Morris Larry A. Operating system event tracker
JP2006185365A (en) * 2004-12-28 2006-07-13 Renesas Technology Corp Semiconductor device and debugging method
US20070276832A1 (en) * 2006-05-26 2007-11-29 Fujitsu Limited Task transition chart display method and display apparatus

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2257550A (en) * 1991-07-11 1993-01-13 Int Computers Ltd Monitoring program execution.
JPH05134903A (en) * 1991-11-13 1993-06-01 Nec Corp Program operation analyzing device
US5872909A (en) * 1995-01-24 1999-02-16 Wind River Systems, Inc. Logic analyzer for software
US20020065948A1 (en) * 2000-11-30 2002-05-30 Morris Larry A. Operating system event tracker
JP2006185365A (en) * 2004-12-28 2006-07-13 Renesas Technology Corp Semiconductor device and debugging method
US20070276832A1 (en) * 2006-05-26 2007-11-29 Fujitsu Limited Task transition chart display method and display apparatus

Also Published As

Publication number Publication date
GB0815779D0 (en) 2008-10-08

Similar Documents

Publication Publication Date Title
CN1959653B (en) Apparatus and method for debugging computer program
KR20190079809A (en) Fault injection test apparatus and method for the same
EP3167371B1 (en) A method for diagnosing power supply failure in a wireless communication device
US8745447B2 (en) System and method for analyzing an electronics device including a logic analyzer
CN103838663A (en) Application testing method and device
US7577876B2 (en) Debug system for data tracking
CN103970628A (en) Automatic detection system and automatic detection method thereof
CN104391780A (en) Method for automatically testing stability of redundancy function of power supply of server
CN103077114A (en) Automatic testing method based on communication protocol of temperature measuring device
CN112015604A (en) Automatic reliability evaluation system and evaluation method based on Zynq FPGA
CN105116869B (en) Large-scale maintenance machinery electrical malfunction real-time monitoring diagnostic method
CN106021024A (en) Method for reminding response stopping of user terminal, and user terminal
Bojan et al. Functional coverage measurements and results in post-Silicon validation of Core™ 2 duo family
CN102521132A (en) Automated testing method and automated testing system for real-time output logs
Wang et al. Wlcleaner: Reducing energy waste caused by wakelock bugs at runtime
KR20180134677A (en) Method and apparatus for fault injection test
GB2463048A (en) A diagnostic tool for displaying interrupt activity against a time line
CN101017456A (en) Method and system for judging breakdown of computer according to input/output signal and restarting
CN109885437A (en) Baseboard management controller BMC, terminal and power-up state diagnotic module, method
US7415560B2 (en) Method of automatically monitoring computer system debugging routine
CN106201750A (en) A kind of processing method and processing device based on linux EMS memory error
CN108710554B (en) Processor debugging system and method
CN113836035B (en) Battery management system testing method and device and electronic equipment
CN109144798B (en) Intelligent management system with machine learning function
KR100756140B1 (en) Monitoring method and its appratus of general purpose ports of target-system

Legal Events

Date Code Title Description
COOA Change in applicant's name or ownership of the application

Owner name: NOKIA CORPORATION

Free format text: FORMER OWNER: SYMBIAN SOFTWARE LTD

WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)