Chapter 15 Background Debug Module (S12XBDMV2)
MC9S12XDP512 Data Sheet, Rev. 2.17
578
Freescale Semiconductor
15.4
Functional Description
The BDM receives and executes commands from a host via a single wire serial interface. There are two
types of BDM commands: hardware and rmware commands.
Hardware commands are used to read and write target system memory locations and to enter active
includes all memory that is accessible by the CPU.
Firmware commands are used to read and write CPU resources and to exit from active background debug
accumulator (D), X index register (X), Y index register (Y), stack pointer (SP), and program counter (PC).
Hardware commands can be executed at any time and in any mode excluding a few exceptions as
“Security”). Firmware commands can only be executed when the system is not secure and is in active
background debug mode (BDM).
15.4.1
Security
If the user resets into special single chip mode with the system secured, a secured mode BDM rmware
lookup table is brought into the map overlapping a portion of the standard BDM rmware lookup table.
The secure BDM rmware veries that the on-chip EEPROM and Flash EEPROM are erased. This being
the case, the UNSEC and ENBDM bit will get set. The BDM program jumps to the start of the standard
BDM rmware and the secured mode BDM rmware is turned off and all BDM commands are allowed.
If the EEPROM or Flash do not verify as erased, the BDM rmware sets the ENBDM bit, without asserting
UNSEC, and the rmware enters a loop. This causes the BDM hardware commands to become enabled,
but does not enable the rmware commands. This allows the BDM hardware to be used to erase the
EEPROM and Flash.
BDM operation is not possible in any other mode than special single chip mode when the device is secured.
The device can only be unsecured via BDM serial interface in special single chip mode. For more
information regarding security, please see the S12X_9SEC Block Guide.
15.4.2
Enabling and Activating BDM
The system must be in active BDM to execute standard BDM rmware commands. BDM can be activated
only after being enabled. BDM is enabled by setting the ENBDM bit in the BDM status (BDMSTS)
register. The ENBDM bit is set by writing to the BDM status (BDMSTS) register, via the single-wire
interface, using a hardware command such as WRITE_BD_BYTE.