Diagnostic program

Last updated

A diagnostic program (also known as a test mode) is an automatic computer program sequence that determines the operational status within the software, hardware, or any combination thereof in a component, a system, or a network of systems. Diagnostic programs ideally provide the user with guidance regarding any issues or problems found during its operation.

Contents

Diagnostics programs may be simple or complex, operating unknowingly within everyday devices or awaiting their invocation to make more complex performance assessments. Everyday examples are a microwave oven that displays code F6 to warn of a shorted temperature probe [1] or a garage door opener that flashes its control board's LED four times warning of critically misaligned safety sensors and impending shutdown. [2]

Diagnostic programs are also inserted into consumer electronic products and electronic games. Sometimes if the owner of an electronic device asks the manufacturer how to access the hidden diagnostic program, they may reply to the consumer saying that the information is considered to be "proprietary" and cannot be shared.

History

Early diagnostics programs were procedural instructions performed by humans, not by computer programs. See Built-in test equipment that enabled system operators to perform testing and diagnostics.

As computers became smaller, more mobile, computer programs were used to perform diagnostics tasks. In the late 1960s, Volkswagen introduced the first on-board computer system with diagnostics provisions.

Methods of operation

The diagnostics program for a device or system may be independently located or integrated within. These Methods of Operation are arranged, more-or-less, in order of increasing complexity and their increasing value of diagnostics information.

  1. Background monitoring of system indicators, for statistical analysis of trends, and for recording abnormal events.
  2. Solution-based diagnostics, that test for known failure modes by identifying if their known symptoms are detected.
  3. Black box, which is testing of a mechanism without knowing how it works, and merely focusing on the accuracy of output data based on a known input.
  4. White box, which uses knowledge of a mechanism's inner functions for direct testing.
  5. Operation-oriented, a combination of both black and white box, with one or more black-box operations interleaved with one or more white-box operations. This mode of testing is not preferred, however, some complex systems do not have the necessary interfaces to perform one or the other type independently.
  6. Integrated background diagnostics, that perform testing of system components during idle-time of a system.
  7. Operation-interleaved diagnostics, that incorporate diagnostics into the normal operation of a system component, thus any marginal operating mode is immediately diagnosed. Examples of hardware components with features that assist a diagnostic program are:
    1. Modern hard drives have Self-Monitoring, Analysis and Reporting Technology (SMART) commands that provide information about internal error conditions, e.g., spin retry counts, bad sector counts, etc.
    2. Some systems may use Error Correcting Code (ECC) memory that logs memory failure events that were automatically corrected.

Architectures

Example diagnostics program applications

Related Research Articles

<span class="mw-page-title-main">BIOS</span> Firmware for hardware initialization and OS runtime services

In computing, BIOS is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the booting process. The firmware comes pre-installed on the computer's motherboard.

<span class="mw-page-title-main">Motherboard</span> Main printed circuit board used for a computing device

A motherboard is the main printed circuit board (PCB) in general-purpose computers and other expandable systems. It holds and allows communication between many of the crucial electronic components of a system, such as the central processing unit (CPU) and memory, and provides connectors for other peripherals. Unlike a backplane, a motherboard usually contains significant sub-systems, such as the central processor, the chipset's input/output and memory controllers, interface connectors, and other components integrated for general use.

<span class="mw-page-title-main">Operating system</span> Software that manages computer hardware resources

An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.

<span class="mw-page-title-main">Booting</span> Process of starting a computer

In computing, booting is the process of starting a computer as initiated via hardware such as a physical button on the computer or by a software command. After it is switched on, a computer's central processing unit (CPU) has no software in its main memory, so some process must load software into memory before it can be executed. This may be done by hardware or firmware in the CPU, or by a separate processor in the computer system.

<span class="mw-page-title-main">Embedded system</span> Computer system with a dedicated function

An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. Embedded systems control many devices in common use. In 2009, it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.

<span class="mw-page-title-main">Open Firmware</span> Standard for computer bootstrap code

Open Firmware is a standard defining the interfaces of a computer firmware system, formerly endorsed by the Institute of Electrical and Electronics Engineers (IEEE). It originated at Sun Microsystems where it was known as OpenBoot, and has been used by multiple vendors including Sun, Apple, IBM and ARM.

<span class="mw-page-title-main">Crash (computing)</span> Unexpected program exit due to an error

In computing, a crash, or system crash, occurs when a computer program such as a software application or an operating system stops functioning properly and exits. On some operating systems or individual applications, a crash reporting service will report the crash and any details relating to it, usually to the developer(s) of the application. If the program is a critical part of the operating system, the entire system may crash or hang, often resulting in a kernel panic or fatal system error, on Windows this can result in a Blue Screen.

In-circuit emulation (ICE) is the use of a hardware device or in-circuit emulator used to debug the software of an embedded system. It operates by using a processor with the additional ability to support debugging operations, as well as to carry out the main function of the system. Particularly for older systems, with limited processors, this usually involved replacing the processor temporarily with a hardware emulator: a more powerful although more expensive version. It was historically in the form of bond-out processor which has many internal signals brought out for the purpose of debugging. These signals provide information about the state of the processor.

<span class="mw-page-title-main">Watchdog timer</span> Electronic timer used to detect and recover from computer malfunctions

A watchdog timer, sometimes called a computer operating properly timer, is an electronic or software timer that is used to detect and recover from computer malfunctions. Watchdog timers are widely used in computers to facilitate automatic correction of temporary hardware faults, and to prevent errant or malevolent software from disrupting system operation.

<span class="mw-page-title-main">UEFI</span> Technical specification for firmware architecture

Unified Extensible Firmware Interface is a specification for the firmware architecture of a computing platform. When a computer is powered on, the UEFI-implementation is typically the first that runs, before starting the operating system. Examples include AMI Aptio, Phoenix SecureCore, TianoCore EDK II, InsydeH2O.

A built-in self-test (BIST) or built-in test (BIT) is a mechanism that permits a machine to test itself. Engineers design BISTs to meet requirements such as:

<span class="mw-page-title-main">Power-on self-test</span> Process performed by firmware or software routines

A power-on self-test (POST) is a process performed by firmware or software routines immediately after a computer or other digital electronic device is powered on.

Advanced Configuration and Power Interface (ACPI) is an open standard that operating systems can use to discover and configure computer hardware components, to perform power management, auto configuration, and status monitoring. It was first released in December 1996. ACPI aims to replace Advanced Power Management (APM), the MultiProcessor Specification, and the Plug and Play BIOS (PnP) Specification. ACPI brings power management under the control of the operating system, as opposed to the previous BIOS-centric system that relied on platform-specific firmware to determine power management and configuration policies. The specification is central to the Operating System-directed configuration and Power Management (OSPM) system. ACPI defines hardware abstraction interfaces between the device's firmware, the computer hardware components, and the operating systems.

In embedded systems, a board support package (BSP) is the layer of software containing hardware-specific boot firmware, runtime firmware and device drivers and other routines that allow a given embedded operating system, for example a real-time operating system (RTOS), to function in a given hardware environment, integrated with the embedded operating system. The board support package is usually provided by the SoC manufacturer, and it can be modified by the OEM.

<span class="mw-page-title-main">Error message</span> Computer message indicating an error

An error message is the information displayed when an unforeseen problem occurs, usually on a computer or other device. Modern operating systems with graphical user interfaces, often display error messages using dialog boxes. Error messages are used when user intervention is required, to indicate that a desired operation has failed, or to relay important warnings. Error messages are seen widely throughout computing, and are part of every operating system or computer hardware device. The proper design of error messages is an important topic in usability and other fields of human–computer interaction.

In computer science, fault injection is a testing technique for understanding how computing systems behave when stressed in unusual ways. This can be achieved using physical- or software-based means, or using a hybrid approach. Widely studied physical fault injections include the application of high voltages, extreme temperatures and electromagnetic pulses on electronic components, such as computer memory and central processing units. By exposing components to conditions beyond their intended operating limits, computing systems can be coerced into mis-executing instructions and corrupting critical data.

The Linux booting process involves multiple stages and is in many ways similar to the BSD and other Unix-style boot processes, from which it derives. Although the Linux booting process depends very much on the computer architecture, those architectures share similar stages and software components, including system startup, bootloader execution, loading and startup of a Linux kernel image, and execution of various startup scripts and daemons. Those are grouped into 4 steps: system startup, bootloader stage, kernel stage, and init process.

<span class="mw-page-title-main">Emulator</span> System allowing a device to imitate another

In computing, an emulator is hardware or software that enables one computer system to behave like another computer system. An emulator typically enables the host system to run software or use peripheral devices designed for the guest system. Emulation refers to the ability of a computer program in an electronic device to emulate another program or device.

<span class="mw-page-title-main">Kernel (operating system)</span> Core of a computer operating system

A kernel is a computer program at the core of a computer's operating system that always has complete control over everything in the system. The kernel is also responsible for preventing and mitigating conflicts between different processes. It is the portion of the operating system code that is always resident in memory and facilitates interactions between hardware and software components. A full kernel controls all hardware resources via device drivers, arbitrates conflicts between processes concerning such resources, and optimizes the utilization of common resources e.g. CPU & cache usage, file systems, and network sockets. On most systems, the kernel is one of the first programs loaded on startup. It handles the rest of startup as well as memory, peripherals, and input/output (I/O) requests from software, translating them into data-processing instructions for the central processing unit.

In computing, rebooting is the process by which a running computer system is restarted, either intentionally or unintentionally. Reboots can be either a cold reboot in which the power to the system is physically turned off and back on again ; or a warm reboot in which the system restarts while still powered up. The term restart is used to refer to a reboot when the operating system closes all programs and finalizes all pending input and output operations before initiating a soft reboot.

References

  1. "Microwave Error, Fault or Function Codes". products.geappliances.com. Retrieved 27 April 2018.
  2. "Craftsman Garage Door Opener Error Codes". www.searspartsdirect.com. Retrieved 27 April 2018.
  3. "Error Codes - Refrigerator". www.lg.com/us/support/. Retrieved 29 April 2018.
  4. "HP PCs - Testing for Hardware Failures". support.hp.com/us-en/. Retrieved 29 April 2018.