Background Debug Mode interface
   HOME

TheInfoList



OR:

Background debug mode (BDM) interface is an electronic interface that allows debugging of
embedded system 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'' ...
s. Specifically, it provides in-circuit debugging functionality in microcontrollers. It requires a single wire and specialized electronics in the system being debugged. It appears in many
Freescale Semiconductor Freescale Semiconductor, Inc. was an American semiconductor manufacturer. It was created by the divestiture of the Semiconductor Products Sector of Motorola in 2004. Freescale focused their integrated circuit products on the automotive, embe ...
products. The interface allows a ''Host'' to manage and query a ''target''. Specialized hardware is required in the target device. No special hardware is required in the host; a simple bidirectional I/O pin is sufficient.


I/O signals

The signals used by BDM to communicate data to and from the target are initiated by the host processor. The host negates the transmission line, and then either * Asserts the line sooner, to output a 1, * Asserts the line later, to output a 0, * Tri-states its output, allowing the target to drive the line. The host can sense a 1 or 0 as an input value. At the start of the next bit time, the host negates the transmission line, and the process repeats. Each bit is communicated in this manner. In other words, the increasing complexity of today's software and hardware designs is leading to some fresh approaches to debugging. ''Silicon manufacturers offer more and more on-chip debugging features for emulation of new processors''. This capability, implemented in various processors under such names as background debug mode (BDM), JTAG and on-chip in-circuit emulation, puts basic debugging functions on the chip itself. With a BDM (1 wire interface) or JTAG (standard JTAG) debug port, you control and monitor the microcontroller solely through the stable on-chip debugging services. This debugging mode runs even when the target system crashes and enables developers to continue investigating the cause of the crash.


Microcontroller application development

A good development tool environment is important to reduce total development time and cost. Users want to debug their application program under conditions that imitate the actual setup of their system. Because of that, the capability to debug a user program in an actual target system is required. This is known as in-circuit debugging. Furthermore, most new MCUs have nonvolatile memory such as flash memory so that programming code on the target system is also required. This is known as
in-circuit programming In-system programming (ISP), or also called in-circuit serial programming (ICSP), is the ability of some programmable logic devices, microcontrollers, and other embedded devices to be programmed while installed in a complete system, rather th ...
. To support in-circuit debugging and programming requirements, the HC08 Family has the monitor mode and the HCS08 and RS08 utilize a background debug mode (BDM). The background debug hardware on the HCS08 consists of a background debug controller (BDC) and debug module (DBG). The background debug hardware on the RS08 consists of the background debug controller (BDC) only.


BDM commands

The BDM host can issue commands with parameters to the target. Some commands allow reading or writing of blocks of the target's memory, individual registers in the CPU, or registers not available to the target. Examples include: {, class="wikitable" , + BDM commands , - , READ_BYTE , , Read a byte from memory , - , WRITE_BYTE , , Write a byte to memory , - , GO , , Start/resume executing at current program counter location , - , WRITE_PC , , Write a value to the program counter , - , READ_PC , , Read the value of the program counter , - , WRITE_X , , Write a value to the index register , - , READ_X , , Read the value of the index register , - , READ_SP , , Read the value of the stack pointer


BDM functions

Depending on the target part, the BDM controller may feature a hardware
breakpoint In software development, a breakpoint is an intentional stopping or pausing place in a program, put in place for debugging purposes. It is also sometimes simply referred to as a pause. More generally, a breakpoint is a means of acquiring know ...
register. The register holds a value indicating an
address An address is a collection of information, presented in a mostly fixed format, used to give the location of a building, apartment, or other structure or a plot of land, generally using political boundaries and street names as references, along ...
in memory. When the target part's CPU accesses that location in memory, the BDM hardware can take control of the target part, stop program execution, and begin operating in background mode.


References

* Freescale Semiconductor Inc. MC9RS08KA2 Data Sheet (MC9RS08KA2, Rev. 1.0). * Freescale Semiconductor Inc
CPU12 Reference Manual
* Freescale Semiconductor Inc
RS08 Core Reference Manual
* Freescale Semiconductor Inc
HCS08 Family Reference Manual
Embedded systems