A flash emulator or flash memory emulator is a tool that is used to temporarily replace
flash memory
Flash memory is an electronic non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for the NOR and NAND logic gates. Both u ...
or
ROM chips in an
embedded device
An embedded system is a 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'' a ...
for the purpose of
debugging
In computer programming and software development, debugging is the process of finding and resolving ''bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems.
Debugging tactics can involve in ...
embedded software
Embedded software is computer software, written to control machines or devices that are not typically thought of as computers, commonly known as embedded systems. It is typically specialized for the particular hardware that it runs on and has time ...
. Such tools contain
Dual-ported RAM
Dual-ported RAM (DPRAM) is a type of random-access memory that allows multiple reads or writes to occur at the same time, or nearly the same time, unlike single-ported RAM which allows only one access at a time.
Video RAM or VRAM is a common for ...
, one port of which is connected to a target system (i.e. system, that is being debugged), and second is connected to a host (i.e. PC, which runs debugger). This allows the programmer to change executable code while it is running, set
break point
Break Point may refer to:
Arts and media Film
* ''Break Point'' (film), a 2014 American comedy film directed by Jay Karas.
Television
* ''Break Point'' (2021 TV series), a 2021 Indian documentary series
* ''Break Point'' (2023 TV series), a ...
s, and use other advanced debugging techniques on an embedded system, where such operations would not be possible otherwise.
This type of tool appeared in 1980s-1990s, when most embedded systems were using discrete ROM (or later flash memory) chip, containing executable code. This allowed for easy replacing of ROM/flash chip with emulator. Together with excellent productivity of this tool this had driven an almost universal use of it among embedded developers. Later, when most embedded systems started to include both processor and flash on a single chip for cost and IP protection reasons, thus making external flash emulator tool impossible, search for a replacement tool started. And as often happens when a direct replacement is being searched for, many replacement techniques contain words "flash emulation" in them, for example,
TI's "Flash Emulation Tool" debugging interface (FET) for its MSP430 chips, or more generic
in-circuit emulator
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 ca ...
s, even though none of two above had anything to do with flash or emulation as it is.
Flash emulator could also be retrofitted to an embedded system to facilitate reverse engineering. For example, that was main hardware instrument in reverse engineering Wii gaming console bootloader.
See also
*
In-circuit emulator
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 ca ...
References
{{Reflist
External links
Jack Ganssle's Beginner's Corner articleHow to choose an in-circuit emulator By Jonathan Hector
Embedded systems
Debugging