AX8052 Debugger Software Manual

Application Note AND9370/D
AX8052 Debugger
Software Manual
Revision 2
2
TA B L E
OF
CONTENTS
1.Introduction........................................................................................................... 6
2.AXSDB...................................................................................................................6
2.1.State Handling.................................................................................................7
2.2.Command Line Arguments.................................................................................7
2.3.Core Commands...............................................................................................8
2.3.1.traceio.....................................................................................................8
2.3.2.list_targets...............................................................................................9
2.3.3.disconnect_target......................................................................................9
2.3.4.connect_target..........................................................................................9
2.3.5.target_serial............................................................................................. 9
2.3.6.read_mem..............................................................................................10
2.3.7.write_mem............................................................................................. 10
2.3.8.fill_mem.................................................................................................11
2.3.9.read_pc..................................................................................................12
2.3.10.write_pc............................................................................................... 12
2.3.11.cpustate............................................................................................... 12
2.3.12.connect.................................................................................................13
2.3.13.disconnect.............................................................................................13
2.3.14.hwreset................................................................................................ 13
2.3.15.run.......................................................................................................14
2.3.16.stop..................................................................................................... 14
2.3.17.reset.................................................................................................... 14
2.3.18.step..................................................................................................... 14
2.3.19.stepline................................................................................................ 14
2.3.20.stepinto................................................................................................15
2.3.21.stepout.................................................................................................15
2.3.22.writeback..............................................................................................15
2.3.23.bulkerase..............................................................................................15
2.3.24.writekey............................................................................................... 16
2.3.25.writeprotect...........................................................................................16
2.3.26.eraseprotect..........................................................................................16
3
2.3.27.load_mem.............................................................................................16
2.3.28.breakpoint............................................................................................ 17
2.3.29.disass...................................................................................................18
2.3.30.modules................................................................................................18
2.3.31.sourcelines............................................................................................18
2.3.32.symbols................................................................................................19
2.3.33.quit......................................................................................................19
2.3.34.registers............................................................................................... 19
2.3.35.chips....................................................................................................19
2.3.36.pinemul................................................................................................20
2.3.37.cputrace............................................................................................... 20
2.3.38.profile...................................................................................................21
2.4.Variables.......................................................................................................21
2.4.1.compilervendor........................................................................................21
2.5.TCL I/O Channels........................................................................................... 22
2.5.1.cpustat...................................................................................................22
2.5.2.dbglink...................................................................................................22
2.6.Convenience Commands..................................................................................22
2.6.1.inforeg................................................................................................... 23
2.6.2.ir...........................................................................................................23
2.6.3.sr.......................................................................................................... 23
2.6.4.ri...........................................................................................................23
2.6.5.aload......................................................................................................23
2.6.6.rload......................................................................................................23
2.6.7.berase....................................................................................................23
2.6.8.waitcpustate........................................................................................... 24
2.6.9.waitcpustopped....................................................................................... 24
2.6.10.waitcpurunning......................................................................................24
3.Command Line FLASH Programming........................................................................24
4.Contact Information...............................................................................................26
www.onsemi.com
AND9370/D
4
Introduction
1. I N T R O D U C T I O N
The ON Semiconductor AX8052 line of fully integrated embedded microcontrollers feature
advanced debug features that significantly ease the task of writing firmware compared to
other 8052 compatible microcontrollers. The ON Semiconductor AX8052 Debug System
consists of the following components:
•
The ON Semiconductor AX8052 Debug Interface. This device connects the AX8052
Microcontroller Debug Interface, consisting of the Signals RESET_N, DBG_EN, PB6,
PB7, GND, VCCIO to a standard PC USB Interface.
•
The AXSDB command line debugger processes commands and executes them on the
Microcontroller using the Debug Interface. The AXSDB debugger can be directly
used, or through the AxCode::Blocks IDE. It is fully scriptable thanks to its built-in
Tool Control Language (TCL) interpreter.
•
The AxCode::Blocks IDE. AxCode::Blocks is a customized version of the popular
Code::Blocks IDE. It is documented elsewhere, see AxCodeBlocks.pdf for an
introduction. Users wishing to develop with the AxCode::Blocks IDE need not be
familiar with axsdb debugger commands, and can skip the remainder of this
document.
2. AXSDB
AXSDB is the ON Semiconductor AX8052 Symbolic Command Line debugger. It is fully
scriptable, thanks to its built-in Tool Control Language (TCL) scripting engine. It is
suggested that the reader consults the Documentation section on the TCL homepage,
http://www.tcl.tk, for information on the standard TCL commands. The remainder of this
document will describe the AX8052 specific commands AXSDB adds to the standard TCL
commands. AX8052 specific Commands come in two flavours:
•
Core commands implemented in the Debugger DLL, libaxsdb-0.dll
•
Convenience Commands implemented in TCL on top of the core commands,
contained in axsdb.tcl. These commands can be changed by the user by changing
axsdb.tcl.
All commands, variables and channels are defined in the namespace axsdb. axsdb.tcl
imports them into the global namespace.
www.onsemi.com
AND9370/D
AXSDB
2.1. S T A T E H A N D L I N G
When AXSDB is started, it responds with a prompt. The debugger is then ready to accept
user commands. It does however not yet have access to any hardware.
First, AXSDB must be connected to any AX8052 Debug Interface, connected to an USB port
of the Computer running AXSDB. The commands list_targets, connect_target, and
disconnect_target manage AXSDB's connections to the active Debug Interface. Note that
the default axsdb.tcl automatically connects to the Debug Interface if it finds exactly one
connected to the PC. Once AXSDB has connected to a Debug Interface, it is configured to be
inactive, i.e. RESET_N is driven high, DBG_EN is driven low, and PB6 and PB7 are set to
high-impedance. In this state a target board may be connected to the debug interface
without disturbing the target microprocessor.
In order to actually start debugging, AXSDB needs to be connected to the microcontroller.
The commands connect and disconnect manage the connection to the microcontroller
hardware debug interface.
Once connected to the microcontroller, commands that control the microcontroller state can
be used, such as run, step, stop, etc.
2.2. C O M M A N D L I N E A R G U M E N T S
‒‒norc
Disable the processing of the normal startup script axsdb.tcl; Convenience
Commands documented below will not be available.
‒‒script <tclscript> Add the given script to the TCL scripts evaluated at debugger startup.
‒‒listserials
List the connected debug interface serial numbers adn exit.
‒‒serial <serial>
Connect to debug interface with the given serial number.
‒‒flashprog <file>
Program the microcontroller flash with the given file and exit.
‒‒ignorecalibration
Normally, flashprog saves Microcontroller Calibration data if present in the last 1k
sector of the FLASH memory. If this option is given, Calibration data is erased.
‒‒oldkeys <keylist> This option specifies the old debugger keys to try in order to read out (and
www.onsemi.com
AND9370/D
5
6
AXSDB
preserve) Microcontroller Calibration data.
‒‒newkey <key>
When ‒‒flashprog is given, use this key to protect the newly flashed
firmware
‒‒hwreset
Perform a hardware reset (pulse RESET_N low)
‒‒debuglink
Start as DebugLink relay. Standard input is copied to the debug link, and debug
link is copied to standard output. May be combined with ‒‒hwreset.
Terminates when standard input is closed.
‒‒savecalib <file>
Save calibration data (if present in the last 1k sector of the FLASH memory) into
the file given
‒‒loadcalib <file>
Load calibration data from the file given into the last 1k sector of the FLASH
memory
‒‒version
Print the version number and exit
‒‒installdir
Print the installation directory and exit
‒‒help
Display help and exit.
2.3. C O R E C O M M A N D S
2.3.1.
TRACEIO
The traceio command allows an event log to be written into a file; this is intended to help
debugging axsdb.
Arguments:
‒‒off
turn logging off
‒‒error
log only error events
‒‒normal
log normal and error events
www.onsemi.com
AND9370/D
AXSDB
‒‒poll
log polling in addition to normal and error events
‒‒lowlevelio log everything, including low level IO operations
‒‒stderr
Log to standard error instead of a supplied file name
‒‒stdout
Log to standard error instead of a supplied file name
<filename>
Open the given file for writing and use it as log file
2.3.2.
LIST_TARGETS
list_targets returns a TCL list containing the serial numbers of all connected AX8052
Debug Interfaces.
2.3.3.
DISCONNECT_TARGET
disconnect_target disconnects axsdb from the currently connected AX8052 Debug
Interface. The Debug Interface is set such that it does not interfere with running a
connected microcontroller.
2.3.4.
CONNECT_TARGET
connect_target connects axsdb to the specified AX8052 Debug Interface.
Arguments:
<serial>
2.3.5.
The serial number of the debug interface to connect to.
TARGET_SERIAL
target_serial returns the serial number of the currently connected AX8052 Debug
Interface, or an empty string if no Debug Interface is currently connected.
www.onsemi.com
AND9370/D
7
8
AXSDB
2.3.6.
READ_MEM
read_mem reads one or more bytes from microcontroller memory. It can only be issued if
the microcontroller is in halt state. The read results are returned in a TCL list.
Arguments:
‒‒code, ‒c
Read from code address space
‒‒direct, ‒d
Read from direct address space; addresses below 128 address the internal RAM
(addresses from 0 to 31 address the four banks of R0‒R7 registers),
addresses above or equal 128 address the on chip special function
registers.
‒‒indirect, ‒i
Read from indirect address space; this option adresses the internal RAM
‒‒external, ‒e
Read from external address space
‒‒flash, ‒f
Read from flash
‒‒sfr, ‒s
Read from sfr address space
‒‒pagedexternal, ‒p Read from paged external address space; this is the same address space as
external, however only the low address byte is specified. The high byte is taken
from the XPAGE special function register
<address>
The address to read from
<length>
The number of bytes to read; if the length is omitted, one is assumed
2.3.7.
WRITE_MEM
write_mem writes one or more bytes to microcontroller memory. It can only be issued if the
microcontroller is in halt state.
Arguments:
‒‒code, ‒c
Write to code address space
‒‒direct, ‒d
Write to direct address space; addresses below 128 address the internal RAM
www.onsemi.com
AND9370/D
AXSDB
(addresses from 0 to 31 address the four banks of R0‒R7 registers),
addresses above or equal 128 address the on chip special function
registers.
‒‒indirect, ‒i
Write to indirect address space; this option adresses the internal RAM
‒‒external, ‒e
Write to external address space
‒‒flash, ‒f
Write to flash
‒‒sfr, ‒s
Write to sfr address space
‒‒pagedexternal, ‒p Write to paged external address space; this is the same address space as
external, however only the low address byte is specified. The high byte is taken
from the XPAGE special function register
<address>
The address to write to
<data...>
The data bytes to write; multiple bytes may be specified
2.3.8.
FILL_MEM
fill_mem writes a single data byte into one or more consecutive bytes of microcontroller
memory. It can only be issued if the microcontroller is in halt state.
Arguments:
‒‒code, ‒c
Write to code address space
‒‒direct, ‒d
Write to direct address space; addresses below 128 address the internal RAM
(addresses from 0 to 31 address the four banks of R0‒R7 registers),
addresses above or equal 128 address the on chip special function
registers.
‒‒indirect, ‒i
Write to indirect address space; this option adresses the internal RAM
‒‒external, ‒e
Write to external address space
‒‒flash, ‒f
Write to flash
www.onsemi.com
AND9370/D
9
10
AXSDB
‒‒sfr, ‒s
Write to sfr address space
‒‒pagedexternal, ‒p Write to paged external address space; this is the same address space as
external, however only the low address byte is specified. The high byte is taken
from the XPAGE special function register
<address>
The address to write to
<length>
The number of data bytes to write
<data>
The data byte to write; it is optional. If not given, the default is to write 0xff into
code and flash address space, and 0x00 otherwise.
2.3.9.
READ_PC
read_pc returns the program counter of the microcontroller. Returned values may be
unreliable unless the microcontroller is in halt state.
2.3.10.
WRITE_PC
write_pc sets the program counter of the microcontroller. It can only be issued if the
microcontroller is in halt state.
2.3.11.
CPUSTATE
cpustate returns a list or the current state of the microcontroller.
Arguments:
‒‒all, ‒a
Return a TCL list of all recent state transitions. Each list element is in itself a list,
containing the state (as string) and a timestamp.
‒‒last, ‒l
Return the current state as string.
‒‒text, ‒‒iso8601, ‒tReturn timestamps as ISO8601 strings
‒‒numeric, ‒n
Return timestamps as Unix time (number of seconds since 1970).
www.onsemi.com
AND9370/D
AXSDB
2.3.12.
CONNECT
connect connects axsdb to the microcontroller, i.e. it causes axsdb to start controlling the
microcontroller.
Arguments:
<unlockkeys>
2.3.13.
Since the debug interface can potentially reveal sensitive information (such as
the firmware), it can be protected from unauthorized use by a 64-bit access key.
If the microcontroller is protected, then the key must be supplied to connect. If
multiple keys are given, they are tried in sequence. If the microcontroller is
unprotected (i.e. it has a key of 0xffffffffffffffff), then no key needs to be supplied.
DISCONNECT
disconnect disconnects axsdb from the microcontroller, i.e. the microcontroller is released
to run on its own.
2.3.14.
HWRESET
hwreset controls the RESET_N line from the debug interface to the microcontroller.
Arguments:
‒‒pulse, ‒p
RESET_N is toggled low and then high again; the microcontroller is
disconnected.
‒‒off, ‒f
RESET_N is driven high (inactive)
‒‒on, ‒o
RESET_N is driven low (active); the microcontroller is disconnected
2.3.15.
RUN
run causes the microcontroller to start executing at the current PC value. Temporary
breakpoint addresses may be given; these breakpoints will only be active during run and
will be deleted as soon as the CPU stops.
www.onsemi.com
AND9370/D
11
12
AXSDB
Arguments:
‒‒setaddr, ‒a <addr>
Set the breakpoint address
‒‒symbol, ‒s <sym>
Set the breakpoint address to the address of the symbol <sym>. The symbol
must be located in code address space.
‒‒sourceline, ‒l <sl>
Set the breakpoint address to the source line <sl>
2.3.16.
STOP
stop halts microcontroller instruction execution.
2.3.17.
RESET
reset performs a (software) reset of the microcontroller.
2.3.18.
STEP
step causes the microcontroller to execute the instruction at the current PC (or schedule an
enabled interrupt), but halt again after executing one instruction.
2.3.19.
STEPLINE
stepline causes the microcontroller to execute instructions until the current C language
source line completes execution. It steps through function calls if embedded in the current
C language source line. The debugger steps instructions, so execution is significantly slower
than real-time.
2.3.20.
STEPINTO
stepinto causes the microcontroller to execute the instructions until the PC leaves the
current C language source line. Function calls stop the execution. The debugger steps
instructions, so execution is significantly slower than real-time.
www.onsemi.com
AND9370/D
AXSDB
2.3.21.
STEPOUT
stepout causes the microcontroller to complete execution of the current C language
function. The debugger steps instructions, so execution is significantly slower than realtime.
2.3.22.
WRITEBACK
In order to speed up operation of the debugger, axsdb contains caches of all memory of the
microcontroller that can safely be cached. Consequently, write_mem, load and other
commands only directly modify the caches. writeback causes the dirty caches to be written
to the chip, for example the program loaded by load. writeback can only be issued if the
microcontroller is in halt state.
2.3.23.
BULKERASE
bulkerase causes the microcontroller to be safely erased. All FLASH content is lost.
Arguments:
‒‒ignorecal, ‒i
Normally, if calibration data is available in the calibration sector, it is saved before
the bulk erase and restored after the bulk erase. Specifying this option discards
the calibration sector.
‒‒keys, ‒k
<unlockkeylist>
The old key to be used to access the calibration sector. Multiple keys may be
given, in which case they are tried in sequence.
2.3.24.
WRITEKEY
Since the debug interface allows access to sensitive information (like the firmware), it can
be protected from unauthorized use by a 64-bit key. writekey writes the key into the
microcontroller.
Arguments:
<unlockkey>
The key to be requested before granting debug interface access
www.onsemi.com
AND9370/D
13
14
AXSDB
2.3.25.
WRITEPROTECT
The FLASH is organised as 64 1kByte sectors. FLASH contents can be protected with sector
granularity. writeprotect protects the contents of a FLASH sector from overwriting. The
only way to restore writes to protected sectors is by completely erasing the device by
issuing a bulk erase.
Arguments:
<address>
2.3.26.
An address that lies within the sector to be protected
ERASEPROTECT
The FLASH is organised as 64 1kByte sectors. FLASH contents can be protected with sector
granularity. eraseprotect protects the contents of a FLASH sector from erasing. The only
way to restore erase functionality of protected sectors is by completely erasing the device
by issuing a bulk erase.
Arguments:
<address>
2.3.27.
An address that lies within the sector to be protected
LOAD_MEM
load_mem reads a file containing binary code and/or debugging information into the
debugger.
Arguments:
‒‒debug, ‒‒symbols, ‒d When used together with ‒‒omf51, only load the symbolic debug
information from the OMF51 file, and discard the binary code.
‒‒omf51, ‒o
Load an OMF51 format file
‒‒hex, ‒‒ihex, ‒i
Load an Intel Hex format file
‒‒cdb, ‒c
Load a CDB format file
www.onsemi.com
AND9370/D
AXSDB
2.3.28.
BREAKPOINT
breakpoint without argument returns a list of currently set breakpoints, their status (i.e.
whether they are enabled or disabled), their count and their associated TCL script.
breakpoint with the following arguments manipulate the breakpoint list.
Arguments:
‒‒disable, ‒d
Disable the breakpoint
‒‒enable, ‒e <num>
Enable the breakpoint if <num> is nonzero or absent, disable otherwise
‒‒setaddr, ‒a <addr>
Set the breakpoint address
‒‒symbol, ‒s <sym>
Set the breakpoint address to the address of the symbol <sym>. The symbol
must be located in code address space.
‒‒sourceline, ‒l <sl>
Set the breakpoint address to the source line <sl>
‒‒count, ‒c <count>
Ignore Breakpoint for <count> times before stopping the microcontroller
‒‒script, ‒S <script>
Execute the TCL script <script> when hitting the breakpoint. The Script is
executed in the global context.
‒‒new, ‒n
Create a new breakpoint
‒‒index, ‒i <nr>
Manipulate Breakpoint Number <nr>
‒‒delete, ‒D <nr>
Delete Breakpoint Number <nr>
2.3.29.
DISASS
disass disassembles one or multiple instructions and returns the result as a list (if one
instruction is disassembled), or as a list of lists. Each instruction is described by the
following list elements: the address (numeric), the opcode (as hex string), the symbol (with
or without offset) closest to the address, the source line (with or without offset) closest to
the address, and the disassembled instruction string.
www.onsemi.com
AND9370/D
15
16
AXSDB
Arguments:
‒‒symbol, ‒s
The address argument is a symbol
‒‒sourceline, ‒L
The address argument is a source line
‒‒lines, ‒l <ln>
Disassemble <ln> instructions. If this argument is absent, disassemble just
one.
<address>
The address argument. It must be numeric, unless ‒s or ‒L or their long
forms is given, in which case it must be a string. If the address is
omitted, the current PC is taken
2.3.30.
MODULES
modules returns a list of the source code modules.
Arguments:
‒‒asm, ‒a
2.3.31.
Return the assembly modules. If absent, return the C modules
SOURCELINES
sourcelines returns a list of the source code lines.
Arguments:
‒‒asm, ‒a
Return only assembly source lines
‒c
Return only C source lines
<addr>
Return the source line that contains this address
2.3.32.
SYMBOLS
symbols returns a list of the symbols.
www.onsemi.com
AND9370/D
AXSDB
2.3.33.
QUIT
quit exits the debugger.
Arguments:
<exitcode>
2.3.34.
Return with this exit code. Optional.
REGISTERS
registers returns a list of the chip registers.
2.3.35.
CHIPS
chips sets or returns the currently selected chip(s)
Arguments:
‒‒autodetect, ‒a
Autodetect the chip connected to the debugger.
‒‒clear, ‒c
Clear the chip. This will clear the register list.
‒‒set, ‒s
Manually set the chip
‒‒all, ‒A
Returns all available chip models
‒‒current, ‒C
Returns the currently selected chip(s).
2.3.36.
PINEMUL
pinemul controls the pin emulation feature. While debugging, PB6 and PB7 are not
available as GPIO, they are used by the debug interface. The pin emulation feature however
still allows the GPIO state of the PB6 and PB7 pins to be read and controlled through the
debugger software.
Arguments:
www.onsemi.com
AND9370/D
17
18
AXSDB
‒‒script, ‒s
Set the script to be evaluated whenever the pin emulation state changes.
The script may be deleted by setting it to an empty string.
‒‒getscript, ‒g
Return the script that is evaluated whenever the pin emulation state
changes.
‒‒set-b6
Set the PB6 drive value
‒‒clear-b6
Set the PB6 drive value to zero
‒‒set-b7
Set the PB7 drive value
‒‒clear-b7
Set the PB7 drive value to zero
‒‒enable
Enable the pin emulation feature
‒‒disable
Disable the pin emulation feature
Return value:
Unless the script is set or requested, pinemul returns a list with the following seven entries:
PORTB.6, PORTB.7, DIRB.6, DIRB.7, Debugger Drive PB6, Debugger Drive PB7, Enable
2.3.37.
CPUTRACE
cputrace returns the CPU trace buffer.
Arguments:
‒‒length, ‒l
Set or return the length of the trace buffer.
Return value:
If ‒‒length is given, cputrace returns the length of the trace buffer, otherwise it returns the
trace buffer entries accumulated since the last call to cputrace.
www.onsemi.com
AND9370/D
AXSDB
2.3.38.
PROFILE
profile controls the profiler.
Arguments:
‒‒disable, ‒d
Disable the profiler.
‒c
Enable profiling of C source lines
‒‒asm, ‒a
Enable profiling of assembly source lines
Return value:
If no argument is given, profile returns and clears the accumulated profile buffer.
2.4. V A R I A B L E S
2.4.1.
COMPILERVENDOR
There is no standard Application Binary Interface (ABI) in the 8052 ecosystem. Different
compiler use different representations of data elements, especially “generic” pointers
(pointers containing an address space tag in addition to the actual address). In order for the
debugger to be able to access symbolic information, it needs to know which compiler
generated the code in question.
Keil is selected by default, unless a cdb file is loaded, in which case the default is sdcc.
Valid values:
sdcc
Small Devices C Compiler (http://sdcc.sourceforge.net)
keil
Keil (http://www.keil.com/)
iar
IARSystems (http://www.iar.se)
wickenhaeuser
Wickenhäuser (http://www.wickenhaeuser.de/)
www.onsemi.com
AND9370/D
19
20
AXSDB
noice
NoICE
2.5. TCL I/O C H A N N E L S
AXSDB provides two TCL I/O Channels.
2.5.1.
CPUSTAT
Reading a single character from cpustat returns the state of the microprocessor. The
channel issues a read event if the microprocessor status changes. The channel is not
writeable.
2.5.2.
DBGLINK
dbglink is the interface to the microprocessor DebugLink UART. Characters written to
dbglink can be read by the microprocessor from the DebugLink UART, while characters
written by the microprocessor to the DebugLink UART are returned to the TCL script via the
dbglink channel.
2.6. C O N V E N I E N C E C O M M A N D S
Convenience Commands are defined in axsdb.tcl and implemented as TCL procedures.
2.6.1.
INFOREG
inforeg prints the most important microprocessor registers and the current instruction.
2.6.2.
IR
ir stops the microprocessor, and then prints the same information as inforeg.
www.onsemi.com
AND9370/D
AXSDB
2.6.3.
SR
ir prints the same information as inforeg, then steps the microprocessor, and then prints
the same information as inforeg.
2.6.4.
RI
ri stands for “run interactive”. ri first prints the microprocessor state (same as inforeg),
then runs the microprocessor. After that, ri implements a simple terminal program. Key
presses are sent to the DebugLink UART on the processor, while characters the
microprocessor transmits on the DebugLink UART are printed on the screen. The terminal
terminates if the microprocessor hits a breakpoint, or CTRL-A or CTRL-C is pressed. CTRL-C
halts the microprocessor, while CTRL-A keeps it running. At the end, ri prints the new
microprocessor state (same as inforeg)
2.6.5.
ALOAD
aload is a convenience load_mem wrapper. It determines file types from the file extensions,
and autoloads an sdb file if one is found with the same base filename.
2.6.6.
RLOAD
rload is a convenience aload wrapper. It stops the microcontroller, then resets it and calls
aload with the given argument.
2.6.7.
BERASE
berase is a convenience bulkerase wrapper. It starts the bulk erase, waits until it finishes
(or times out), stops and resets the processor. It returns either “done” or “failed”.
2.6.8.
WAITCPUSTATE
waitcpustate waits until the CPU state matches the supplied glob-like pattern. See the
description of the TCL string match command for a description of the pattern syntax.
www.onsemi.com
AND9370/D
21
22
AXSDB
2.6.9.
WAITCPUSTOPPED
waitcpustopped waits until the CPU is stopped.
2.6.10.
WAITCPURUNNING
waitcpurunning waits until the CPU is running.
3. C O M M A N D L I N E FLASH P R O G R A M M I N G
Besides the TCL scriptable command interpreter, AXSDB also provides command line
parameters to easily program the FLASH from a script. This can be useful for production
programming.
The basic command to program the microcontroller FLASH memory is as follows:
axsdb.exe --oldkeys key --newkey key --flashprog file
file is the file name (including the path) to the file containing the microcontroller code. It
may either be an Intel Hex file (extension .hex), an OMF-51 file (extension .omf), or an
UBROF 10 file (extension .ubr). The file is usually located in the bin\Release subdirectory of
the AxCodeBlocks project. If using SDCC, either the .hex or the .omf file may be used
interchangeably. If using IAR ICC, then only the .ubr file is generated.
key is a 64 bit hexadecimal number (format 0x0123456789abcdef). This option locks the
debug interface to unauthorized access. After this command succeeds, the debug interface
may no longer be accessed unless the key number is known. It is strongly recommended
that customer chooses a random number for key and keeps it secret.
The command returns success / failure status as exit code. The exit code is stored in the
pseudo variable %errorlevel%. It is 0 on success and 1 on failure.
Another useful command is the following, which sends a reset pulse to the microcontroller:
axsdb.exe --hwreset
www.onsemi.com
AND9370/D
Command Line FLASH Programming
If it is desired to reset the key of a locked microcontroller, the following command can be
used:
axsdb.exe --oldkeys key --newkey 0xffffffffffffffff --flashprog file
It is important that whenever the flash is programmed, --oldkeys key1,key2... is given
with all possible keys the microcontroller could be locked with. Otherwise, calibration data is
lost.
ON Semiconductor and the ON logo are registered trademarks of Semiconductor Components Industries, LLC (SCILLC) or its subsidiaries in the United States and/or other
countries. SCILLC owns the rights to a number of patents, trademarks, copyrights, trade secrets, and other intellectual property. A listing of SCILLC’s product/patent coverage
may be accessed at www.onsemi.com/site/pdf/Patent-Marking.pdf. SCILLC reserves the right to make changes without further notice to any products herein. SCILLC makes
no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does SCILLC assume any liability arising out of the
application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation special, consequential or incidental damages. “Typical”
parameters which may be provided in SCILLC data sheets and/or specifications can and do vary in different applications and actual performance may vary over time. All
operating parameters, including “Typicals” must be validated for each customer application by customer’s technical experts. SCILLC does not convey any license under its
patent rights nor the rights of others. SCILLC products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the
body, or other applications intended to support or sustain life, or for any other application in which the failure of the SCILLC product could create a situation where personal
injury or death may occur. Should Buyer purchase or use SCILLC products for any such unintended or unauthorized application, Buyer shall indemnify and hold SCILLC and
its officers, employees, subsidiaries, affiliates, and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney fees arising out of,
directly or indirectly, any claim of personal injury or death associated with such unintended or unauthorized use, even if such claim alleges that SCILLC was negligent
regarding the design or manufacture of the part. SCILLC is an Equal Opportunity/Affirmative Action Employer. This literature is subject to all applicable copyright laws and is
not for resale in any manner.
PUBLICATION ORDERING INFORMATION
LITERATURE FULFILLMENT:
Literature Distribution Center for ON Semiconductor
19521 E. 32nd Pkwy, Aurora, Colorado 80011 USA
Phone: 303-675-2175 or 800-344-3860 Toll Free USA/Canada
Fax: 303-675-2176 or 800-344-3867 Toll Free USA/Canada
Email: orderlit@onsemi.com
N. American Technical Support: 800-282-9855 Toll Free
USA/Canada.
Europe, Middle East and Africa Technical Support:
Phone: 421 33 790 2910
Japan Customer Focus Center
Phone: 81-3-5817-1050
www.onsemi.com
Order Literature: http://www.onsemi.com/orderlit
For additional information, please contact your local
Sales Representative
ON Semiconductor Website: www.onsemi.com
AND9370/D
23