Debuggers and in-circuit emulators are devices designed to perform the debugging of code in software and provide a window into the embedded system.
What is a debugger?
When connected to a device, hardware like an in-circuit debugger allows programmers to run a programme on their devices until it reaches a breakpoint, a set pause point in the code. At this stage, the programme stops, and the debugger takes over, allowing programmers to move through the code step-by-step to find issues, inspect, and modify variables or registers directly on the device.
What are in-circuit emulators?
Similarly, a hardware like an in-circuit emulator facilitates debugging. However, this is achieved by allowing one computer system to mimic the functionality of a target hardware and its peripherals. Through this, programmers can replicate and troubleshoot conditions that are challenging to recreate on actual hardware. As an emulator connects through standard interfaces like JTAG or SWD, it also does not involve alterations to the target hardware.
Difference between debugger and in-circuit emulators
Though similar in function, an in-circuit emulator substitutes a circuit’s actual target chip, while a debugger incorporates debugging hardware into the target chip itself to achieve similar capabilities. Whether to buy a debugger or emulator depends on the project's needs and the budget. Emulators are ideal for complex hardware requiring precise emulation and real-time debugging, while debuggers are better suited for simpler setups prioritising cost over real-time firmware performance.
How do debuggers and in-circuit emulators work?
Debuggers and in-circuit emulators operate by making use of the processor to carry out the main function of the system and support debugging operations. This allows the programmer to use the emulator to load and run the programme onto the embedded system. It also allows the viewing and changing of information used by the system software.
There are advantages to using debuggers and in-circuit emulators, as most embedded systems contain software and hardware elements. This allows the in-circuit emulator software element to be run so it can be tested on the hardware. This stage also gives the added convenience of helping the developer isolate faulty code.
Types of debuggers and in-circuit emulators
RS Malaysia offers a variety of debugger and in-circuit emulator kits, including variations of different types of kit offerings alongside other tools like network testers. You can also filter based on what they can be used with.
The types of debuggers available are in-circuit debuggers. These are hardware devices that connect between a computer and a target microcontroller test system. They are used to debug real-time applications with ease and speed. This can enable programmers to create breakpoints on the PIC (photonic integrated circuit), run code, single step, review variables, and register hardware.
Applications
Debuggers and in-circuit emulators have a wide range of application uses, such as: