User manual
Table Of Contents
- COVER
- TABLE OF CONTENTS
- CHAPTER 1 GENERAL INFORMATION
- CHAPTER 2 DEBUG MONITOR DESCRIPTION
- CHAPTER 3 DEBUG MONITOR COMMANDS
- CHAPTER 4 ASSEMBLER/DISASSEMBLER
- CHAPTER 5 SYSTEM CALLS
- CHAPTER 6 DIAGNOSTIC FIRMWARE GUIDE
- APPENDIX A S-RECORD INFORMATION
- APPENDIX B SELF-TEST ERROR MESSAGES
- APPENDIX C USER CUSTOMIZATION
- LIST OF FIGURES
- LIST OF TABLES
- Table 2-1. Debugger Address Parameter Format
- Table 2-2. CPU32Bug Exception Vectors
- Table 3-1. Debug Monitor Commands
- Table 4-1. CPU32Bug Assembler Addressing Modes
- Table 5-1. CPU32Bug System Call Routines
- Table 6-1. MCU CPU Diagnostic Tests
- Table 6-2. Memory Diagnostic Tests
- Table B-1. Self-Test Error Messages
- Table C-1. CPU32Bug Customization Area
- Table C-2. MCU SCI Communication Formats
- Table C-3. Rev. A Chip Selection Summary
- Table C-4. Rev. B Chip Selection Summary
- Table C-5. BCC Rev. C Chip Selection Summary
- Table C-6. PFB Rev. C Compatibility
- CHAPTER 1 GENERAL INFORMATION
- CHAPTER 2 DEBUG MONITOR DESCRIPTION
- CHAPTER 3 DEBUG MONITOR COMMANDS
- 3.1 INTRODUCTION
- 3.2 BLOCK OF MEMORY COMPARE
- 3.3 BLOCK OF MEMORY FILL
- 3.4 BLOCK OF MEMORY MOVE
- 3.5 BREAKPOINT INSERT/DELETE
- 3.6 BLOCK OF MEMORY SEARCH
- 3.7 BLOCK OF MEMORY VERIFY
- 3.8 DATA CONVERSION
- 3.9 DUMP S-RECORDS
- 3.10 GO DIRECT (IGNORE BREAKPOINTS)
- 3.11 GO TO NEXT INSTRUCTION
- 3.12 GO EXECUTE USER PROGRAM
- 3.13 GO TO TEMPORARY BREAKPOINT
- 3.14 HELP
- 3.15 LOAD S-RECORDS FROM HOST
- 3.16 MACRO DEFINE/DISPLAY/DELETE
- 3.17 MACRO EDIT
- 3.18 MACRO EXPANSION LISTING ENABLE/DISABLE
- 3.19 MEMORY DISPLAY
- 3.20 MEMORY MODIFY
- 3.21 MEMORY SET
- 3.22 OFFSET REGISTERS DISPLAY/MODIFY
- 3.23 PRINTER ATTACH/DETACH
- 3.24 PORT FORMAT
- 3.25 REGISTER DISPLAY
- 3.26 COLD/WARM RESET
- 3.27 REGISTER MODIFY
- 3.28 REGISTER SET
- 3.29 SWITCH DIRECTORIES
- 3.30 TRACE
- 3.31 TRACE ON CHANGE OF CONTROL FLOW
- 3.32 TRANSPARENT MODE
- 3.33 TRACE TO TEMPORARY BREAKPOINT
- 3.34 VERIFY S-RECORDS AGAINST MEMORY
- CHAPTER 4 ASSEMBLER/DISASSEMBLER
- CHAPTER 5 SYSTEM CALLS
- 5.1 INTRODUCTION
- 5.2 SYSTEM CALL ROUTINES
- 5.2.1 Calculate BCD Equivalent Specified Binary Number
- 5.2.2 Parse Value, Assign to Variable
- 5.2.3 Check for Break
- 5.2.4 Timer Delay Function
- 5.2.5 Unsigned 32 x 32 Bit Divide
- 5.2.6 Erase Line
- 5.2.7 Input Character Routine
- 5.2.8 Input Line Routine
- 5.2.9 Input Serial Port Status
- 5.2.10 Unsigned 32 x 32 Bit Multiply
- 5.2.11 Output Character Routine
- 5.2.12 Output String Using Pointers
- 5.2.13 Print Carriage Return and Line Feed
- 5.2.14 Read Line to Fixed-Length Buffer
- 5.2.15 Read String Into Variable-Length Buffer
- 5.2.16 Return to CPU32Bug
- 5.2.17 Send Break
- 5.2.18 Compare Two Strings
- 5.2.19 Timer Initialization
- 5.2.20 Read Timer
- 5.2.21 Start Timer at T=0
- 5.2.22 Output String with Data
- 5.2.23 Output String Using Character Count
- CHAPTER 6 DIAGNOSTIC FIRMWARE GUIDE
- 6.1 INTRODUCTION
- 6.2 DIAGNOSTIC MONITOR
- 6.2.1 Monitor Start-Up
- 6.2.2 Command Entry and Directories
- 6.2.3 Help (HE)
- 6.2.4 Self Test (ST)
- 6.2.5 Switch Directories (SD)
- 6.2.6 Loop-On-Error Mode (LE)
- 6.2.7 Stop-On-Error Mode (SE)
- 6.2.8 Loop-Continue Mode (LC)
- 6.2.9 Non-Verbose Mode (NV)
- 6.2.10 Display Error Counters (DE)
- 6.2.11 Clear (Zero) Error Counters (ZE)
- 6.2.12 Display Pass Count (DP)
- 6.2.13 Zero Pass Count (ZP)
- 6.3 UTILITIES
- 6.4 CPU TESTS FOR THE MCU
- 6.5 MEMORY TESTS (MT)
- 6.6 BUS ERROR TEST
- APPENDIX A S-RECORD INFORMATION
- APPENDIX B SELF-TEST ERROR MESSAGES
- APPENDIX C USER CUSTOMIZATION

DEBUG MONITOR COMMANDS
M68CPU32BUG/D REV 1 3-8
BM Block of Memory Move BM
Now suppose the user would like to insert an NOP between the ADD.L instruction and the
ASR.L instruction. Block move the object code down two bytes to make room for the NOP.
CPU32Bug>BM 6002 600B 6004<CR>
Effective address: 00006002
Effective address: 0000600B
Effective address: 00006004
CPU32Bug>MD 6000 600C;DI<CR>
00006000 D480 ADD.L D0,D2
00006002 E2A2 ASR.L D1,D2
00006004 E2A2 ASR.L D1,D2
00006006 2602 MOVE.L D2,D3
00006008 4E4F SYSCALL OUTSTR
0000600C 4E71 NOP
Now the user need simply enter the NOP at address 6002.
CPU32Bug>MM 6002;DI <CR>
00006002 E2A2 ASR.L D1,D2 ? NOP<CR>
00006002 4E71 NOP
00006004 E2A2 ASR.L D1,D2 ? .<CR>
CPU32Bug>
CPU32Bug>MD 6000 600C;DI<CR>
00006000 D480 ADD.L D0,D2
00006002 4E71 NOP
00006004 E2A2 ASR.L D1,D2
00006006 2602 MOVE.L D2,D3
00006008 4E4F TRAP #15
0000600C 4E71 NOP
CPU32Bug>
DEBUG MONITOR COMMANDS
M68CPU32BUG/D REV 1 3-9
BR Breakpoint Insert BR
NOBR
Breakpoint Delete NOBR
3.5 BREAKPOINT INSERT/DELETE
BR {<addr>[:<count> ]}
NOBR [<addr>]
The BR command allows the user to set a target code instruction address as a breakpoint address
for debugging purposes. Enter only the BR command to display the current breakpoints in the
breakpoint table, or enter {<addr> [:<count> ]} one or more times to set multiple breakpoints. If
during target code execution a breakpoint with 0 count is found, the target code state is saved in
the target registers and control returned to CPU32Bug. This allows the user to see the actual state
of the processor at selected instructions in the code.
Breakpoints are normally only used in RAM, but they may be used in ROM when operating
under the TRACE commands (see T, TC, and TT commands for details).
As many as eight breakpoints can be defined. Breakpoints are kept in a table which is displayed
each time either BR or NOBR is used. If an address is specified with the BR command, that
address is added to the breakpoint table. The count field specifies how many times the instruction
at the breakpoint address is fetched before a breakpoint is taken. The count field defaults to
hexidecimal input, unless a numeric identifier prefix is used. The count, if greater than zero, is
decremented with each fetch. Every time a breakpoint with zero count is found, a breakpoint
handler routine prints the CPU state on the screen and control is returned to CPU32Bug. The
maximum <count> is a 32-bit value ($FFFFFFFF = 4,294,967,295).
NOBR is used to delete breakpoints from the breakpoint table. To remove a specific address
from the breakpoint table, enter NOBR followed by the address. If NOBR <CR> is entered then
all entries are deleted from the breakpoint table and the empty table is displayed.
EXAMPLE
CPU32Bug>BR 4000,4200 4700:&12 <CR> Set multiple breakpoints
BREAKPOINTS
00004000 00004200
00004700:C
CPU32Bug>NOBR 4200 <CR>
Delete one breakpoint
BREAKPOINTS
00004000 00004700:C
CPU32Bug>NOBR <CR>
Delete all breakpoints
BREAKPOINTS
CPU32Bug>
Fr
eescale S
emiconduct
or
, I
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
nc...