IP Library Granted Patent US 10,437,694
Granted Patent B2
US 10,437,694 · App. 15/185,733 · Granted Oct 8, 2019

Real time terminal for debugging embedded computing systems

Inventor: Rolf Segger (Nassau, BS)
G06F11/26G06F11/079G06F11/2294G06F11/3013G06F11/3476G06F11/3656G06F11/3664G06F11/3688G06F11/3058G06F2201/805G06F2201/865G06F2201/875
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,437,694
App. No.
15/185,733
Granted
Oct 8, 2019
Kind
B2
Abstract

One or more circular debug buffers can allow terminal output data to be provided from the target system to a host without halting the target system or causing significant delays. One or more circular debug buffers may also allow input (such as keyboard input) to be provided from the host to the target without halting the target system or causing significant delays. Accordingly, communications between the target and host may be performed in real time or near real time. These communications may be used for debugging purposes or more generally, for any purpose, including purposes unrelated to debugging.

Claims (45)

1. A system for debugging a target embedded system, the system comprising:

a memory device, the memory device configured to store at least a debugger program; and

a hardware processor, the hardware processor configured to:

execute the debugger program, the debugger program configured to read data from a debug buffer of the target embedded system using a write pointer set by a debug library of the target embedded system after the debug library writes the data to the debug buffer;

determine that a first interrupt and a first task executed using the data read from the debug buffer; and

output a user interface that depicts, in a first pane, a timeline of the data read from the debug buffer, wherein the timeline includes a first horizontal bar corresponding to the first interrupt and a first time period, and wherein the timeline includes a second horizontal bar corresponding to the first task and a second time period that occurs after the first time period,

wherein the user interface further depicts, in a second pane, a vertical bar depicting a used CPU time associated with the first interrupt and a used CPU time associated with the first task.

2. The system of claim 1 , wherein the hardware processor is further configured to determine that a first scheduler activity occurred using the data read from the debug buffer.

3. The system of claim 2 , wherein the timeline further includes a third horizontal bar corresponding to the first scheduler activity and a third time period that occurs after the second time period.

4. The system of claim 1 , wherein the user interface further depicts a used CPU time associated with the first interrupt and a used CPU time associated with the first task.

5. The system of claim 1 , wherein the user interface further depicts a second vertical bar that represents a used CPU time when the target embedded system is active and a third vertical bar that represents a used CPU time when the target embedded system is idle.

6. The system of claim 1 , wherein the user interface further depicts a list of processor events recorded when the target embedded system was running.

7. The system of claim 6 , wherein the list of processor events comprises a first processor event and a second processor event, and wherein the user interface further depicts a window identifying that the first processor event occurred during the first interrupt and that the second processor event occurred during the first task.

8. The system of claim 1 , wherein the user interface further depicts at least one of a frequency, run time information, or CPU load for the first interrupt.

9. The system of claim 1 , wherein the hardware processor is further configured to:

output a second user interface that depicts a list of variables in response to a user selecting a file to load;

obtain a selection of a first variable in the list of variables depicted in the second user interface; and

output a third user interface that depicts a value of the first variable in an oscilloscope format using the data read from the debug buffer.

10. A system for debugging a target embedded system, the system comprising:

a memory device, the memory device configured to store computer instructions for a data visualization system; and

a hardware processor in communication with the memory device, wherein the computer instructions, when executed by the hardware processor, cause the system to:

read data from a debug buffer of the target embedded system using a write pointer set by a debug library of the target embedded system after the debug library writes the data to the debug buffer;

determine that a first interrupt executed using the data read from the debug buffer; and

output a user interface that depicts, in a first pane, a timeline of the data read from the debug buffer, wherein the timeline includes a first horizontal bar corresponding to the first interrupt and a first time period,

wherein the user interface further depicts, in a second pane, a vertical bar depicting a used CPU time associated with the first interrupt and a used CPU time associated with a first task.

11. The system of claim 10 , wherein the computer instructions, when executed, further cause the system to determine that a first scheduler activity occurred using the data read from the debug buffer.

12. The system of claim 11 , wherein the timeline further includes a second horizontal bar corresponding to the first scheduler activity and a second time period that occurs after the first time period.

13. The system of claim 10 , wherein the user interface further depicts a used CPU time associated with the first interrupt.

14. The system of claim 10 , wherein the user interface further depicts a second vertical bar that represents a used CPU time when the target embedded system is active and a third vertical bar that represents a used CPU time when the target embedded system is idle.

15. The system of claim 10 , wherein the user interface further depicts an indication of a first processor event recorded when the target embedded system was running, wherein the user interface further depicts a window identifying that the first processor event occurred during the first interrupt.

16. The system of claim 10 , wherein the hardware processor is further configured to:

output a second user interface that depicts a list of variables in response to a user selecting a file to load;

obtain a selection of a first variable in the list of variables depicted in the second user interface; and

output a third user interface that depicts a value of the first variable in an oscilloscope format using the data read from the debug buffer.

17. A computer-implemented method for debugging a target embedded system, the computer-implemented method comprising:

retrieving data from a debug buffer of the target embedded system via a debug probe using a write pointer set by a debug library of the target embedded system after the debug library writes the data to the debug buffer;

determining that a first interrupt and a first task executed based on the retrieved data; and

outputting, with a hardware process, a user interface that depicts, in a first pane, a timeline of the retrieved data, wherein the timeline includes a first horizontal bar corresponding to the first interrupt and a first time period, and wherein the timeline includes a second horizontal bar corresponding to the first task and a second time period that occurs after the first time period,

wherein the user interface further depicts, in a second pane, a vertical bar depicting a used CPU time associated with the first interrupt and a used CPU time associated with the first task.

18. The computer-implemented method of claim 17 , further comprising determining that a first scheduler activity occurred based on the retrieved data.

19. The computer-implemented method of claim 18 , wherein the timeline further includes a third horizontal bar corresponding to the first scheduler activity and a third time period that occurs after the second time period.

20. The computer-implemented method of claim 17 , further comprising:

outputting a second user interface that depicts a list of variables in response to a user selecting a file to load;

obtaining a selection of a first variable in the list of variables depicted in the second user interface; and

subsequent to retrieving the data, outputting a third user interface that depicts a value of the first variable in an oscilloscope format.

Continuity (3)
Continuation In Part 14256335 · Apr 18, 2014
Provisional Application 61943058 · Feb 21, 2014
Related Publication 20160292057A1 · Oct 6, 2016