In low-cost or high-volume electronics, debug ports are sometimes left enabled to avoid costs of design changes, and can be used by modders and hackers to gain control of the device or access to extra functionality.
Debug ports can provide a range of useful features for developers including accessing internal state of the microprocessor which helps developers understand any exceptions occurring, memory transfers happening, and other events taking place during the normal execution of the program which otherwise may have been difficult to observe.
Since around 2010, a broad class of MCUs now have integrated USB peripherals with device firmware upgrade (DFU) in factory ROM.
[3] This class of MCUs appeals to hobbyists who do not wish to invest in the hardware tools needed to access specialized debug ports such as JTAG.
A bad firmware load is easily recovered by holding a special pin in the active state, which caused the chip to boot up using its internal factory ROM, which makes a programming interface available through its built-in USB controller.